psl1ght
A free SDK for Sony's PS3 console
Loading...
Searching...
No Matches
event_queue.h
Go to the documentation of this file.
1
5#ifndef __SYS_EVENT_QUEUE_H__
6#define __SYS_EVENT_QUEUE_H__
7
8#include <ppu-lv2.h>
9
11#define SYS_EVENT_QUEUE_PPU 0x01
13#define SYS_EVENT_QUEUE_SPU 0x02
14
16#define SYS_EVENT_QUEUE_FIFO 0x01
18#define SYS_EVENT_QUEUE_PRIO 0x02
20#define SYS_EVENT_QUEUE_PRIO_INHERIT 0x03
21
23#define SYS_EVENT_PORT_LOCAL 0x01
24
26#define SYS_EVENT_PORT_NO_NAME 0x00
27
29#define SYS_EVENT_QUEUE_KEY_LOCAL 0x00
30
32#define SYS_EVENT_QUEUE_FORCE_DESTROY 0x01
33
34#ifdef __cplusplus
35 extern "C" {
36#endif
37
61
63typedef struct sys_event
64{
65 u64 source;
66 u64 data_1;
67 u64 data_2;
68 u64 data_3;
70
78LV2_SYSCALL sysEventQueueCreate(sys_event_queue_t *eventQ,sys_event_queue_attr_t *attrib,sys_ipc_key_t key,s32 size)
79{
80 lv2syscall4(128,(u64)eventQ,(u64)attrib,key,size);
81 return_to_user_prog(s32);
82}
83
89LV2_SYSCALL sysEventQueueDestroy(sys_event_queue_t eventQ,s32 mode)
90{
91 lv2syscall2(129,eventQ,mode);
92 return_to_user_prog(s32);
93}
94
105LV2_SYSCALL sysEventQueueReceive(sys_event_queue_t eventQ,sys_event_t *event,u64 timeout_usec)
106{
107 lv2syscall3(130,eventQ,(u64)event,timeout_usec);
108#ifdef REG_PASS_SYS_EVENT_QUEUE_RECEIVE
109 REG_PASS_SYS_EVENT_QUEUE_RECEIVE;
110#endif
111 return_to_user_prog(s32);
112}
113
120LV2_SYSCALL sysEventQueueDrain(sys_event_queue_t eventQ)
121{
122 lv2syscall1(133,eventQ);
123 return_to_user_prog(s32);
124}
125
136LV2_SYSCALL sysEventPortCreate(sys_event_port_t *portId,int portType,u64 name)
137{
138 lv2syscall3(134,(u64)portId,portType,name);
139 return_to_user_prog(s32);
140}
141
146LV2_SYSCALL sysEventPortDestroy(sys_event_port_t portId)
147{
148 lv2syscall1(135,portId);
149 return_to_user_prog(s32);
150}
151
161LV2_SYSCALL sysEventPortSend(sys_event_port_t portId,u64 data0,u64 data1,u64 data2)
162{
163 lv2syscall4(138,portId,data0,data1,data2);
164 return_to_user_prog(s32);
165}
166
172LV2_SYSCALL sysEventPortConnectLocal(sys_event_port_t portId,sys_event_queue_t eventQ)
173{
174 lv2syscall2(136,portId,eventQ);
175 return_to_user_prog(s32);
176}
177
182LV2_SYSCALL sysEventPortDisconnect(sys_event_port_t portId)
183{
184 lv2syscall1(137,portId);
185 return_to_user_prog(s32);
186}
187
188#ifdef __cplusplus
189 }
190#endif
191
192#endif
LV2_SYSCALL sysEventPortConnectLocal(sys_event_port_t portId, sys_event_queue_t eventQ)
Connect an event port to an event queue in the same process.
LV2_SYSCALL sysEventQueueDestroy(sys_event_queue_t eventQ, s32 mode)
Destroy an event queue.
Definition event_queue.h:89
struct sys_event sys_event_t
Data structure for received event data.
LV2_SYSCALL sysEventQueueReceive(sys_event_queue_t eventQ, sys_event_t *event, u64 timeout_usec)
Receive an event from an event queue.
LV2_SYSCALL sysEventPortSend(sys_event_port_t portId, u64 data0, u64 data1, u64 data2)
Send an event.
LV2_SYSCALL sysEventPortCreate(sys_event_port_t *portId, int portType, u64 name)
Create an event port.
LV2_SYSCALL sysEventPortDestroy(sys_event_port_t portId)
Destroys an event port.
struct sys_event_queue_attr sys_event_queue_attr_t
Data structure for create attributes for an event queue.
LV2_SYSCALL sysEventQueueCreate(sys_event_queue_t *eventQ, sys_event_queue_attr_t *attrib, sys_ipc_key_t key, s32 size)
Create an event queue.
Definition event_queue.h:78
LV2_SYSCALL sysEventQueueDrain(sys_event_queue_t eventQ)
Drain an event queue.
LV2_SYSCALL sysEventPortDisconnect(sys_event_port_t portId)
Disconnect an event port from an event queue.
uintptr_t size
Definition heap.h:1
Data structure for create attributes for an event queue.
Definition event_queue.h:40
char name[8]
Name identifier.
Definition event_queue.h:59
s32 type
Event queue type.
Definition event_queue.h:56
u32 attr_protocol
Synchronization attribute.
Definition event_queue.h:48
Data structure for received event data.
Definition event_queue.h:64
u64 source
id of emitting source
Definition event_queue.h:65
u64 data_1
data field 1
Definition event_queue.h:66
u64 data_3
data field 3
Definition event_queue.h:68
u64 data_2
data field 2
Definition event_queue.h:67