|
1 /* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by |
|
2 driver-specific utilities) */ |
|
3 |
|
4 /* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ |
|
5 |
|
6 |
|
7 #ifndef LINUX_ATM_ZATM_H |
|
8 #define LINUX_ATM_ZATM_H |
|
9 |
|
10 /* |
|
11 * Note: non-kernel programs including this file must also include |
|
12 * sys/types.h for struct timeval |
|
13 */ |
|
14 |
|
15 #include <linux/atmapi.h> |
|
16 #include <linux/atmioc.h> |
|
17 |
|
18 #define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc) |
|
19 /* get pool statistics */ |
|
20 #define ZATM_GETPOOLZ _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) |
|
21 /* get statistics and zero */ |
|
22 #define ZATM_SETPOOL _IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc) |
|
23 /* set pool parameters */ |
|
24 |
|
25 struct zatm_pool_info { |
|
26 int ref_count; /* free buffer pool usage counters */ |
|
27 int low_water,high_water; /* refill parameters */ |
|
28 int rqa_count,rqu_count; /* queue condition counters */ |
|
29 int offset,next_off; /* alignment optimizations: offset */ |
|
30 int next_cnt,next_thres; /* repetition counter and threshold */ |
|
31 }; |
|
32 |
|
33 struct zatm_pool_req { |
|
34 int pool_num; /* pool number */ |
|
35 struct zatm_pool_info info; /* actual information */ |
|
36 }; |
|
37 |
|
38 struct zatm_t_hist { |
|
39 struct timeval real; /* real (wall-clock) time */ |
|
40 struct timeval expected; /* expected real time */ |
|
41 }; |
|
42 |
|
43 |
|
44 #define ZATM_OAM_POOL 0 /* free buffer pool for OAM cells */ |
|
45 #define ZATM_AAL0_POOL 1 /* free buffer pool for AAL0 cells */ |
|
46 #define ZATM_AAL5_POOL_BASE 2 /* first AAL5 free buffer pool */ |
|
47 #define ZATM_LAST_POOL ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */ |
|
48 |
|
49 #define ZATM_TIMER_HISTORY_SIZE 16 /* number of timer adjustments to |
|
50 record; must be 2^n */ |
|
51 |
|
52 #endif |