61 lines
1.1 KiB
C
61 lines
1.1 KiB
C
#ifndef EE_EEKERNEL_H
|
|
#define EE_EEKERNEL_H
|
|
|
|
#define WRITEBACK_DCACHE 0
|
|
#define INVALIDATE_DCACHE 1
|
|
#define INVALIDATE_ICACHE 2
|
|
#define INVALIDATE_CACHE 3
|
|
|
|
#define DMAC_VIF0 0
|
|
#define DMAC_VIF1 1
|
|
#define DMAC_GIF 2
|
|
#define DMAC_FROM_IPU 3
|
|
#define DMAC_TO_IPU 4
|
|
#define DMAC_FROM_SPR 8
|
|
#define DMAC_TO_SPR 9
|
|
|
|
typedef struct {
|
|
int status;
|
|
void *entry;
|
|
void *stack;
|
|
int stackSize;
|
|
void *gpReg;
|
|
int initPriority;
|
|
int currentPriority;
|
|
u_int attr;
|
|
u_int option;
|
|
int waitType;
|
|
int waitId;
|
|
int wakeupCount;
|
|
} ThreadParam;
|
|
|
|
typedef struct {
|
|
int currentCount;
|
|
int maxCount;
|
|
int initCount;
|
|
int numWaitThreads;
|
|
u_int attr;
|
|
u_int option;
|
|
} SemaParam;
|
|
|
|
extern void *_gp;
|
|
|
|
#define ExitHandler() \
|
|
asm volatile("\n\
|
|
sync.l \n\
|
|
ei \n\
|
|
");
|
|
|
|
int CreateThread(ThreadParam *);
|
|
int StartThread(int, void *arg);
|
|
int GetThreadId(void);
|
|
int ChangeThreadPriority(int, int);
|
|
int RotateThreadReadyQueue(int);
|
|
|
|
int CreateSema(SemaParam *param);
|
|
int SignalSema(int);
|
|
int WaitSema(int);
|
|
int DeleteSema(int);
|
|
|
|
#endif // EE_EEKERNEL_H
|