1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2*437bfbebSnyanmisaka /* 3*437bfbebSnyanmisaka * Copyright (c) 2017 Rockchip Electronics Co., Ltd. 4*437bfbebSnyanmisaka */ 5*437bfbebSnyanmisaka 6*437bfbebSnyanmisaka #ifndef __MPP_EVENT_TRIGGER_H__ 7*437bfbebSnyanmisaka #define __MPP_EVENT_TRIGGER_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka typedef void (*event_trigger)(void *parent, void *event); 10*437bfbebSnyanmisaka 11*437bfbebSnyanmisaka struct ievent { 12*437bfbebSnyanmisaka int idx; 13*437bfbebSnyanmisaka void *event; 14*437bfbebSnyanmisaka }; 15*437bfbebSnyanmisaka 16*437bfbebSnyanmisaka struct event_packet { 17*437bfbebSnyanmisaka int cnt; 18*437bfbebSnyanmisaka int loop; 19*437bfbebSnyanmisaka struct ievent e[128]; 20*437bfbebSnyanmisaka }; 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka struct event_ctx { 23*437bfbebSnyanmisaka int (*notify)(void *param); 24*437bfbebSnyanmisaka }; 25*437bfbebSnyanmisaka 26*437bfbebSnyanmisaka struct event_ctx* event_ctx_create(struct event_packet *e, 27*437bfbebSnyanmisaka event_trigger trigger, void *parent); 28*437bfbebSnyanmisaka void event_ctx_release(struct event_ctx *ictx); 29*437bfbebSnyanmisaka 30*437bfbebSnyanmisaka #endif 31