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

📄 hal_io.h

📁 eCos操作系统源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define CYG_HAL_SYS__SIGMASK(_d_)       ((unsigned long)1 << ((_d_) % CYG_HAL_SYS__SIGBITS))typedef struct cyg_hal_sys_sigset_t {    unsigned long hal_sig_bits[CYG_HAL_SYS__NSIG / CYG_HAL_SYS__SIGBITS];} cyg_hal_sys_sigset_t;#define CYG_HAL_SYS_SIGFILLSET(_set_)                                                   \    CYG_MACRO_START                                                                     \        unsigned int __i;                                                               \        for (__i = 0; __i < (CYG_HAL_SYS__NSIG / CYG_HAL_SYS__SIGBITS); __i++) {        \            (_set_)->hal_sig_bits[__i] = ~0;                                            \        }                                                                               \    CYG_MACRO_END#define CYG_HAL_SYS_SIGEMPTYSET(_set_)                                                  \    CYG_MACRO_START                                                                     \        unsigned int __i;                                                               \        for (__i = 0; __i < (CYG_HAL_SYS__NSIG / CYG_HAL_SYS__SIGBITS); __i++) {        \            (_set_)->hal_sig_bits[__i] = 0;                                             \        }                                                                               \    CYG_MACRO_END#define CYG_HAL_SYS_SIGADDSET(_set_, _bit_)                                                     \    CYG_MACRO_START                                                                             \    (_set_)->hal_sig_bits[CYG_HAL_SYS__SIGELT(_bit_ - 1)] |= CYG_HAL_SYS__SIGMASK(_bit_ - 1);   \    CYG_MACRO_END#define CYG_HAL_SYS_SIGDELSET(_set_, _bit_)                                                     \    CYG_MACRO_START                                                                             \    (_set_)->hal_sig_bits[CYG_HAL_SYS__SIGELT(_bit_ - 1)] &= ~CYG_HAL_SYS__SIGMASK(_bit_ - 1);  \    CYG_MACRO_END               #define CYG_HAL_SYS_SIGISMEMBER(_set_, _bit_)                                                   \    (0 != ((_set_)->hal_sig_bits[CYG_HAL_SYS__SIGELT(_bit_ - 1)] & CYG_HAL_SYS__SIGMASK(_bit_ - 1)))struct cyg_hal_sys_sigaction {    void        (*hal_handler)(int);    long        hal_mask;    int         hal_flags;    void        (*hal_bogus)(int);};// Time support.struct cyg_hal_sys_timeval {    long        hal_tv_sec;    long        hal_tv_usec;};struct cyg_hal_sys_timezone {    int         hal_tz_minuteswest;    int         hal_tz_dsttime;};// Select support. Initially this is used only by the idle handler.#define CYG_HAL_SYS_FD_SETSIZE          1024#define CYG_HAL_SYS__NFDBITS            (8 * sizeof(unsigned long))#define CYG_HAL_SYS__FDELT(_d_)         ((_d_) / CYG_HAL_SYS__NFDBITS)#define CYG_HAL_SYS__FDMASK(_d_)        ((unsigned long)1 << ((_d_) % CYG_HAL_SYS__NFDBITS))struct cyg_hal_sys_fd_set {    unsigned long hal_fds_bits[CYG_HAL_SYS_FD_SETSIZE / CYG_HAL_SYS__NFDBITS];};#define CYG_HAL_SYS_FD_ZERO(_fdsp_)                                     \    do {                                                                \        unsigned int __i;                                               \        for (__i = 0;                                                   \             __i < (CYG_HAL_SYS_FD_SETSIZE / CYG_HAL_SYS__NFDBITS);     \             __i++) {                                                   \           (_fdsp_)->hal_fds_bits[__i] = 0;                             \     } while (0);    #define CYG_HAL_SYS_FD_SET(_fd_, _fdsp_)                                \    CYG_MACRO_START                                                     \    (_fdsp_)->hal_fds_bits[CYG_HAL_SYS__FDELT(_fd_)] |= CYG_HAL_SYS__FDMASK(_fd_); \    CYG_MACRO_END    #define CYG_HAL_SYS_FD_CLR(_fd_, _fdsp_)                                \    CYG_MACRO_START                                                     \    (_fdsp_)->hal_fds_bits[CYG_HAL_SYS__FDELT(_fd_)] &= ~CYG_HAL_SYS__FDMASK(_fd_); \    CYG_MACRO_END#define CYG_HAL_SYS_FD_ISSET(_fd_, _fdsp_) \    (0 != ((_fdsp_)->hal_fds_bits[CYG_HAL_SYS__FDELT(_fd_)] & CYG_HAL_SYS__FDMASK(_fd_)))// Interval timer support, needed for the clock.#define CYG_HAL_SYS_ITIMER_REAL     0#define CYG_HAL_SYS_ITIMER_VIRTUAL  1#define CYG_HAL_SYS_ITIMER_PROF     2 struct cyg_hal_sys_itimerval {    struct cyg_hal_sys_timeval  hal_it_interval;    struct cyg_hal_sys_timeval  hal_it_value;};// System calls and related constants, or rather the subset that is// needed internally.#define CYG_HAL_SYS_R_OK    0x04#define CYG_HAL_SYS_W_OK    0x02#define CYG_HAL_SYS_X_OK    0x01#define CYG_HAL_SYS_F_OK    0x00/* lseek whence flags */#define CYG_HAL_SYS_SEEK_SET        0       /* Seek from beginning of file.  */#define CYG_HAL_SYS_SEEK_CUR        1       /* Seek from current position.  */#define CYG_HAL_SYS_SEEK_END        2       /* Seek from end of file.  *//* open/fcntl flags */#define CYG_HAL_SYS_O_RDONLY        0#define CYG_HAL_SYS_O_WRONLY        1#define CYG_HAL_SYS_O_RDWR          2#define CYG_HAL_SYS_O_CREAT       100#define CYG_HAL_SYS_O_EXCL        200#define CYG_HAL_SYS_O_NOCTTY      400#define CYG_HAL_SYS_O_TRUNC      1000#define CYG_HAL_SYS_O_APPEND     2000#define CYG_HAL_SYS_O_NONBLOCK   4000#define CYG_HAL_SYS_O_NDELAY     CYG_HAL_SYS_O_NONBLOCK#define CYG_HAL_SYS_O_SYNC      10000#define CYG_HAL_SYS_O_FSYNC     CYG_HAL_SYS_O_SYNC#define CYG_HAL_SYS_O_ASYNC     20000/* open mode flags */#define CYG_HAL_SYS_S_IRUSR 400#define CYG_HAL_SYS_S_IREAD CYG_HAL_SYS_S_IRUSR#define CYG_HAL_SYS_S_IWUSR 200#define CYG_HAL_SYS_S_IWRITE CYG_HAL_SYS_S_IWUSR#define CYG_HAL_SYS_S_IXUSR 100#define CYG_HAL_SYS_S_IEXEC CYG_HAL_SYS_S_IXUSR#define CYG_HAL_SYS_S_IRWXU \  (CYG_HAL_SYS_S_IREAD|CYG_HAL_SYS_S_IWRITE|CYG_HAL_SYS_S_IEXEC)#define CYG_HAL_SYS_S_IRWXG (CYG_HAL_SYS_S_IRWXU>>3)#define CYG_HAL_SYS_S_IRGRP (CYG_HAL_SYS_S_IRUSR>>3)#define CYG_HAL_SYS_S_IWGRP (CYG_HAL_SYS_S_IWUSR>>3)#define CYG_HAL_SYS_S_IXGRP (CYG_HAL_SYS_S_IXUSR>>3)#define CYG_HAL_SYS_S_IRWXO (CYG_HAL_SYS_S_IRWXG>>3)#define CYG_HAL_SYS_S_IROTH (CYG_HAL_SYS_S_IRGRP>>3)#define CYG_HAL_SYS_S_IWOTH (CYG_HAL_SYS_S_IWGRP>>3)#define CYG_HAL_SYS_S_IXOTH (CYG_HAL_SYS_S_IXGRP>>3)struct cyg_hal_sys_mmap_args {        unsigned long addr;        unsigned long len;        unsigned long prot;        unsigned long flags;        unsigned long fd;        unsigned long offset;};/* Protection flags for mmap */#define CYG_HAL_SYS_PROT_READ       0x1     /* page can be read */#define CYG_HAL_SYS_PROT_WRITE      0x2     /* page can be written */#define CYG_HAL_SYS_PROT_EXEC       0x4     /* page can be executed */#define CYG_HAL_SYS_PROT_NONE       0x0     /* page can not be accessed *//* Sharing types and other flags */#define CYG_HAL_SYS_MAP_SHARED      0x01     /* Share changes.  */#define CYG_HAL_SYS_MAP_PRIVATE     0x02     /* Changes are private.  */#define CYG_HAL_SYS_MAP_FIXED       0x10     /* Interpret addr exactly.  */ // System calls, or rather the subset that is needed internally.externC unsigned long   cyg_hal_sys_write(int, const void*, long);externC unsigned long   cyg_hal_sys_read(int, void*, long);externC int             cyg_hal_sys_lseek(int, int, int);externC int             cyg_hal_sys_open(const char *,int,int); externC int             cyg_hal_sys_fdatasync(int); externC int             cyg_hal_sys_sigaction(int,                                               const struct cyg_hal_sys_sigaction*,                                              struct cyg_hal_sys_sigaction*);externC int             cyg_hal_sys_sigprocmask(int,                                                const cyg_hal_sys_sigset_t*,                                                cyg_hal_sys_sigset_t*);externC int             cyg_hal_sys__newselect(int,                                               struct cyg_hal_sys_fd_set*,                                               struct cyg_hal_sys_fd_set*,                                               struct cyg_hal_sys_fd_set*,                                               struct cyg_hal_sys_timeval*);externC int             cyg_hal_sys_setitimer(int,                                              const struct cyg_hal_sys_itimerval*,                                              struct cyg_hal_sys_itimerval*);externC int             cyg_hal_sys_gettimeofday(struct cyg_hal_sys_timeval*,                                                 struct cyg_hal_sys_timezone*);externC int             cyg_hal_sys_access(const char*, int);externC int             cyg_hal_sys_fork(void);externC int             cyg_hal_sys_execve(const char*, const char* [], const char* []);externC int             cyg_hal_sys_pipe(int []);externC int             cyg_hal_sys_close(int);externC int             cyg_hal_sys_dup2(int, int); // The actual implementation appears to return the new brk() value.externC void*           cyg_hal_sys_brk(void*);// Returns the number of characters placed in the buffer or <0 for error,// not a char*. externC int             cyg_hal_sys_getcwd(char*, int);// mmap on the "host" system - this may be unportable.externC int             cyg_hal_sys_mmap(struct cyg_hal_sys_mmap_args *);// Access to environmental dataextern int              cyg_hal_sys_argc;extern const char**     cyg_hal_sys_argv;extern const char**     cyg_hal_sys_environ;// ----------------------------------------------------------------------------// Interaction between the application and the auxiliary.// Is the  auxiliary actually in use/available? This flag should be tested by// device drivers prior to attempting any communication with the auxiliary.extern cyg_bool synth_auxiliary_running; // The fundamental I/O operation: sending a request to the auxiliary and// optionally getting back a reply. A null pointer for the response field// indicates that no reply is expected. externC void synth_auxiliary_xchgmsg(int /* devid */, int /* request */,                                     int /* arg1  */, int /* arg2 */,                                     const unsigned char* /* txdata */, int /* txlen */,                                     int* /* response */,                                     unsigned char* /* rxdata */,  int* /* actual_rxlen */,                                     int /* rxlen */);// Request that the auxiliary instantiates a given device, loading appropriate// support code as required. This function takes the following arguments:// 1) the location of the package that should provide this device, e.g.//    devs/eth/synth// 2) the version of that package currently being used, e.g. "current"// 3) the name of the device, e.g. "ethernet". This identifies the//    Tcl script that should be loaded to handle requests for this device.// 4) the name of the device instance, e.g. "eth0".// 5) device-specific initialization data. externC int  synth_auxiliary_instantiate(const char*, const char*, const char*, const char*, const char*);// Support for generating strings#define SYNTH_MAKESTRING1(a) #a#define SYNTH_MAKESTRING(a)  SYNTH_MAKESTRING1(a) //-----------------------------------------------------------------------------#endif // ifndef CYGONCE_HAL_HAL_IO_H// End of hal_io.h

⌨️ 快捷键说明

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