Lines Matching refs:q
17 diva_data_q_init(diva_um_idi_data_queue_t *q, in diva_data_q_init() argument
22 q->max_length = max_length; in diva_data_q_init()
23 q->segments = max_segments; in diva_data_q_init()
25 for (i = 0; i < q->segments; i++) { in diva_data_q_init()
26 q->data[i] = NULL; in diva_data_q_init()
27 q->length[i] = 0; in diva_data_q_init()
29 q->read = q->write = q->count = q->segment_pending = 0; in diva_data_q_init()
31 for (i = 0; i < q->segments; i++) { in diva_data_q_init()
32 if (!(q->data[i] = diva_os_malloc(0, q->max_length))) { in diva_data_q_init()
33 diva_data_q_finit(q); in diva_data_q_init()
41 int diva_data_q_finit(diva_um_idi_data_queue_t *q) in diva_data_q_finit() argument
45 for (i = 0; i < q->segments; i++) { in diva_data_q_finit()
46 if (q->data[i]) { in diva_data_q_finit()
47 diva_os_free(0, q->data[i]); in diva_data_q_finit()
49 q->data[i] = NULL; in diva_data_q_finit()
50 q->length[i] = 0; in diva_data_q_finit()
52 q->read = q->write = q->count = q->segment_pending = 0; in diva_data_q_finit()
57 int diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q) in diva_data_q_get_max_length() argument
59 return (q->max_length); in diva_data_q_get_max_length()
62 void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q) in diva_data_q_get_segment4write() argument
64 if ((!q->segment_pending) && (q->count < q->segments)) { in diva_data_q_get_segment4write()
65 q->segment_pending = 1; in diva_data_q_get_segment4write()
66 return (q->data[q->write]); in diva_data_q_get_segment4write()
73 diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q, int length) in diva_data_q_ack_segment4write() argument
75 if (q->segment_pending) { in diva_data_q_ack_segment4write()
76 q->length[q->write] = length; in diva_data_q_ack_segment4write()
77 q->count++; in diva_data_q_ack_segment4write()
78 q->write++; in diva_data_q_ack_segment4write()
79 if (q->write >= q->segments) { in diva_data_q_ack_segment4write()
80 q->write = 0; in diva_data_q_ack_segment4write()
82 q->segment_pending = 0; in diva_data_q_ack_segment4write()
87 q) in diva_data_q_get_segment4read()
89 if (q->count) { in diva_data_q_get_segment4read()
90 return (q->data[q->read]); in diva_data_q_get_segment4read()
95 int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q) in diva_data_q_get_segment_length() argument
97 return (q->length[q->read]); in diva_data_q_get_segment_length()
100 void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q) in diva_data_q_ack_segment4read() argument
102 if (q->count) { in diva_data_q_ack_segment4read()
103 q->length[q->read] = 0; in diva_data_q_ack_segment4read()
104 q->count--; in diva_data_q_ack_segment4read()
105 q->read++; in diva_data_q_ack_segment4read()
106 if (q->read >= q->segments) { in diva_data_q_ack_segment4read()
107 q->read = 0; in diva_data_q_ack_segment4read()