/*
 * $Id: bg_msgmgr.h,v 1.1 2003/02/07 18:15:44 wheeler Exp $
 *
 * $Log: bg_msgmgr.h,v $
 * Revision 1.1  2003/02/07 18:15:44  wheeler
 * Fox's version of libultra and friends.
 *
 * Revision 1.6  1996/11/21  05:45:54  hayakawa
 * インクルードするべきファイルをインクルードしていなかった
 *
 * Revision 1.5  1996/10/20  08:58:48  hayakawa
 * _LANGUAGE_C_PLUS_PLUS を __cplusplus に変更
 *
 */

#ifndef __BG_MSGMGR_H_
#define __BG_MSGMGR_H_

#include "ultra64.h"

#ifdef __cplusplus
extern "C" {
#endif

void CreateMessageManager( void );
s32 xosSendMesg(OSMesgQueue *mq, OSMesg msg, s32 flag, char *file, int line );
s32 xosJamMesg( OSMesgQueue *mq, OSMesg msg, s32 flag, char *file, int line );
s32 xosRecvMesg(OSMesgQueue *mq, OSMesg *msg, s32 flag, char *file, int line);
void xosStartThread( OSThread *osthread );
void xosCreateThread( OSThread *t, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri pri );


#if 0

#define xxSendMesg(mq, msg, flag) osSendMesg(mq, msg, flag)
#define xxRecvMesg(mq, msg, flag) osRecvMesg(mq, msg, flag)
#define xxJamMesg(mq, msg, flag) osJamMesg(mq, msg, flag)
#define xxStartThread(osthread) osStartThread(osthread)
#define xxCreateThread(t, id, entry, arg, sp, pri) osCreateThread(t, id, entry, arg, sp, pri)

#else

#define xxSendMesg(mq, msg, flag) xosSendMesg(mq, msg, flag, __FILE__, __LINE__)
#define xxRecvMesg(mq, msg, flag) xosRecvMesg(mq, msg, flag, __FILE__, __LINE__)
#define xxJamMesg(mq, msg, flag) xosJamMesg(mq, msg, flag, __FILE__, __LINE__)
#define xxStartThread(osthread) xosStartThread(osthread)
#define xxCreateThread(t, id, entry, arg, sp, pri) xosCreateThread(t, id, entry, arg, sp, pri)

#endif

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif
