⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.h

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 H
字号:
/*  io.h * *  This include file contains all the constants and structures associated *  with the Input/Output Manager.  This manager provides a well defined *  mechanism for accessing device drivers and a structured methodology for *  organizing device drivers. * *  Directives provided are: * *     + initialize a device driver *     + open a device driver *     + close a device driver *     + read from a device driver *     + write to a device driver *     + special device services * *  COPYRIGHT (c) 1989-1999. *  On-Line Applications Research Corporation (OAR). * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  $Id: io.h,v 1.15.2.1 2003/09/04 18:47:20 joel Exp $ */#ifndef __RTEMS_IO_h#define __RTEMS_IO_h#ifdef __cplusplusextern "C" {#endif#include <rtems/rtems/status.h>/* * *  The following defines the types for: * *    + major and minor numbers *    + the return type of a device driver entry *    + a pointer to a device driver entry *    + an entry in the the Device Driver Address Table.  Each entry in this *      table corresponds to an application provided device driver and *      defines the entry points for that device driver. */ typedef unsigned32 rtems_device_major_number;typedef unsigned32 rtems_device_minor_number; typedef rtems_status_code rtems_device_driver; typedef rtems_device_driver ( *rtems_device_driver_entry )(                 rtems_device_major_number,                 rtems_device_minor_number,                 void *             );typedef struct {  rtems_device_driver_entry initialization_entry; /* initialization procedure */  rtems_device_driver_entry open_entry;        /* open request procedure */  rtems_device_driver_entry close_entry;       /* close request procedure */  rtems_device_driver_entry read_entry;        /* read request procedure */  rtems_device_driver_entry write_entry;       /* write request procedure */  rtems_device_driver_entry control_entry;     /* special functions procedure */}   rtems_driver_address_table; /* * Table for the io device names */typedef struct {    char                     *device_name;    unsigned32                device_name_length;    rtems_device_major_number major;    rtems_device_minor_number minor;} rtems_driver_name_t;/* *  This is the table of device names. *//* *  The following declare the data required to manage the Driver *  Address Table and Device Name Table. */SAPI_EXTERN unsigned32                  _IO_Number_of_drivers;SAPI_EXTERN rtems_driver_address_table *_IO_Driver_address_table;SAPI_EXTERN unsigned32                  _IO_Number_of_devices;SAPI_EXTERN rtems_driver_name_t        *_IO_Driver_name_table;/* *  _IO_Manager_initialization * *  DESCRIPTION: * *  This routine performs the initialization necessary for this manager. */void _IO_Manager_initialization(  rtems_driver_address_table *driver_table,  unsigned32                  drivers_in_table,  unsigned32                  number_of_drivers,  unsigned32                  number_of_devices);/* *  rtems_io_register_driver * *  DESCRIPTION: * *  Register a driver into the device driver table. * */rtems_status_code rtems_io_register_driver(    rtems_device_major_number   major,    rtems_driver_address_table *driver_table,    rtems_device_major_number  *registered_major);/* *  rtems_io_unregister_driver * *  DESCRIPTION: * *  Unregister a driver from the device driver table. * */rtems_status_code rtems_io_unregister_driver(    rtems_device_major_number major);/* *  rtems_io_register_name * *  DESCRIPTION: * *  Associate a name with a driver. * */rtems_status_code rtems_io_register_name(    char                      *device_name,    rtems_device_major_number  major,    rtems_device_minor_number  minor);/* *  rtems_io_lookup_name * *  DESCRIPTION: * *  Find what driver "owns" this name */rtems_status_code rtems_io_lookup_name(    const char           *name,    rtems_driver_name_t  *device_info);/* *  rtems_io_initialize * *  DESCRIPTION: * *  This routine implements the rtems_io_initialize directive.  It is invoked *  to initialize a device driver or an individual device. */rtems_status_code rtems_io_initialize(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  rtems_io_open * *  DESCRIPTION: * *  This routine implements the rtems_io_open directive.  It is invoked *  to open a device. */rtems_status_code rtems_io_open(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  rtems_io_close * *  DESCRIPTION: * *  This routine implements the rtems_io_close directive.  It is invoked *  to close a device. */rtems_status_code rtems_io_close(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  rtems_io_read * *  DESCRIPTION: * *  This routine implements the rtems_io_read directive.  It is invoked *  to read from a device. */rtems_status_code rtems_io_read(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  rtems_io_write * *  DESCRIPTION: * *  This routine implements the rtems_io_write directive.  It is invoked *  to write to a device. */rtems_status_code rtems_io_write(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  rtems_io_control * *  DESCRIPTION: * *  This routine implements the rtems_io_control directive.  It is invoked *  to perform a device specific operation on a device. */rtems_status_code rtems_io_control(  rtems_device_major_number  major,  rtems_device_minor_number  minor,  void                      *argument);/* *  _IO_Initialize_all_drivers * *  DESCRIPTION: * *  This routine initializes all of the device drivers configured *  in the Device Driver Address Table. */void _IO_Initialize_all_drivers( void );#ifdef __cplusplus}#endif#endif/* end of include file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -