示例#1
0
rtems_device_driver serial_mouse_control(
  rtems_device_major_number  major,
  rtems_device_minor_number  minor,
  void                      *arg
)
{
  rtems_libio_ioctl_args_t *args = (rtems_libio_ioctl_args_t *)arg;

  switch( args->command ) {

    case MW_UID_REGISTER_DEVICE:
      printk( "SerialMouse: reg=%s\n", args->buffer );
      mouse_parser_initialize( serial_mouse_type );
      break;

    case MW_UID_UNREGISTER_DEVICE:
      break;

    default:
      args->ioctl_return = ioctl(serial_mouse_fd, args->command, args->buffer );
      if ( !args->ioctl_return )
        return RTEMS_SUCCESSFUL;
      return RTEMS_IO_ERROR;
  }
  args->ioctl_return = 0;
  return RTEMS_SUCCESSFUL;
}
示例#2
0
/*
 * Handle ioctl request.
 */
rtems_device_driver paux_control(
  rtems_device_major_number major,
  rtems_device_minor_number minor,
  void                      *arg
)
{
  rtems_libio_ioctl_args_t *args = arg;

  switch( args->command ) {
    default:
      return rtems_termios_ioctl (arg);
      break;

    case MW_UID_REGISTER_DEVICE:
      printk( "PS2 Mouse: registering\n" );
      mouse_parser_initialize( "ps2" );
      ps2_set_driver_handler( minor, mouse_parser_enqueue );
      break;

    case MW_UID_UNREGISTER_DEVICE:
/*
      unregister_mou_msg_queue( -1 );
*/
      ps2_set_driver_handler( minor, NULL );
      break;
  }
  args->ioctl_return = 0;
  return RTEMS_SUCCESSFUL;
}