|
version 1.3, 2001/03/01 09:27:47
|
version 1.4, 2001/08/13 08:10:18
|
|
|
|
| /************************ Private Definitions *****************************/ | /************************ Private Definitions *****************************/ |
| | |
| struct emlog_info { | struct emlog_info { |
| unsigned long i_ino; |
|
| |
|
| | |
| #if defined(DECLARE_WAIT_QUEUE_HEAD) | #if defined(DECLARE_WAIT_QUEUE_HEAD) |
| wait_queue_head_t read_q; | wait_queue_head_t read_q; |
|
|
|
| struct wait_queue *read_q; | struct wait_queue *read_q; |
| #endif | #endif |
| | |
| int refcount; |
unsigned long i_ino; /* Inode number of this emlog buffer */ |
| int read_point, write_point; |
char *data; /* The circular buffer data */ |
| int size; |
int size; /* Size of the buffer pointed to by 'data' */ |
| char *data; |
int refcount; /* Files that have this buffer open */ |
| |
int read_point; /* Offset in circ. buffer of oldest data */ |
| |
int write_point; /* Offset in circ. buffer of newest data */ |
| |
int offset; /* Byte number of read_point in the stream */ |
| struct emlog_info *next; | struct emlog_info *next; |
| }; | }; |
| | |
| #define EMLOG_EMPTY(einfo) (((einfo)->read_point) == ((einfo)->write_point)) |
|
| #define EMLOG_SIZE(einfo) ( (einfo)->write_point >= (einfo)->read_point ? \ |
/* amount of data in the queue */ |
| |
#define EMLOG_QLEN(einfo) ( (einfo)->write_point >= (einfo)->read_point ? \ |
| (einfo)->write_point - (einfo)->read_point : \ | (einfo)->write_point - (einfo)->read_point : \ |
| (einfo)->size - (einfo)->read_point + (einfo)->write_point) | (einfo)->size - (einfo)->read_point + (einfo)->write_point) |
| | |
| #define EMLOG_REFCOUNT(einfo) ((einfo)->refcount) |
#define EMLOG_EMPTY(einfo) (((einfo)->read_point) == ((einfo)->write_point)) |
| #define EMLOG_READQ(einfo) (&((einfo)->read_q)) | #define EMLOG_READQ(einfo) (&((einfo)->read_q)) |
| | |