ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Committer:
group-onsemi
Date:
Wed Jan 25 20:34:15 2017 +0000
Revision:
0:098463de4c5d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
group-onsemi 0:098463de4c5d 1 /*
group-onsemi 0:098463de4c5d 2 * Copyright (c) 2014-2015 ARM Limited. All rights reserved.
group-onsemi 0:098463de4c5d 3 * SPDX-License-Identifier: Apache-2.0
group-onsemi 0:098463de4c5d 4 * Licensed under the Apache License, Version 2.0 (the License); you may
group-onsemi 0:098463de4c5d 5 * not use this file except in compliance with the License.
group-onsemi 0:098463de4c5d 6 * You may obtain a copy of the License at
group-onsemi 0:098463de4c5d 7 *
group-onsemi 0:098463de4c5d 8 * http://www.apache.org/licenses/LICENSE-2.0
group-onsemi 0:098463de4c5d 9 *
group-onsemi 0:098463de4c5d 10 * Unless required by applicable law or agreed to in writing, software
group-onsemi 0:098463de4c5d 11 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
group-onsemi 0:098463de4c5d 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
group-onsemi 0:098463de4c5d 13 * See the License for the specific language governing permissions and
group-onsemi 0:098463de4c5d 14 * limitations under the License.
group-onsemi 0:098463de4c5d 15 */
group-onsemi 0:098463de4c5d 16 #ifndef EVENTOS_EVENT_H_
group-onsemi 0:098463de4c5d 17 #define EVENTOS_EVENT_H_
group-onsemi 0:098463de4c5d 18 #ifdef __cplusplus
group-onsemi 0:098463de4c5d 19 extern "C" {
group-onsemi 0:098463de4c5d 20 #endif
group-onsemi 0:098463de4c5d 21
group-onsemi 0:098463de4c5d 22 #include "ns_types.h"
group-onsemi 0:098463de4c5d 23 /**
group-onsemi 0:098463de4c5d 24 * \enum arm_library_event_priority_e
group-onsemi 0:098463de4c5d 25 * \brief Event Priority level.
group-onsemi 0:098463de4c5d 26 */
group-onsemi 0:098463de4c5d 27 typedef enum arm_library_event_priority_e {
group-onsemi 0:098463de4c5d 28 ARM_LIB_HIGH_PRIORITY_EVENT = 0, /**< High Priority Event (Function CB) */
group-onsemi 0:098463de4c5d 29 ARM_LIB_MED_PRIORITY_EVENT = 1, /**< Medium Priority (Timer) */
group-onsemi 0:098463de4c5d 30 ARM_LIB_LOW_PRIORITY_EVENT = 2, /*!*< Normal Event and ECC / Security */
group-onsemi 0:098463de4c5d 31 } arm_library_event_priority_e;
group-onsemi 0:098463de4c5d 32
group-onsemi 0:098463de4c5d 33 /**
group-onsemi 0:098463de4c5d 34 * \enum arm_event_s
group-onsemi 0:098463de4c5d 35 * \brief Event structure.
group-onsemi 0:098463de4c5d 36 */
group-onsemi 0:098463de4c5d 37 typedef struct arm_event_s {
group-onsemi 0:098463de4c5d 38 int8_t receiver; /**< Event handler Tasklet ID */
group-onsemi 0:098463de4c5d 39 int8_t sender; /**< Event sender Tasklet ID */
group-onsemi 0:098463de4c5d 40 uint8_t event_type; /**< This will be typecast arm_library_event_type_e, arm_internal_event_type_e or application specific define */
group-onsemi 0:098463de4c5d 41 uint8_t event_id; /**< Timer ID, NWK interface ID or application specific ID */
group-onsemi 0:098463de4c5d 42 void *data_ptr; /**< Application could share data pointer tasklet to tasklet */
group-onsemi 0:098463de4c5d 43 arm_library_event_priority_e priority;
group-onsemi 0:098463de4c5d 44 uint32_t event_data;
group-onsemi 0:098463de4c5d 45 } arm_event_s;
group-onsemi 0:098463de4c5d 46
group-onsemi 0:098463de4c5d 47 /**
group-onsemi 0:098463de4c5d 48 * \brief Send event to event scheduler.
group-onsemi 0:098463de4c5d 49 *
group-onsemi 0:098463de4c5d 50 * \param event pointer to pushed event.
group-onsemi 0:098463de4c5d 51 *
group-onsemi 0:098463de4c5d 52 * \return 0 Event push OK
group-onsemi 0:098463de4c5d 53 * \return -1 Memory allocation Fail
group-onsemi 0:098463de4c5d 54 *
group-onsemi 0:098463de4c5d 55 */
group-onsemi 0:098463de4c5d 56 extern int8_t eventOS_event_send(arm_event_s *event);
group-onsemi 0:098463de4c5d 57
group-onsemi 0:098463de4c5d 58 /**
group-onsemi 0:098463de4c5d 59 * \brief Event handler callback register
group-onsemi 0:098463de4c5d 60 *
group-onsemi 0:098463de4c5d 61 * Function will register and allocate unique event id handler
group-onsemi 0:098463de4c5d 62 *
group-onsemi 0:098463de4c5d 63 * \param handler_func_ptr function pointer for event handler
group-onsemi 0:098463de4c5d 64 * \param init_event_type generated evevnt type for init purpose
group-onsemi 0:098463de4c5d 65 *
group-onsemi 0:098463de4c5d 66 * \return >= 0 Unique event ID for this handler
group-onsemi 0:098463de4c5d 67 * \return < 0 Register fail
group-onsemi 0:098463de4c5d 68 *
group-onsemi 0:098463de4c5d 69 * */
group-onsemi 0:098463de4c5d 70 extern int8_t eventOS_event_handler_create(void (*handler_func_ptr)(arm_event_s *), uint8_t init_event_type);
group-onsemi 0:098463de4c5d 71 #ifdef __cplusplus
group-onsemi 0:098463de4c5d 72 }
group-onsemi 0:098463de4c5d 73 #endif
group-onsemi 0:098463de4c5d 74 #endif /* EVENTOS_EVENT_H_ */