/* SPDX-License-Identifier: GPL-2.0 */ /* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __EVENT_FIFO_PUBLIC_H #define __EVENT_FIFO_PUBLIC_H #include <type_support.h> #include "system_local.h" /*! Blocking read from an event source EVENT[ID] \param ID[in] EVENT identifier \return none, dequeue(event_queue[ID]) */ STORAGE_CLASS_EVENT_H void event_wait_for( const event_ID_t ID); /*! Conditional blocking wait for an event source EVENT[ID] \param ID[in] EVENT identifier \param cnd[in] predicate \return none, if(cnd) dequeue(event_queue[ID]) */ STORAGE_CLASS_EVENT_H void cnd_event_wait_for( const event_ID_t ID, const bool cnd); /*! Blocking read from an event source EVENT[ID] \param ID[in] EVENT identifier \return dequeue(event_queue[ID]) */ STORAGE_CLASS_EVENT_H hrt_data event_receive_token( const event_ID_t ID); /*! Blocking write to an event sink EVENT[ID] \param ID[in] EVENT identifier \param token[in] token to be written on the event \return none, enqueue(event_queue[ID]) */ STORAGE_CLASS_EVENT_H void event_send_token( const event_ID_t ID, const hrt_data token); /*! Query an event source EVENT[ID] \param ID[in] EVENT identifier \return !isempty(event_queue[ID]) */ STORAGE_CLASS_EVENT_H bool is_event_pending( const event_ID_t ID); /*! Query an event sink EVENT[ID] \param ID[in] EVENT identifier \return !isfull(event_queue[ID]) */ STORAGE_CLASS_EVENT_H bool can_event_send_token( const event_ID_t ID); #endif /* __EVENT_FIFO_PUBLIC_H */