📄 async_io.h
字号:
#ifndef __ASYNC_IO_H__#define __ASYNC_IO_H__#define MAX_ASYNCOP 128typedef enum { AQ_STATE_NONE, /* Not active/uninitialised */ AQ_STATE_SETUP /* Initialised */} async_queue_state_t;typedef enum { AQ_ENTRY_FREE, AQ_ENTRY_USED} async_queue_entry_state_t;typedef enum { AQ_ENTRY_NONE, AQ_ENTRY_READ, AQ_ENTRY_WRITE} async_queue_entry_type_t;typedef struct _async_queue_entry async_queue_entry_t;typedef struct _async_queue async_queue_t;/* An async queue entry */struct _async_queue_entry { async_queue_entry_state_t aq_e_state; async_queue_entry_type_t aq_e_type;#if !USE_AUFSOPS struct aiocb aq_e_aiocb;#endif union { DRCB *read; DWCB *write; } aq_e_callback; void *aq_e_callback_data; FREE *aq_e_free; int aq_e_fd; void *aq_e_buf;};/* An async queue */struct _async_queue { async_queue_state_t aq_state; async_queue_entry_t aq_queue[MAX_ASYNCOP]; /* queued ops */ int aq_numpending; /* Num of pending ops */};/* Functions */extern void a_file_read(async_queue_t * q, int fd, void *buf, int req_len, off_t offset, DRCB * callback, void *data);extern void a_file_write(async_queue_t * q, int fd, off_t offset, void *buf, int len, DWCB * callback, void *data, FREE * freefunc);extern int a_file_callback(async_queue_t * q);extern void a_file_setupqueue(async_queue_t * q);extern void a_file_syncqueue(async_queue_t * q);extern void a_file_closequeue(async_queue_t * q);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -