| The Android Open Source Project | 1dc9e47 | 2009-03-03 19:28:35 -0800 | [diff] [blame] | 1 | /**************************************************************************** | 
|  | 2 | **************************************************************************** | 
|  | 3 | *** | 
|  | 4 | ***   This header was automatically generated from a Linux kernel header | 
|  | 5 | ***   of the same name, to make information necessary for userspace to | 
|  | 6 | ***   call into the kernel available to libc.  It contains only constants, | 
|  | 7 | ***   structures, and macros generated from the original header, and thus, | 
|  | 8 | ***   contains no copyrightable information. | 
|  | 9 | *** | 
|  | 10 | **************************************************************************** | 
|  | 11 | ****************************************************************************/ | 
|  | 12 | #ifndef _LINUX_CIRC_BUF_H | 
|  | 13 | #define _LINUX_CIRC_BUF_H 1 | 
|  | 14 |  | 
|  | 15 | struct circ_buf { | 
|  | 16 | char *buf; | 
|  | 17 | int head; | 
|  | 18 | int tail; | 
|  | 19 | }; | 
|  | 20 |  | 
|  | 21 | #define CIRC_CNT(head,tail,size) (((head) - (tail)) & ((size)-1)) | 
|  | 22 |  | 
|  | 23 | #define CIRC_SPACE(head,tail,size) CIRC_CNT((tail),((head)+1),(size)) | 
|  | 24 |  | 
|  | 25 | #define CIRC_CNT_TO_END(head,tail,size)   ({int end = (size) - (tail);   int n = ((head) + end) & ((size)-1);   n < end ? n : end;}) | 
|  | 26 |  | 
|  | 27 | #define CIRC_SPACE_TO_END(head,tail,size)   ({int end = (size) - 1 - (head);   int n = (end + (tail)) & ((size)-1);   n <= end ? n : end+1;}) | 
|  | 28 |  | 
|  | 29 | #endif |