devices.h

来自「这个是LINUX下的GDB调度工具的源码」· C头文件 代码 · 共 105 行

H
105
字号
/*  * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. *  * This software may be freely used, copied, modified, and distributed * provided that the above copyright notice is preserved in all copies of the * software. *//* -*-C-*- * * $Revision: 1.2 $ *     $Date: 1998/01/08 11:11:56 $ * * *   Project: ANGEL * *     Title: Devices header file */#ifndef angel_devices_h#define angel_devices_h/* * Provides common types for using devices, and provides access to the * device table. */#include "angel.h"#include "buffers.h"/* General purpose constants, macros, enums, typedefs *//* a non-enum holder for device IDs */typedef unsigned int DeviceID;/* device error codes */typedef enum DevError {  DE_OKAY,     /* no error */  DE_NO_DEV,   /* no such device */  DE_BAD_DEV,  /* device does not support angel */  DE_BAD_CHAN, /* no such device channel */  DE_BAD_OP,   /* operation not supported by this device */  DE_BUSY,     /* device already busy */  DE_INVAL,    /* length invalid */  DE_FAILED    /* something else went wrong */} DevError;/* return codes from asynchronous calls - primarily for channels' benefit */typedef enum DevStatus {  DS_DONE,                      /* operation succeeded */  DS_OVERFLOW,                  /* not enough buffer space */  DS_BAD_PACKET,                /* packet failed */  DS_DEV_ERROR,                 /* device error */  DS_INT_ERROR                  /* internal error */} DevStatus;/* Callback for async. writes */typedef void (*DevWrite_CB_Fn)(    void *buff,     /* pointer to data -- cast to p_Buffer  */    void *length,   /* how much done   -- cast to unsigned  */    void *status,   /* success code    -- cast to DevStatus */    void *cb_data   /* as supplied */    );/* Callback for async. reads */typedef void (*DevRead_CB_Fn)(    void *buff,     /* pointer to data -- cast to p_Buffer  */    void *length,   /* how much read   -- cast to unsigned  */    void *status,   /* success code    -- cast to DevStatus */    void *cb_data   /* as supplied */    );/* control operations */typedef enum DeviceControl {  DC_INIT,                      /* initialise device             */  DC_RESET,                     /* reset device                  */  DC_RECEIVE_MODE,              /* control reception             */  DC_SET_PARAMS,                /* set parameters of device      */#ifndef TARGET  DC_GET_USER_PARAMS,           /* params set by user at open    */  DC_GET_DEFAULT_PARAMS,        /* device default parameters     */  DC_RESYNC,                    /* resynchronise with new agent  */#endif  DC_PRIVATE                    /* start of private device codes */} DeviceControl;typedef enum DevRecvMode {  DR_DISABLE,  DR_ENABLE} DevRecvMode;/* * callback to allow a device driver to request a buffer, to be filled * with an incoming packet */typedef p_Buffer (*DevGetBuff_Fn)(unsigned req_size, void *cb_data);/* Publically-accessible globals *//* none */#endif /* ndef angel_devices_h *//* EOF devices.h */

⌨️ 快捷键说明

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