ioctl_return and ioctl handler type
    Sebastian Huber 
    sebastian.huber at embedded-brains.de
       
    Tue Apr  3 13:35:32 UTC 2012
    
    
  
On 04/03/2012 03:11 PM, Ralf Corsepius wrote:
> On 04/03/2012 01:44 PM, Joel Sherrill wrote:
>> Tradition?
>>
>> There was a heavy use of unsigned 32 bit integers and as we have moved more
>> and more to POSIX, some are left.
>>
>> This makes sense to change but the ripple will be tedious.
>
>>> int devFS_ioctl(
>>> rtems_libio_t *iop,
>>> uint32_t command,
>>> void *buffer
>
> While we're at it, all ioctl's are supposed to take an ioctl_command_t as
> command argument.
Currently we have this:
typedef int (*rtems_filesystem_ioctl_t)(
   rtems_libio_t *iop,
   uint32_t       request,
   void          *buffer
);
And:
int ioctl(
   int  fd,
   ioctl_command_t  command,
   ...
)
{
   va_list            ap;
   int                rc;
   rtems_libio_t     *iop;
   void              *buffer;
   rtems_libio_check_fd( fd );
   iop = rtems_libio_iop( fd );
   rtems_libio_check_is_open(iop);
   va_start(ap, command);
   buffer = va_arg(ap, void *);
   /*
    *  Now process the ioctl().
    */
   rc = (*iop->pathinfo.handlers->ioctl_h)( iop, command, buffer );
   va_end( ap );
   return rc;
}
We should change this to:
typedef int (*rtems_filesystem_ioctl_t)(
   rtems_libio_t *iop,
   ioctl_command_t request,
   va_list ap
);
-- 
Sebastian Huber, embedded brains GmbH
Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
    
    
More information about the devel
mailing list