00001
00010 #ifndef DKUTIL_C_THREAD_H
00011 #define DKUTIL_C_THREAD_H
00012
00013 #include "dkcThreadLock.h"
00014
00015 #ifdef WIN32
00016
00017 typedef struct dkc_Thread{
00018 HANDLE handle;
00019 DWORD id;
00020 }DKC_THREAD;
00021
00022 enum edkcThreadPriority{
00023 edkcThreadPriorityLowest = 0,
00024 edkcThreadPriorityBelowNormal ,
00025 edkcThreadPriorityNormal ,
00026 edkcThreadPriorityAboveNormal ,
00027 edkcThreadPriorityHighest ,
00028 edkcThreadPriorityIdle,
00029 edkcThreadPriorityTimeCritical,
00030 };
00031
00032 enum edkcProcessPriority{
00033 edkcProcessPriorityHigh = 0,
00034 edkcProcessPriorityIdle ,
00035 edkcProcessPriorityNormal ,
00036 edkcProcessPriorityRealTime ,
00037 };
00038 #else
00039
00040 #endif
00041
00042 DKC_EXTERN DKC_THREAD *WINAPI dkcAllocThread();
00043
00044 DKC_EXTERN int WINAPI dkcFreeThread(DKC_THREAD **p);
00045
00046 DKC_EXTERN int WINAPI dkcGetCurrentThread(DKC_THREAD *out);
00047
00048 DKC_EXTERN int WINAPI dkcGetThreadPriority(DKC_THREAD *p,int *priority);
00049 DKC_EXTERN int WINAPI dkcSetThreadPriority(DKC_THREAD *p,int priority);
00050
00051 DKC_EXTERN int WINAPI dkcGetCurrentThreadPriority(int *priority);
00052 DKC_EXTERN int WINAPI dkcSetCurrentThreadPriority(int priority);
00053
00054
00055
00056 DKC_EXTERN int WINAPI dkcGetProcessPriority(DKC_THREAD *p,int *priority);
00057 DKC_EXTERN int WINAPI dkcSetProcessPriority(DKC_THREAD *p,int priority);
00058
00059 DKC_EXTERN int WINAPI dkcGetCurrentProcessPriority(int *priority);
00060 DKC_EXTERN int WINAPI dkcSetCurrentProcessPriority(int priority);
00061
00062 #endif //end of include once