versadac  1
versadac - Scalable Recorder Firmware
queue.h
1 /*******************************************************************************
2 FILE : queue.c
3 SYSTEM : Gnu C C++ for ARM under vxWorks
4 AUTHOR : Karl Wakeham
5 DATE : 29/04/2009
6 DESCRIPTION : Header file for queue.c
7 *******************************************************************************/
8 #ifndef __MSG_QUEUE
9 #define __MSG_QUEUE
10 
11 #include "stdtypes.h"
12 
13 #define QUEUE_EMPTY 40
14 #define QUEUE_FULL 41
15 #define QUEUE_IN_USE 42
16 #define QUEUE_NOT_EMPTY 43
17 #define QUEUED_ITEM_TWO 44
18 #define QUEUE_LOCKED 45
19 #define NONEXISTENT_QUEUE 46
20 #define RESOURCE_FULL 47
21 
22 #define MAX_QUEUE_SIZE 200000
23 #define NAME_SIZE 9
24 #define GROUP_QUEUE_SIZE 12000
25 #define SYSTEM_QUEUE_SIZE 12000
26 #define DRE_QUEUE_SIZE 135000
27 #define QUEUE_BASE_GRP_Q_ID 100
28 #define QUEUE_BASE_SYS_Q_ID 200
29 #define QUEUE_BASE_DRE_Q_ID 300
30 #define QUEUE_MIN_SIZE 2
31 #define QUEUE_MAX_GROUPS 30
32 
33 #define DRE_TASK_PROCESS_ID 301
34 #define DRE_FB_PROCESS_ID 302
35 
36 #define MAX_GROUPS 254 /* max possible number of groups using uint8 max -1 */
37 #define ALL_GROUPS (MAX_GROUPS + 1) /* 255 reserved as a flag to send to
38  all groups */
39 
40 //#define QUEUE_DEBUG 1
41 
42 extern queue_id extract_queue_id(queue_addr queue);
43 extern status create_queue(uint32 size, queue_addr queue, uint16 fail_size, void * myId);
44 extern status create_group_queues();
45 extern status create_system_queues();
46 extern status create_dre_queues();
47 extern status write_q(queue_id queue, void * data1, uint16 size1, void * data2, uint16 size2, void * my_id);
48 extern status read_q(queue_id queue, void * data, uint16 max_bytes, uint16 * got_bytes, void * myid);
49 extern status task_attach_to_write_queue(queue_addr queue, void * my_id);
50 extern status task_attach_to_read_queue(queue_addr queue, void * my_id);
51 extern status task_detach_queue(queue_addr queue, void * my_id);
52 extern status delete_queue(queue_addr queue, void * myid);
53 extern void sendMessageToGroups(uint32 z_cat, unicode_p z_msg, uint8 z_grp);
54 
55 extern queue g_groupQ[];
56 extern queue g_systemQ;
57 extern queue g_dreQ;
58 extern uint16 g_grpQId;
59 extern uint16 g_sysQId;
60 extern uint16 g_dreQId;
61 
62 #endif /* __MSG_QUEUE */
Definition: stdtypes.h:189
Definition: stdtypes.h:204