#ifndef __SCEGE_H__
#define __SCEGE_H__

typedef void (* PspGeCallback)(int id, void *arg) ;

typedef struct PspGeContext
{
	unsigned int context[512];
} PspGeContext;

typedef struct PspGeListArgs
{
	unsigned int size;
	PspGeContext *context;
} PspGeListArgs;

typedef struct PspGeCallbackData
{
	PspGeCallback signal_func;
	void * signal_arg;
	PspGeCallback finish_func;
	void * finish_arg;
} PspGeCallbackData;

// (* sceGe_lazy_31129B95) (__) = (void *) 0x08800b44;
void (* sceGeBreak) (int unk1) = (void *) (BASE_OFFSET + 0xe6b40);
void (* sceGeContinue) (int unk1) = (void *) (BASE_OFFSET + 0xe6b48);
int (* sceGeDrawSync) (int syncType) = (void *) (BASE_OFFSET + 0xe6b38);
void * (* sceGeEdramGetAddr) (void) = (void *) (BASE_OFFSET + 0xe6b10);
int (* sceGeListEnQueue) (const void *list, void *stall, int cbid, PspGeListArgs *arg) = (void *) (BASE_OFFSET + 0xe6b18);
int (* sceGeListEnQueueHead) (const void *list, void *stall, int cbid, PspGeListArgs *arg) = (void *) (BASE_OFFSET + 0xe6b20);
int (* sceGeListSync) (int qid, int syncType) = (void *) (BASE_OFFSET + 0xe6b30);
int (* sceGeListUpdateStallAddr) (int qid, void *stall)= (void *) (BASE_OFFSET + 0xe6b28);
int (* sceGeSetCallback) (PspGeCallbackData *cb) = (void *) (BASE_OFFSET + 0xe6b50);
int (* sceGeUnsetCallback) (int cbid)= (void *) (BASE_OFFSET + 0xe6b58);

#endif
