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