11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* $Id: dqueue.h,v 1.1.2.2 2001/02/08 12:25:43 armin Exp $ */ 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _DIVA_USER_MODE_IDI_DATA_QUEUE_H__ 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _DIVA_USER_MODE_IDI_DATA_QUEUE_H__ 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define DIVA_UM_IDI_MAX_MSGS 64 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _diva_um_idi_data_queue { 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int segments; 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int max_length; 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int read; 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int write; 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int count; 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int segment_pending; 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void *data[DIVA_UM_IDI_MAX_MSGS]; 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int length[DIVA_UM_IDI_MAX_MSGS]; 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} diva_um_idi_data_queue_t; 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 19475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint diva_data_q_init(diva_um_idi_data_queue_t *q, 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int max_length, int max_segments); 21475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint diva_data_q_finit(diva_um_idi_data_queue_t *q); 22475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q); 23475be4d85a274d0961593db41cf85689db1d583cJoe Perchesvoid *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q); 24475be4d85a274d0961593db41cf85689db1d583cJoe Perchesvoid diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q, 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int length); 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsconst void *diva_data_q_get_segment4read(const diva_um_idi_data_queue_t * 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds q); 28475be4d85a274d0961593db41cf85689db1d583cJoe Perchesint diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q); 29475be4d85a274d0961593db41cf85689db1d583cJoe Perchesvoid diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q); 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 32