From 8e0e00d21146a84c18f9cf9409e187b4fb0248aa Mon Sep 17 00:00:00 2001 From: Riku Nomoto Date: Thu, 19 Nov 2020 12:45:32 +0900 Subject: Init basesystem source codes. Signed-off-by: Riku Nomoto Change-Id: I55aa2f1406ce7f751ae14140b613b53b68995528 --- video_in_hal/kernel-module-evklib/agldd/evk_lib.h | 116 ++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100755 video_in_hal/kernel-module-evklib/agldd/evk_lib.h (limited to 'video_in_hal/kernel-module-evklib/agldd/evk_lib.h') diff --git a/video_in_hal/kernel-module-evklib/agldd/evk_lib.h b/video_in_hal/kernel-module-evklib/agldd/evk_lib.h new file mode 100755 index 0000000..416fb0f --- /dev/null +++ b/video_in_hal/kernel-module-evklib/agldd/evk_lib.h @@ -0,0 +1,116 @@ +/** + * @file evk_lib.h + * @brief Event library -- API specifications for kernel modules + * + * @copyright Copyright (c) 2016-2019 TOYOTA MOTOR CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef _evk_lib_h_ +#define _evk_lib_h_ + +#include +#include +#include + +/* API definition */ + +/** @addtogroup EV + * @{ */ +#ifdef __KERNEL__ +/* Flag message queue create/delete */ +EV_ERR EVK_create_flag(EV_ID flagID); +EV_ERR EVK_create_flag64(EV_ID flagID); +EV_ERR EVK_create_queue(EV_ID queueID, + UINT8 length, + UINT16 max_bytes, + EV_Message_Queue_Type type); + +EV_ERR EVK_create_flag_auto_id(/* OUT */EV_ID *flagID); +EV_ERR EVK_create_flag64_auto_id(/* OUT */EV_ID *flagID); +EV_ERR EVK_create_queue_auto_id(/* OUT */EV_ID *queueID, + UINT8 length, + UINT16 max_bytes, + EV_Message_Queue_Type type); + +EV_ERR EVK_destroy_flag(EV_ID flagID); +EV_ERR EVK_destroy_queue(EV_ID queueID); + +/* Send events */ +EV_ERR EVK_set_flag(EV_ID flagID, UINT32 bits); +EV_ERR EVK_set_flag64(EV_ID flagID, UINT64 bits); +EV_ERR EVK_send_message(EV_ID queueID, UINT16 bytes, const void *message, + UINT32 senderInfo); + +/* Get event(with search conditions) */ +EV_ERR EVK_get_flag(EV_ID flagID, /* OUT */EV_Flag *flag); +EV_ERR EVK_wait_flag(EV_ID flagID, /* OUT */EV_Flag *flag);/* block */ +EV_ERR EVK_peek_flag(EV_ID flagID, /* OUT */EV_Flag *flag); +EV_ERR EVK_get_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag); +EV_ERR EVK_wait_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag);/* block */ +EV_ERR EVK_peek_flag64(EV_ID flagID, /* OUT */EV_Flag64 *flag); + +EV_ERR EVK_get_message(EV_ID queueID, /* OUT */EV_Message *message); +EV_ERR EVK_wait_message(EV_ID queueID, /* OUT */EV_Message *message);/* block */ +EV_ERR EVK_peek_message(EV_ID queueID, /* OUT */EV_Message *message); + +EV_ERR EVK_find_message_by_sender(EV_ID queueID, UINT32 senderInfo, + /* OUT */EV_Message *message); +EV_ERR EVK_find_message_by_content(EV_ID queueID, UINT16 length, + const void *compare_bytes, + /* OUT */EV_Message *message); +#endif + +/** @} */ + +/** @addtogroup EVK_in + * @{ */ +#define EVK_NAME "evk" +#define EVK_DEV_NAME "/dev/agl/"EVK_NAME +#define EVK_DEV_MAJOR (1033 % 256) +#define EVK_IOC_MAGIC 0xE7 + +#define EVK_IOC_CREATE_FLAG _IO(EVK_IOC_MAGIC, 0x00) +#define EVK_IOC_CREATE_FLAG64 _IO(EVK_IOC_MAGIC, 0x01) +#define EVK_IOC_CREATE_MESSAGE_QUEUE _IO(EVK_IOC_MAGIC, 0x02) +#define EVK_IOC_ALLOC_FLAG_ID _IO(EVK_IOC_MAGIC, 0x03) +#define EVK_IOC_ALLOC_FLAG64_ID _IO(EVK_IOC_MAGIC, 0x04) +#define EVK_IOC_ALLOC_QUEUE_ID _IO(EVK_IOC_MAGIC, 0x05) +#define EVK_IOC_DESTROY_QUEUE _IO(EVK_IOC_MAGIC, 0x06) +#define EVK_IOC_STORE_FLAG _IO(EVK_IOC_MAGIC, 0x07) +#define EVK_IOC_STORE_FLAG64 _IO(EVK_IOC_MAGIC, 0x08) +#define EVK_IOC_STORE_MESSAGE _IO(EVK_IOC_MAGIC, 0x09) +#define EVK_IOC_SET_POLL _IO(EVK_IOC_MAGIC, 0x0a) +#define EVK_IOC_GET_EVENT _IO(EVK_IOC_MAGIC, 0x0b) +#define EVK_IOC_PEEK_EVENT _IO(EVK_IOC_MAGIC, 0x0c) +#define EVK_IOC_WAIT_EVENT _IO(EVK_IOC_MAGIC, 0x0d) +#define EVK_IOC_GET_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0e) +#define EVK_IOC_PEEK_NEXT_EVENT _IO(EVK_IOC_MAGIC, 0x0f) +#define EVK_IOC_DEBUG_LIST _IO(EVK_IOC_MAGIC, 0x10) + +typedef struct { + EV_ID queueID;/**< Queue ID */ + UINT32 max_bytes;/**< Maximum number of bytes for an event */ + UINT8 length;/**< Queue length */ + EV_Message_Queue_Type type;/**< Type */ +} EVK_Message_Queue_Request; + +typedef struct { + INT32 num; /**< Number of queue ID of search */ + EV_ID ids[EV_MAX_IDS_IN_PROCESS]; /**< Queue ID of search */ + EV_Event ev; /**< [OUT] First event that occured */ +} EVK_Next_Event_Query; + +/** @} */ + +#endif /* !_evk_lib_h */ -- cgit 1.2.3-korg