Modified license header of some files
[staging/basesystem.git] / agl-basefiles / agldd / evk_lib.h
1 /**
2  * @file evk_lib.h
3  * @brief Event library -- API specifications for kernel modules
4  *
5  * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION.
6  *
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  */
19 #ifndef _evk_lib_h_
20 #define _evk_lib_h_
21
22 #include <agldd/ev_common.h>
23 #include <linux/types.h>
24 #include <linux/ioctl.h>
25
26 /** @addtogroup EVK_in
27  * @{ */
28 #define EVK_NAME "evk"
29 #define EVK_DEV_NAME "/dev/agl/"EVK_NAME
30 #define EVK_DEV_MAJOR (1033 % 256)
31 #define EVK_IOC_MAGIC 0xE7
32
33 #define EVK_IOC_CREATE_FLAG             _IO(EVK_IOC_MAGIC, 0x00)
34 #define EVK_IOC_CREATE_FLAG64           _IO(EVK_IOC_MAGIC, 0x01)
35 #define EVK_IOC_CREATE_MESSAGE_QUEUE    _IO(EVK_IOC_MAGIC, 0x02)
36 #define EVK_IOC_ALLOC_FLAG_ID           _IO(EVK_IOC_MAGIC, 0x03)
37 #define EVK_IOC_ALLOC_FLAG64_ID         _IO(EVK_IOC_MAGIC, 0x04)
38 #define EVK_IOC_ALLOC_QUEUE_ID          _IO(EVK_IOC_MAGIC, 0x05)
39 #define EVK_IOC_DESTROY_QUEUE           _IO(EVK_IOC_MAGIC, 0x06)
40 #define EVK_IOC_STORE_FLAG              _IO(EVK_IOC_MAGIC, 0x07)
41 #define EVK_IOC_STORE_FLAG64            _IO(EVK_IOC_MAGIC, 0x08)
42 #define EVK_IOC_STORE_MESSAGE           _IO(EVK_IOC_MAGIC, 0x09)
43 #define EVK_IOC_SET_POLL                _IO(EVK_IOC_MAGIC, 0x0a)
44 #define EVK_IOC_GET_EVENT               _IO(EVK_IOC_MAGIC, 0x0b)
45 #define EVK_IOC_PEEK_EVENT              _IO(EVK_IOC_MAGIC, 0x0c)
46 #define EVK_IOC_WAIT_EVENT              _IO(EVK_IOC_MAGIC, 0x0d)
47 #define EVK_IOC_GET_NEXT_EVENT          _IO(EVK_IOC_MAGIC, 0x0e)
48 #define EVK_IOC_PEEK_NEXT_EVENT         _IO(EVK_IOC_MAGIC, 0x0f)
49 #define EVK_IOC_DEBUG_LIST              _IO(EVK_IOC_MAGIC, 0x10)
50
51 typedef struct {
52   EV_ID queueID;/**< Queue ID */
53   UINT32 max_bytes;/**< Maximum number of bytes for an event */
54   UINT8 length;/**< Queue length */
55   EV_Message_Queue_Type type;/**< Type */
56 } EVK_Message_Queue_Request;
57
58 typedef struct {
59   INT32 num; /**< Number of queue ID of search */
60   EV_ID ids[EV_MAX_IDS_IN_PROCESS]; /**< Queue ID of search */
61   EV_Event ev; /**< [OUT] First event that occured */
62 } EVK_Next_Event_Query;
63
64 /** @} */
65
66 #endif /* !_evk_lib_h */