tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: mknodat(2) device argument type change



On Sun, Oct 06, 2013 at 05:56:58PM +0000, Christos Zoulas wrote:
> In article <20131006174052.GA27386%lynche.sis.pasteur.fr@localhost>,
> Nicolas Joly  <njoly%pasteur.fr@localhost> wrote:
> >
> >Hi,
> >
> >Checking syscalls.master mknodat(2) definition needs to be updated for
> >correct device argument type. It currently use uint32_t where it
> >should be dev_t ...
> >
> >460     STD  RUMP       { int|sys||mknodat(int fd, const char *path, \
> >                            mode_t mode, uint32_t dev); }
> >
> >Simply changing the argument type does not seems enough ... It, at
> >least, needs an extra special PAD argument for proper alignment :
> >
> >460     STD  RUMP       { int|sys||mknodat(int fd, const char *path, \
> >                            mode_t mode, int PAD, dev_t dev); }
> >
> >What's next ?
> 
> While putting PAD there is strictly more correct, since dev_t is 64 bits now
> mknod does not do that... I would also say just make the change, because
> probably nothing uses it yet, and it is not worth it to burn a syscall
> number and add more compat code for something that has not been used...

It needs the PAD, syscalls files generation fails without it
(sysalign=1).

/bin/sh makesyscalls.sh syscalls.conf syscalls.master
syscalls.master: line 905: unexpected dev (expected <a padding argument>)
line is:
460     STD  RUMP        {  int | sys |  | mknodat ( int fd , const char  * 
path ,                        mode_t mode , dev_t dev ) ;  }
*** Error code 1

-- 
Nicolas Joly

Biology IT Center
Institut Pasteur, Paris.


Home | Main Index | Thread Index | Old Index