mirror of https://github.com/ARMmbed/mbed-os.git
75 lines
2.4 KiB
C
75 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2014-2015 ARM Limited. All rights reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
* 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 EVENTOS_EVENT_H_
|
|
#define EVENTOS_EVENT_H_
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "ns_types.h"
|
|
/**
|
|
* \enum arm_library_event_priority_e
|
|
* \brief Event Priority level.
|
|
*/
|
|
typedef enum arm_library_event_priority_e {
|
|
ARM_LIB_HIGH_PRIORITY_EVENT = 0, /**< High Priority Event (Function CB) */
|
|
ARM_LIB_MED_PRIORITY_EVENT = 1, /**< Medium Priority (Timer) */
|
|
ARM_LIB_LOW_PRIORITY_EVENT = 2, /*!*< Normal Event and ECC / Security */
|
|
} arm_library_event_priority_e;
|
|
|
|
/**
|
|
* \enum arm_event_s
|
|
* \brief Event structure.
|
|
*/
|
|
typedef struct arm_event_s {
|
|
int8_t receiver; /**< Event handler Tasklet ID */
|
|
int8_t sender; /**< Event sender Tasklet ID */
|
|
uint8_t event_type; /**< This will be typecast arm_library_event_type_e, arm_internal_event_type_e or application specific define */
|
|
uint8_t event_id; /**< Timer ID, NWK interface ID or application specific ID */
|
|
void *data_ptr; /**< Application could share data pointer tasklet to tasklet */
|
|
arm_library_event_priority_e priority;
|
|
uint32_t event_data;
|
|
} arm_event_s;
|
|
|
|
/**
|
|
* \brief Send event to event scheduler.
|
|
*
|
|
* \param event pointer to pushed event.
|
|
*
|
|
* \return 0 Event push OK
|
|
* \return -1 Memory allocation Fail
|
|
*
|
|
*/
|
|
extern int8_t eventOS_event_send(arm_event_s *event);
|
|
|
|
/**
|
|
* \brief Event handler callback register
|
|
*
|
|
* Function will register and allocate unique event id handler
|
|
*
|
|
* \param handler_func_ptr function pointer for event handler
|
|
* \param init_event_type generated evevnt type for init purpose
|
|
*
|
|
* \return >= 0 Unique event ID for this handler
|
|
* \return < 0 Register fail
|
|
*
|
|
* */
|
|
extern int8_t eventOS_event_handler_create(void (*handler_func_ptr)(arm_event_s *), uint8_t init_event_type);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* EVENTOS_EVENT_H_ */
|