win_Lib.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:5k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* win_Lib.h - simulator UNIX/VxSim interface header */
  2.     
  3. /* Copyright 1998-2001 Wind River Systems, Inc */
  4. /*
  5. modification history
  6. --------------------
  7. 01c,03sep01,hbh  Fixed field types for win_stat structure (SPR 29146 & 65372).
  8. 01b,29apr98,cym  added file stat/find structures and exceptions.
  9. 01a,31jan98,jmb  written.
  10. */
  11. /*
  12. DESCRIPTION
  13. This header contains the prototype declarations for all Win32
  14. calls made by VxSim outside of simLib.c
  15. */
  16. #ifndef INCwin_Libh
  17. #define INCwin_Libh
  18. /* This typedef doesn't really belong here */
  19. typedef struct ntsim_int_vec
  20. {  
  21.     int message;
  22.     void (*handler)();
  23.     int arg;
  24. } NTSIM_INT_VEC;
  25. #define INT_WAS_IN_PROGRESS 0x1000000
  26. #define WIN_INFINITE 0xFFFFFFFF
  27. typedef int       WIN_BOOL;
  28. typedef unsigned int WIN_DWORD;
  29. typedef WIN_DWORD *  WIN_LPDWORD;
  30. typedef void *       WIN_HANDLE;
  31. typedef void *       WIN_LPVOID;
  32. typedef const void * WIN_LPCVOID;
  33. typedef struct _WIN_FLOATING_SAVE_AREA
  34. {
  35.     WIN_DWORD ControlWord;
  36.     WIN_DWORD StatusWord;
  37.     WIN_DWORD TagWord;
  38.     WIN_DWORD ErrorOffset;
  39.     WIN_DWORD ErrorSelector;
  40.     WIN_DWORD DataOffset;
  41.     WIN_DWORD DataSelector;
  42.     WIN_DWORD RegisterArea[80];
  43.     WIN_DWORD Cr0NpxState;
  44. } WIN_FLOATING_SAVE_AREA;
  45. typedef struct _WIN_CONTEXT
  46. {
  47.     WIN_DWORD ContextFlags;
  48.     WIN_DWORD Dr0;
  49.     WIN_DWORD Dr1;
  50.     WIN_DWORD Dr3;
  51.     WIN_DWORD Dr6;
  52.     WIN_DWORD Dr7;
  53.   
  54.     WIN_FLOATING_SAVE_AREA FloatSave;
  55.     WIN_DWORD SegGs;
  56.     WIN_DWORD SegFs;
  57.     WIN_DWORD SegEs;
  58.     WIN_DWORD SegDs;
  59.     WIN_DWORD Edi;
  60.     WIN_DWORD Esi;
  61.     WIN_DWORD Ebx;
  62.     WIN_DWORD Edx;
  63.     WIN_DWORD Ecx;
  64.     WIN_DWORD Eax;
  65.     WIN_DWORD Ebp;
  66.     WIN_DWORD Eip;
  67.     WIN_DWORD SegCs;
  68.     WIN_DWORD Eflags;
  69.     WIN_DWORD Esp;
  70.     WIN_DWORD SegSs;
  71.     
  72. } WIN_CONTEXT,*WIN_LPCONTEXT;
  73. struct win_stat {
  74.     short  st_dev;
  75.     short   st_ino;
  76.     unsigned short  st_mode;
  77.     short  st_nlink;
  78.     int st_uid;
  79.     short st_gid;
  80.     short   st_rdev;
  81.     long  st_size;
  82.     long st_atime;
  83.     long st_mtime;
  84.     long st_ctime;
  85.     };
  86. typedef struct _WIN_FILETIME {
  87.     DWORD LowTime;
  88.     DWORD HighTime;
  89.     } WIN_FILETIME;
  90. typedef struct _WIN_FIND_DATA {
  91.     WIN_DWORD  attrib;
  92.     WIN_FILETIME tCreate;
  93.     WIN_FILETIME tAccess;
  94.     WIN_FILETIME tWrite;
  95.     WIN_DWORD szHigh;
  96.     WIN_DWORD szLow;
  97.     WIN_DWORD reserved0;
  98.     WIN_DWORD reserved1;
  99.     char name[ 260 ];
  100.     char altName[ 14 ];
  101.     }WIN_FIND_DATA;
  102. /* Only use __stdcall under Win32 compiler */
  103. #ifdef i386
  104. #define WIN_STDCALL  __attribute__ ((stdcall))
  105. #define WIN_WINAPI   WIN_STDCALL
  106. #define WIN_CALLBACK WIN_WINAPI
  107. #else
  108. #define WIN_CALLBACK __stdcall
  109. #endif
  110. typedef WIN_DWORD (WIN_CALLBACK *WIN_LPTHREAD_START_ROUTINE) (WIN_LPVOID);
  111. typedef struct  _WIN_SECURITY_ATTRIBUTES
  112. {
  113.     WIN_DWORD nLength;
  114.     WIN_LPVOID lpSecurityDescriptors;
  115.     WIN_BOOL bInheritHandle;
  116. } *WIN_LPSECURITY_ATTRIBUTES;
  117. #ifdef __STDC__
  118. extern WIN_DWORD win_SetTimer(unsigned int id,unsigned int msecs);
  119. extern WIN_BOOL win_KillTimer(unsigned int id);
  120. extern WIN_BOOL win_FindNextFile(HANDLE hFind, WIN_FIND_DATA *findData);
  121. extern WIN_HANDLE win_FindFirstFile(char *searchStr, WIN_FIND_DATA *findData);
  122. extern WIN_BOOL win_FindClose(HANDLE hFind);
  123. extern WIN_BOOL win_WaitMessage (void);
  124. extern WIN_BOOL win_GetThreadContext (WIN_HANDLE hThread,WIN_LPCONTEXT lpContext);
  125. extern WIN_BOOL win_SetThreadContext (WIN_HANDLE hThread,WIN_LPCONTEXT lpContext);
  126. extern WIN_HANDLE win_CreateThread (WIN_LPSECURITY_ATTRIBUTES security, WIN_DWORD stack,
  127.     WIN_LPTHREAD_START_ROUTINE start, WIN_LPVOID param, WIN_DWORD flags, WIN_LPDWORD threadId);
  128. extern WIN_DWORD win_ResumeThread (WIN_HANDLE hThread);
  129. extern WIN_DWORD win_SuspendThread (WIN_HANDLE hThread);
  130. extern WIN_HANDLE win_GetCurrentThread (void);
  131. extern WIN_HANDLE win_GetCurrentProcess (void);
  132. extern WIN_DWORD win_SemTake (WIN_HANDLE sem);
  133. extern WIN_BOOL win_SemGive (WIN_HANDLE sem);
  134. extern WIN_BOOL win_FlushInstructionCache(WIN_HANDLE process, WIN_LPCVOID addr, WIN_DWORD bytes);
  135. extern void *u_malloc (int size);
  136. #else
  137. extern WIN_DWORD win_SetTimer();
  138. extern WIN_BOOL win_KillTimer();
  139. extern WIN_BOOL win_WaitMessage ();
  140. extern WIN_BOOL win_GetThreadContext ();
  141. extern WIN_BOOL win_SetThreadContext ();
  142. extern WIN_HANDLE win_CreateThread ();
  143. extern WIN_DWORD win_ResumeThread ();
  144. extern WIN_DWORD win_SuspendThread ();
  145. extern WIN_HANDLE win_GetCurrentThread ();
  146. extern WIN_HANDLE win_GetCurrentProcess ();
  147. extern WIN_DWORD win_WinSemTake ();
  148. extern WIN_BOOL win_WinSemGive ();
  149. extern WIN_BOOL win_FlushInstructionCache ();
  150. extern void *u_malloc ();
  151. #endif /* __STDC__ */
  152. #endif /* INCwin_Libh */