18 #ifdef POK_NEEDS_ARINC653_BLACKBOARD
26 #ifndef APEX_BLACKBOARD
27 #define APEX_BLACKBOARD
29 #ifndef POK_NEEDS_ARINC653_PROCESS
30 #define POK_NEEDS_ARINC653_PROCESS
33 #include <arinc653/types.h>
34 #include <arinc653/process.h>
36 #define MAX_NUMBER_OF_BLACKBOARDS SYSTEM_LIMIT_NUMBER_OF_BLACKBOARDS
38 typedef NAME_TYPE BLACKBOARD_NAME_TYPE;
40 typedef APEX_INTEGER BLACKBOARD_ID_TYPE;
42 typedef enum { EMPTY = 0, OCCUPIED = 1 } EMPTY_INDICATOR_TYPE;
45 EMPTY_INDICATOR_TYPE EMPTY_INDICATOR;
46 MESSAGE_SIZE_TYPE MAX_MESSAGE_SIZE;
47 WAITING_RANGE_TYPE WAITING_PROCESSES;
50 extern void CREATE_BLACKBOARD (
51 BLACKBOARD_NAME_TYPE BLACKBOARD_NAME,
52 MESSAGE_SIZE_TYPE MAX_MESSAGE_SIZE,
53 BLACKBOARD_ID_TYPE *BLACKBOARD_ID,
54 RETURN_CODE_TYPE *RETURN_CODE );
56 extern void DISPLAY_BLACKBOARD (
57 BLACKBOARD_ID_TYPE BLACKBOARD_ID,
58 MESSAGE_ADDR_TYPE MESSAGE_ADDR,
59 MESSAGE_SIZE_TYPE LENGTH,
60 RETURN_CODE_TYPE *RETURN_CODE );
62 extern void READ_BLACKBOARD (
63 BLACKBOARD_ID_TYPE BLACKBOARD_ID,
64 SYSTEM_TIME_TYPE TIME_OUT,
65 MESSAGE_ADDR_TYPE MESSAGE_ADDR,
66 MESSAGE_SIZE_TYPE *LENGTH,
67 RETURN_CODE_TYPE *RETURN_CODE );
69 extern void CLEAR_BLACKBOARD (
70 BLACKBOARD_ID_TYPE BLACKBOARD_ID,
71 RETURN_CODE_TYPE *RETURN_CODE );
73 extern void GET_BLACKBOARD_ID (
74 BLACKBOARD_NAME_TYPE BLACKBOARD_NAME,
75 BLACKBOARD_ID_TYPE *BLACKBOARD_ID,
76 RETURN_CODE_TYPE *RETURN_CODE );
78 extern void GET_BLACKBOARD_STATUS (
79 BLACKBOARD_ID_TYPE BLACKBOARD_ID,
81 RETURN_CODE_TYPE *RETURN_CODE );