xref: /rockchip-linux_mpp/test/mpp_event_trigger.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
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