3 * @brief Event library -- API specifications for kernel modules
5 * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <agldd/ev_common.h>
23 #include <linux/types.h>
24 #include <linux/ioctl.h>
31 /* Flag message queue create/delete */
32 EV_ERR EVK_create_flag(EV_ID flagID);
33 EV_ERR EVK_create_flag64(EV_ID flagID);
34 EV_ERR EVK_create_queue(EV_ID queueID,
37 EV_Message_Queue_Type type);
39 EV_ERR EVK_create_flag_auto_id(/* OUT */EV_ID *flagID);
40 EV_ERR EVK_create_flag64_auto_id(/* OUT */EV_ID *flagID);
41 EV_ERR EVK_create_queue_auto_id(/* OUT */EV_ID *queueID,
44 EV_Message_Queue_Type type);
46 EV_ERR EVK_destroy_flag(EV_ID flagID);
47 EV_ERR EVK_destroy_queue(EV_ID queueID);
50 EV_ERR EVK_set_flag(EV_ID flagID, UINT32 bits);
51 EV_ERR EVK_set_flag64(EV_ID flagID, UINT64 bits);
52 EV_ERR EVK_send_message(EV_ID queueID, UINT16 bytes, const void *message,
55 /* Get event(with search conditions) */
56 EV_ERR EVK_get_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
57 EV_ERR EVK_wait_flag(EV_ID flagID, /* OUT */EV_Flag *flag);/* block */
58 EV_ERR EVK_peek_flag(EV_ID flagID, /* OUT */EV_Flag *flag);
59 EV_ERR EVK_get_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
60 EV_ERR EVK_wait_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);/* block */
61 EV_ERR EVK_peek_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);
63 EV_ERR EVK_get_message(EV_ID queueID, /* OUT */EV_Message *message);
64 EV_ERR EVK_wait_message(EV_ID queueID, /* OUT */EV_Message *message);/* block */
65 EV_ERR EVK_peek_message(EV_ID queueID, /* OUT */EV_Message *message);
67 EV_ERR EVK_find_message_by_sender(EV_ID queueID, UINT32 senderInfo,
68 /* OUT */EV_Message *message);
69 EV_ERR EVK_find_message_by_content(EV_ID queueID, UINT16 length,
70 const void *compare_bytes,
71 /* OUT */EV_Message *message);
76 /** @addtogroup EVK_in
78 #define EVK_NAME "evk"
79 #define EVK_DEV_NAME "/dev/agl/"EVK_NAME
80 #define EVK_DEV_MAJOR (1033 % 256)
81 #define EVK_IOC_MAGIC 0xE7
83 #define EVK_IOC_CREATE_FLAG _IO(EVK_IOC_MAGIC, 0x00)
84 #define EVK_IOC_CREATE_FLAG64 _IO(EVK_IOC_MAGIC, 0x01)
85 #define EVK_IOC_CREATE_MESSAGE_QUEUE _IO(EVK_IOC_MAGIC, 0x02)
86 #define EVK_IOC_ALLOC_FLAG_ID _IO(EVK_IOC_MAGIC, 0x03)
87 #define EVK_IOC_ALLOC_FLAG64_ID _IO(EVK_IOC_MAGIC, 0x04)
88 #define EVK_IOC_ALLOC_QUEUE_ID _IO(EVK_IOC_MAGIC, 0x05)
89 #define EVK_IOC_DESTROY_QUEUE _IO(EVK_IOC_MAGIC, 0x06)
90 #define EVK_IOC_STORE_FLAG _IO(EVK_IOC_MAGIC, 0x07)
91 #define EVK_IOC_STORE_FLAG64 _IO(EVK_IOC_MAGIC, 0x08)
92 #define EVK_IOC_STORE_MESSAGE _IO(EVK_IOC_MAGIC, 0x09)
93 #define EVK_IOC_SET_POLL _IO(EVK_IOC_MAGIC, 0x0a)
94 #define EVK_IOC_GET_EVENT _IO(EVK_IOC_MAGIC, 0x0b)
95 #define EVK_IOC_PEEK_EVENT _IO(EVK_IOC_MAGIC, 0x0c)
96 #define EVK_IOC_WAIT_EVENT _IO(EVK_IOC_MAGIC, 0x0d)
97 #define EVK_IOC_GET_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0e)
98 #define EVK_IOC_PEEK_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0f)
99 #define EVK_IOC_DEBUG_LIST _IO(EVK_IOC_MAGIC, 0x10)
102 EV_ID queueID;/**< Queue ID */
103 UINT32 max_bytes;/**< Maximum number of bytes for an event */
104 UINT8 length;/**< Queue length */
105 EV_Message_Queue_Type type;/**< Type */
106 } EVK_Message_Queue_Request;
109 INT32 num; /**< Number of queue ID of search */
110 EV_ID ids[EV_MAX_IDS_IN_PROCESS]; /**< Queue ID of search */
111 EV_Event ev; /**< [OUT] First event that occured */
112 } EVK_Next_Event_Query;
116 #endif /* !_evk_lib_h */