PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
thmsgbx.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16#ifndef __THMSGBX_H__
17#define __THMSGBX_H__
18
19#include <types.h>
20#include <irx.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26// Message box attributes
27#define MBA_THFIFO 0x000
28#define MBA_THPRI 0x001
29#define MBA_MSFIFO 0x000
30#define MBA_MSPRI 0x004
31
32typedef struct
33{
34 unsigned int attr;
35 unsigned int option;
36} iop_mbx_t;
37
38/* Define your own messages by putting iop_message_t at the
39 * head of your struct.
40 *
41 * typedef struct {
42 * iop_message_t msg;
43 * u32 mystuff;
44 * ...
45 * } my_message_t;
46 *
47 * You can then pass it as a message with
48 * SendMbx(mbxid, &struct.msg);
49 */
50
51typedef struct _iop_message
52{
53 struct _iop_message *next;
54 unsigned char priority;
55 unsigned char unused[3];
57
58typedef struct _iop_mbx_status
59{
60 unsigned int attr;
61 unsigned int option;
62 int numWaitThreads;
63 int numMessage;
64 iop_message_t *topPacket;
65 int reserved[2];
67
68int CreateMbx(iop_mbx_t *mbx);
69int DeleteMbx(int mbxid);
70
71int SendMbx(int mbxid, void *msg);
72int iSendMbx(int mbxid, void *msg);
73int ReceiveMbx(void **msgvar, int mbxid);
74int PollMbx(void **msgvar, int mbxid);
75
76int ReferMbxStatus(int mbxid, iop_mbx_status_t *info);
77int iReferMbxStatus(int mbxid, iop_mbx_status_t *info);
78
79#define thmsgbx_IMPORTS_start DECLARE_IMPORT_TABLE(thmsgbx, 1, 1)
80#define thmsgbx_IMPORTS_end END_IMPORT_TABLE
81
82#define I_CreateMbx DECLARE_IMPORT(4, CreateMbx)
83#define I_DeleteMbx DECLARE_IMPORT(5, DeleteMbx)
84#define I_SendMbx DECLARE_IMPORT(6, SendMbx)
85#define I_iSendMbx DECLARE_IMPORT(7, iSendMbx)
86#define I_ReceiveMbx DECLARE_IMPORT(8, ReceiveMbx)
87#define I_PollMbx DECLARE_IMPORT(9, PollMbx)
88#define I_ReferMbxStatus DECLARE_IMPORT(11, ReferMbxStatus)
89#define I_iReferMbxStatus DECLARE_IMPORT(12, iReferMbxStatus)
90
91#ifdef __cplusplus
92}
93#endif
94
95#endif /* __THMSGBX_H__ */