Jungo WinDriver  
Official Documentation
utils.h
Go to the documentation of this file.
1/* @JUNGO_COPYRIGHT@ */
2
3#ifndef _WD_UTILS_H_
4#define _WD_UTILS_H_
5
6#if defined(__KERNEL__)
7 #include "kpstdlib.h"
8#else
9 #include <stdio.h>
10#endif
11
12#include "windrvr.h"
13
14#if defined(__cplusplus)
15extern "C" {
16#endif
17
18#if !defined(MAX_PATH)
19 #define MAX_PATH 4096
20#endif
21
22#if defined(WIN32)
23 #define snprintf _snprintf
24 #if !defined(vsnprintf)
25 #define vsnprintf _vsnprintf
26 #endif
27#endif
28
29#if !defined(__KERNEL__)
30#if defined(UNIX)
31#include <sys/time.h>
32 typedef struct timeval TIME_TYPE;
33#else
34 typedef LARGE_INTEGER TIME_TYPE;
35#endif
36#endif /* !defined(__KERNEL__) */
37
38typedef void (DLLCALLCONV *HANDLER_FUNC)(void *pData);
39
40#if !defined(__KERNEL__)
41
57DWORD DLLCALLCONV ThreadStart(_Outptr_ HANDLE *phThread,
58 _In_ HANDLER_FUNC pFunc,
59 _In_ void *pData);
60
70void DLLCALLCONV ThreadWait(_In_ HANDLE hThread);
71#endif /* !defined(__KERNEL__) */
72
84DWORD DLLCALLCONV OsEventCreate(_Outptr_ HANDLE *phOsEvent);
85
95void DLLCALLCONV OsEventClose(_In_ HANDLE hOsEvent);
96
111DWORD DLLCALLCONV OsEventWait(_In_ HANDLE hOsEvent, _In_ DWORD dwSecTimeout);
112
123DWORD DLLCALLCONV OsEventSignal(_In_ HANDLE hOsEvent);
124
135DWORD DLLCALLCONV OsEventReset(_In_ HANDLE hOsEvent);
136
148DWORD DLLCALLCONV OsMutexCreate(_Outptr_ HANDLE *phOsMutex);
149
159void DLLCALLCONV OsMutexClose(_In_ HANDLE hOsMutex);
160
171DWORD DLLCALLCONV OsMutexLock(_In_ HANDLE hOsMutex);
172
183DWORD DLLCALLCONV OsMutexUnlock(_In_ HANDLE hOsMutex);
184
194void DLLCALLCONV SleepWrapper(_In_ DWORD dwMicroSecs);
195
196#if defined(UNIX)
197 #define OsMemoryBarrier() __sync_synchronize()
198#elif defined(WIN32)
199 #define OsMemoryBarrier() MemoryBarrier()
200#endif
201
202#if !defined(__KERNEL__)
203
204
205int print2wstr(wchar_t *buffer, size_t count, const wchar_t *format , ...);
206
226void DLLCALLCONV vPrintDbgMessage(_In_ DWORD dwLevel, _In_ DWORD dwSection,
227 _In_ const char *format, _In_ va_list ap);
228
248void DLLCALLCONV PrintDbgMessage(DWORD dwLevel, DWORD dwSection,
249 const char *format, ...);
250
259
268
281BOOL DLLCALLCONV UtilGetFileSize(_In_ const PCHAR sFileName,
282 _Outptr_ DWORD *pdwFileSize, _In_ PCHAR sErrString);
283
301 _In_ DWORD dwSizeStr, _In_ const CHAR *pcInputText,
302 _In_ const CHAR *pcDefaultString);
303
304
319DWORD DLLCALLCONV UtilGetFileName(_Out_ PCHAR pcFileName,
320 _In_ DWORD dwFileNameSize, _In_ const CHAR *pcDefaultFileName);
321
333
344
345#endif /* !defined(__KERNEL__) */
346
347#if defined(UNIX)
348 #if !defined(stricmp)
349 #define stricmp strcasecmp
350 #endif
351 #if !defined(strnicmp)
352 #define strnicmp strncasecmp
353 #endif
354#endif
355
366
377
378#if !defined(INFINITE)
379 #define INFINITE 0xffffffff
380#endif
381
382#ifdef __cplusplus
383}
384#endif
385
386#endif /* _WD_UTILS_H_ */
387
int print2wstr(wchar_t *buffer, size_t count, const wchar_t *format,...)
void DLLCALLCONV vPrintDbgMessage(_In_ DWORD dwLevel, _In_ DWORD dwSection, _In_ const char *format, _In_ va_list ap)
Sends debug messages to the Debug Monitor.
void DLLCALLCONV PrintDbgMessage(DWORD dwLevel, DWORD dwSection, const char *format,...)
Sends debug messages to the Debug Monitor.
void DLLCALLCONV OsMutexClose(_In_ HANDLE hOsMutex)
Closes a handle to a mutex object.
DWORD DLLCALLCONV OsEventReset(_In_ HANDLE hOsEvent)
Resets the specified event object to the non-signaled state.
BOOL UtilGetCurrentTime(_Out_ TIME_TYPE *time)
Retrieves the current time, in OS units.
DWORD DLLCALLCONV OsEventSignal(_In_ HANDLE hOsEvent)
Sets the specified event object to the signaled state.
DWORD DLLCALLCONV ThreadStart(_Outptr_ HANDLE *phThread, _In_ HANDLER_FUNC pFunc, _In_ void *pData)
Creates a thread.
DWORD DLLCALLCONV OsMutexCreate(_Outptr_ HANDLE *phOsMutex)
Creates a mutex object.
void DLLCALLCONV ThreadWait(_In_ HANDLE hThread)
Waits for a thread to exit.
void(DLLCALLCONV * HANDLER_FUNC)(void *pData)
Definition: utils.h:38
DWORD DLLCALLCONV UtilGetStringFromUser(_Out_ PCHAR pcString, _In_ DWORD dwSizeStr, _In_ const CHAR *pcInputText, _In_ const CHAR *pcDefaultString)
Gets a string from user input and out it in pcString.
void DLLCALLCONV SleepWrapper(_In_ DWORD dwMicroSecs)
Wrapper to WD_Sleep, Sleeps dwMicroSecs microseconds.
double UtilGetTimeDiff(_In_ TIME_TYPE *end, _In_ TIME_TYPE *start)
Calculates the time difference in milliseconds.
LARGE_INTEGER TIME_TYPE
Definition: utils.h:34
BOOL DLLCALLCONV UtilGetFileSize(_In_ const PCHAR sFileName, _Outptr_ DWORD *pdwFileSize, _In_ PCHAR sErrString)
Writes the file size with name sFileName in dwFileSize.
DWORD DLLCALLCONV UtilGetFileName(_Out_ PCHAR pcFileName, _In_ DWORD dwFileNameSize, _In_ const CHAR *pcDefaultFileName)
Gets a file name from user input and out it in pcFileName.
DWORD DLLCALLCONV OsMutexLock(_In_ HANDLE hOsMutex)
Locks the specified mutex object.
DWORD UtilGetCurrentTimeInMillisec(void)
Get the current time in milliseconds, relative to a non user determined starting point (Starting poin...
int DLLCALLCONV GetNumberOfProcessors(void)
Returns the number of processors currently online (available)
int DLLCALLCONV GetPageSize(void)
Returns the page size in the OS.
DWORD DLLCALLCONV OsEventWait(_In_ HANDLE hOsEvent, _In_ DWORD dwSecTimeout)
Waits until a specified event object is in the signaled state or the time-out interval elapses.
void DLLCALLCONV OsEventClose(_In_ HANDLE hOsEvent)
Closes a handle to an event object.
DWORD DLLCALLCONV EnableVTMode(void)
Enables Virtual Terminal Mode in Windows, allows color prints in the terminal.
DWORD DLLCALLCONV OsMutexUnlock(_In_ HANDLE hOsMutex)
Releases (unlocks) a locked mutex object.
DWORD DLLCALLCONV OsEventCreate(_Outptr_ HANDLE *phOsEvent)
Creates an event object.
#define _Outptr_
Definition: windrvr.h:40
#define _Out_
Definition: windrvr.h:39
#define _In_
Definition: windrvr.h:37
#define DLLCALLCONV
Definition: windrvr.h:32