1 /* 2 * avrt definitions 3 * 4 * Copyright 2009 Maarten Lankhorst 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 * 20 */ 21 22 #ifndef _AVRT_ 23 #define _AVRT_ 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif 28 29 typedef enum _AVRT_PRIORITY 30 { 31 AVRT_PRIORITY_VERYLOW = -2, 32 AVRT_PRIORITY_LOW, 33 AVRT_PRIORITY_NORMAL, 34 AVRT_PRIORITY_HIGH, 35 AVRT_PRIORITY_CRITICAL 36 } AVRT_PRIORITY, *PAVRT_PRIORITY; 37 38 /* Windows compiler is more lax */ 39 #define THREAD_ORDER_GROUP_INFINITE_TIMEOUT ((void*)((LONG_PTR)-1)) 40 41 HANDLE WINAPI AvSetMmThreadCharacteristicsA(LPCSTR TaskName, LPDWORD TaskIndex); 42 HANDLE WINAPI AvSetMmThreadCharacteristicsW(LPCWSTR TaskName, LPDWORD TaskIndex); 43 #define AvSetMmThreadCharacteristics WINELIB_NAME_AW(AvSetMmThreadCharacteristics) 44 45 HANDLE WINAPI AvSetMmMaxThreadCharacteristicsA(LPCSTR FirstTask, LPCSTR SecondTask, LPDWORD TaskIndex); 46 HANDLE WINAPI AvSetMmMaxThreadCharacteristicsW(LPCWSTR FirstTask, LPCWSTR SecondTask, LPDWORD TaskIndex); 47 #define AvSetMmMaxThreadCharacteristics WINELIB_NAME_AW(AvSetMmMaxThreadCharacteristics) 48 49 BOOL WINAPI AvRevertMmThreadCharacteristics(HANDLE AvrtHandle); 50 BOOL WINAPI AvSetMmThreadPriority(HANDLE AvrtHandle, AVRT_PRIORITY Priority); 51 BOOL WINAPI AvRtCreateThreadOrderingGroup( 52 PHANDLE Context, PLARGE_INTEGER Period, 53 GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout); 54 55 BOOL WINAPI AvRtCreateThreadOrderingGroupExA( 56 PHANDLE Context, PLARGE_INTEGER Period, 57 GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout, 58 LPCSTR TaskName); 59 BOOL WINAPI AvRtCreateThreadOrderingGroupExW( 60 PHANDLE Context, PLARGE_INTEGER Period, 61 GUID *ThreadOrderingGuid, PLARGE_INTEGER Timeout, 62 LPCSTR TaskName); 63 #define AvRtCreateThreadOrderingGroupEx WINELIB_NAME_AW(AvRtCreateThreadOrderingGroupEx) 64 65 BOOL WINAPI AvRtJoinThreadOrderingGroup(PHANDLE Context, GUID *ThreadOrderingGuid, BOOL Before); 66 BOOL WINAPI AvRtWaitOnThreadOrderingGroup(HANDLE Context); 67 BOOL WINAPI AvRtLeaveThreadOrderingGroup(HANDLE Context); 68 BOOL WINAPI AvRtDeleteThreadOrderingGroup(HANDLE Context); 69 BOOL WINAPI AvQuerySystemResponsiveness(HANDLE AvrtHandle, PULONG SystemResponsivenessValue); 70 71 #ifdef __cplusplus 72 } 73 #endif 74 75 #endif /*_AVRT_*/ 76