- Removed oldshell version of `t` (types) commands - Removed `tk` command because types storage switched to the hashtable - Added `tfc` command to show the calling convention of the function or set it - Added `tsl` (RZ_OUTPUT_MODE_LONG) to show structure members' sizes and offsets - Added `tul` (RZ_OUTPUT_MODE_LONG) to show union members' sizes - Switched the types storage to the hashtable instead of SDB - Added load and export from/to SDB for standard type libraries and serialization for Projects - Changed all `char *type` occurences to the proper `RzType` - Added `RzCallable` type for the function/class method types - Changed all function types API to use the `RzCallable` API - Switched the function types (`RzCallable`) storage to the hashtable instead of SDB - Added a connection between `RzAnalysisFunction` and `RzCallable` - `rz_analysis_function_derive_type()` API function to derive new `RzCallable` type from the `RzAnalysisFunction` even if it doesn't exist in the RzTypeDB. - Moved type links to the RzAnalysis where they belong - Removed TCC and MPC-based parsers - Added Tree-Sitter-based parser for C grammar (see `librz/type/parser/*`) - Reworked type databases in `librz/analysis/d/` to be consistent with C standard, libc, platform-specific definitions - Switched the type links from `char *` to `RzType` - Switched the type links from SDB to the hashtable - Added concept of the "type paths", e.g. `a.b[20].c` where `b` is a member of `a` (`a` is either structure or a union) and `c` is a member of `b`, and `b` is an array where we take 20-th element. - Added concept of the typeclasses (a bit similar to Haskell) for numerical types: `None` (the most generic one), `Num` (includes `Integral` and `Floating`), `Integral` (includes `Signed Integral` and `Unsigned Integral`), `Floating`. - Added concept of type equality (`rz_types_equal(a, b)` API function) - Added Doxygen documentation to every API function in the `librz/type/*`. - Updated the project format from **V2** to **V3**, added migration.
354 lines
12 KiB
Text
354 lines
12 KiB
Text
### synchapi.h ###
|
|
|
|
AcquireSRWLockExclusive=func
|
|
func.AcquireSRWLockExclusive.args=1
|
|
func.AcquireSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
|
|
func.AcquireSRWLockExclusive.ret=VOID
|
|
|
|
AcquireSRWLockShared=func
|
|
func.AcquireSRWLockShared.args=1
|
|
func.AcquireSRWLockShared.arg.0=PSRWLOCK,SRWLock
|
|
func.AcquireSRWLockShared.ret=VOID
|
|
|
|
CancelWaitableTimer=func
|
|
func.CancelWaitableTimer.args=1
|
|
func.CancelWaitableTimer.arg.0=HANDLE,hTimer
|
|
func.CancelWaitableTimer.ret=BOOL
|
|
|
|
CreateEventA=func
|
|
func.CreateEventA.args=4
|
|
func.CreateEventA.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
|
|
func.CreateEventA.arg.1=BOOL,bManualReset
|
|
func.CreateEventA.arg.2=BOOL,bInitialState
|
|
func.CreateEventA.arg.3=LPCSTR,lpName
|
|
func.CreateEventA.ret=HANDLE
|
|
|
|
CreateEventExA=func
|
|
func.CreateEventExA.args=4
|
|
func.CreateEventExA.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
|
|
func.CreateEventExA.arg.1=LPCSTR,lpName
|
|
func.CreateEventExA.arg.2=DWORD,dwFlags
|
|
func.CreateEventExA.arg.3=DWORD,dwDesiredAccess
|
|
func.CreateEventExA.ret=HANDLE
|
|
|
|
CreateEventExW=func
|
|
func.CreateEventExW.args=4
|
|
func.CreateEventExW.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
|
|
func.CreateEventExW.arg.1=LPCWSTR,lpName
|
|
func.CreateEventExW.arg.2=DWORD,dwFlags
|
|
func.CreateEventExW.arg.3=DWORD,dwDesiredAccess
|
|
func.CreateEventExW.ret=HANDLE
|
|
|
|
CreateEventW=func
|
|
func.CreateEventW.args=4
|
|
func.CreateEventW.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
|
|
func.CreateEventW.arg.1=BOOL,bManualReset
|
|
func.CreateEventW.arg.2=BOOL,bInitialState
|
|
func.CreateEventW.arg.3=LPCWSTR,lpName
|
|
func.CreateEventW.ret=HANDLE
|
|
|
|
CreateMutexA=func
|
|
func.CreateMutexA.args=3
|
|
func.CreateMutexA.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
|
|
func.CreateMutexA.arg.1=BOOL,bInitialOwner
|
|
func.CreateMutexA.arg.2=LPCSTR,lpName
|
|
func.CreateMutexA.ret=HANDLE
|
|
|
|
CreateMutexExA=func
|
|
func.CreateMutexExA.args=4
|
|
func.CreateMutexExA.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
|
|
func.CreateMutexExA.arg.1=LPCSTR,lpName
|
|
func.CreateMutexExA.arg.2=DWORD,dwFlags
|
|
func.CreateMutexExA.arg.3=DWORD,dwDesiredAccess
|
|
func.CreateMutexExA.ret=HANDLE
|
|
|
|
CreateMutexExW=func
|
|
func.CreateMutexExW.args=4
|
|
func.CreateMutexExW.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
|
|
func.CreateMutexExW.arg.1=LPCWSTR,lpName
|
|
func.CreateMutexExW.arg.2=DWORD,dwFlags
|
|
func.CreateMutexExW.arg.3=DWORD,dwDesiredAccess
|
|
func.CreateMutexExW.ret=HANDLE
|
|
|
|
CreateMutexW=func
|
|
func.CreateMutexW.args=3
|
|
func.CreateMutexW.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
|
|
func.CreateMutexW.arg.1=BOOL,bInitialOwner
|
|
func.CreateMutexW.arg.2=LPCWSTR,lpName
|
|
func.CreateMutexW.ret=HANDLE
|
|
|
|
CreateSemaphoreExW=func
|
|
func.CreateSemaphoreExW.args=6
|
|
func.CreateSemaphoreExW.arg.0=LPSECURITY_ATTRIBUTES,lpSemaphoreAttributes
|
|
func.CreateSemaphoreExW.arg.1=LONG,lInitialCount
|
|
func.CreateSemaphoreExW.arg.2=LONG,lMaximumCount
|
|
func.CreateSemaphoreExW.arg.3=LPCWSTR,lpName
|
|
func.CreateSemaphoreExW.arg.4=DWORD,dwFlags
|
|
func.CreateSemaphoreExW.arg.5=DWORD,dwDesiredAccess
|
|
func.CreateSemaphoreExW.ret=HANDLE
|
|
|
|
CreateSemaphoreW=func
|
|
func.CreateSemaphoreW.args=4
|
|
func.CreateSemaphoreW.arg.0=LPSECURITY_ATTRIBUTES,lpSemaphoreAttributes
|
|
func.CreateSemaphoreW.arg.1=LONG,lInitialCount
|
|
func.CreateSemaphoreW.arg.2=LONG,lMaximumCount
|
|
func.CreateSemaphoreW.arg.3=LPCWSTR,lpName
|
|
func.CreateSemaphoreW.ret=HANDLE
|
|
|
|
CreateWaitableTimerExW=func
|
|
func.CreateWaitableTimerExW.args=4
|
|
func.CreateWaitableTimerExW.arg.0=LPSECURITY_ATTRIBUTES,lpTimerAttributes
|
|
func.CreateWaitableTimerExW.arg.1=LPCWSTR,lpTimerName
|
|
func.CreateWaitableTimerExW.arg.2=DWORD,dwFlags
|
|
func.CreateWaitableTimerExW.arg.3=DWORD,dwDesiredAccess
|
|
func.CreateWaitableTimerExW.ret=HANDLE
|
|
|
|
CreateWaitableTimerW=func
|
|
func.CreateWaitableTimerW.args=3
|
|
func.CreateWaitableTimerW.arg.0=LPSECURITY_ATTRIBUTES,lpTimerAttributes
|
|
func.CreateWaitableTimerW.arg.1=BOOL,bManualReset
|
|
func.CreateWaitableTimerW.arg.2=LPCWSTR,lpTimerName
|
|
func.CreateWaitableTimerW.ret=HANDLE
|
|
|
|
DeleteCriticalSection=func
|
|
func.DeleteCriticalSection.args=1
|
|
func.DeleteCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.DeleteCriticalSection.ret=VOID
|
|
|
|
EnterCriticalSection=func
|
|
func.EnterCriticalSection.args=1
|
|
func.EnterCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.EnterCriticalSection.ret=VOID
|
|
|
|
InitOnceBeginInitialize=func
|
|
func.InitOnceBeginInitialize.args=4
|
|
func.InitOnceBeginInitialize.arg.0=LPINIT_ONCE,lpInitOnce
|
|
func.InitOnceBeginInitialize.arg.1=DWORD,dwFlags
|
|
func.InitOnceBeginInitialize.arg.2=PBOOL,fPending
|
|
func.InitOnceBeginInitialize.arg.3=LPVOID *,lpContext
|
|
func.InitOnceBeginInitialize.ret=BOOL
|
|
|
|
InitOnceComplete=func
|
|
func.InitOnceComplete.args=3
|
|
func.InitOnceComplete.arg.0=LPINIT_ONCE,lpInitOnce
|
|
func.InitOnceComplete.arg.1=DWORD,dwFlags
|
|
func.InitOnceComplete.arg.2=LPVOID,lpContext
|
|
func.InitOnceComplete.ret=BOOL
|
|
|
|
InitOnceExecuteOnce=func
|
|
func.InitOnceExecuteOnce.args=4
|
|
func.InitOnceExecuteOnce.arg.0=PINIT_ONCE,InitOnce
|
|
func.InitOnceExecuteOnce.arg.1=PINIT_ONCE_FN,InitFn
|
|
func.InitOnceExecuteOnce.arg.2=PVOID,Parameter
|
|
func.InitOnceExecuteOnce.arg.3=LPVOID *,Context
|
|
func.InitOnceExecuteOnce.ret=BOOL
|
|
|
|
InitOnceInitialize=func
|
|
func.InitOnceInitialize.args=1
|
|
func.InitOnceInitialize.arg.0=PINIT_ONCE,InitOnce
|
|
func.InitOnceInitialize.ret=VOID
|
|
|
|
InitializeConditionVariable=func
|
|
func.InitializeConditionVariable.args=1
|
|
func.InitializeConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
|
|
func.InitializeConditionVariable.ret=VOID
|
|
|
|
InitializeCriticalSection=func
|
|
func.InitializeCriticalSection.args=1
|
|
func.InitializeCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.InitializeCriticalSection.ret=VOID
|
|
|
|
InitializeCriticalSectionAndSpinCount=func
|
|
func.InitializeCriticalSectionAndSpinCount.args=2
|
|
func.InitializeCriticalSectionAndSpinCount.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.InitializeCriticalSectionAndSpinCount.arg.1=DWORD,dwSpinCount
|
|
func.InitializeCriticalSectionAndSpinCount.ret=BOOL
|
|
|
|
InitializeCriticalSectionEx=func
|
|
func.InitializeCriticalSectionEx.args=3
|
|
func.InitializeCriticalSectionEx.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.InitializeCriticalSectionEx.arg.1=DWORD,dwSpinCount
|
|
func.InitializeCriticalSectionEx.arg.2=DWORD,Flags
|
|
func.InitializeCriticalSectionEx.ret=BOOL
|
|
|
|
InitializeSRWLock=func
|
|
func.InitializeSRWLock.args=1
|
|
func.InitializeSRWLock.arg.0=PSRWLOCK,SRWLock
|
|
func.InitializeSRWLock.ret=VOID
|
|
|
|
LeaveCriticalSection=func
|
|
func.LeaveCriticalSection.args=1
|
|
func.LeaveCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.LeaveCriticalSection.ret=VOID
|
|
|
|
OpenEventA=func
|
|
func.OpenEventA.args=3
|
|
func.OpenEventA.arg.0=DWORD,dwDesiredAccess
|
|
func.OpenEventA.arg.1=BOOL,bInheritHandle
|
|
func.OpenEventA.arg.2=LPCSTR,lpName
|
|
func.OpenEventA.ret=HANDLE
|
|
|
|
OpenEventW=func
|
|
func.OpenEventW.args=3
|
|
func.OpenEventW.arg.0=DWORD,dwDesiredAccess
|
|
func.OpenEventW.arg.1=BOOL,bInheritHandle
|
|
func.OpenEventW.arg.2=LPCWSTR,lpName
|
|
func.OpenEventW.ret=HANDLE
|
|
|
|
OpenMutexW=func
|
|
func.OpenMutexW.args=3
|
|
func.OpenMutexW.arg.0=DWORD,dwDesiredAccess
|
|
func.OpenMutexW.arg.1=BOOL,bInheritHandle
|
|
func.OpenMutexW.arg.2=LPCWSTR,lpName
|
|
func.OpenMutexW.ret=HANDLE
|
|
|
|
OpenSemaphoreW=func
|
|
func.OpenSemaphoreW.args=3
|
|
func.OpenSemaphoreW.arg.0=DWORD,dwDesiredAccess
|
|
func.OpenSemaphoreW.arg.1=BOOL,bInheritHandle
|
|
func.OpenSemaphoreW.arg.2=LPCWSTR,lpName
|
|
func.OpenSemaphoreW.ret=HANDLE
|
|
|
|
OpenWaitableTimerW=func
|
|
func.OpenWaitableTimerW.args=3
|
|
func.OpenWaitableTimerW.arg.0=DWORD,dwDesiredAccess
|
|
func.OpenWaitableTimerW.arg.1=BOOL,bInheritHandle
|
|
func.OpenWaitableTimerW.arg.2=LPCWSTR,lpTimerName
|
|
func.OpenWaitableTimerW.ret=HANDLE
|
|
|
|
ReleaseMutex=func
|
|
func.ReleaseMutex.args=1
|
|
func.ReleaseMutex.arg.0=HANDLE,hMutex
|
|
func.ReleaseMutex.ret=BOOL
|
|
|
|
ReleaseSRWLockExclusive=func
|
|
func.ReleaseSRWLockExclusive.args=1
|
|
func.ReleaseSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
|
|
func.ReleaseSRWLockExclusive.ret=VOID
|
|
|
|
ReleaseSRWLockShared=func
|
|
func.ReleaseSRWLockShared.args=1
|
|
func.ReleaseSRWLockShared.arg.0=PSRWLOCK,SRWLock
|
|
func.ReleaseSRWLockShared.ret=VOID
|
|
|
|
ReleaseSemaphore=func
|
|
func.ReleaseSemaphore.args=3
|
|
func.ReleaseSemaphore.arg.0=HANDLE,hSemaphore
|
|
func.ReleaseSemaphore.arg.1=LONG,lReleaseCount
|
|
func.ReleaseSemaphore.arg.2=LPLONG,lpPreviousCount
|
|
func.ReleaseSemaphore.ret=BOOL
|
|
|
|
ResetEvent=func
|
|
func.ResetEvent.args=1
|
|
func.ResetEvent.arg.0=HANDLE,hEvent
|
|
func.ResetEvent.ret=BOOL
|
|
|
|
SetCriticalSectionSpinCount=func
|
|
func.SetCriticalSectionSpinCount.args=2
|
|
func.SetCriticalSectionSpinCount.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.SetCriticalSectionSpinCount.arg.1=DWORD,dwSpinCount
|
|
func.SetCriticalSectionSpinCount.ret=DWORD
|
|
|
|
SetEvent=func
|
|
func.SetEvent.args=1
|
|
func.SetEvent.arg.0=HANDLE,hEvent
|
|
func.SetEvent.ret=BOOL
|
|
|
|
SetWaitableTimer=func
|
|
func.SetWaitableTimer.args=6
|
|
func.SetWaitableTimer.arg.0=HANDLE,hTimer
|
|
func.SetWaitableTimer.arg.1=const LARGE_INTEGER *,lpDueTime
|
|
func.SetWaitableTimer.arg.2=LONG,lPeriod
|
|
func.SetWaitableTimer.arg.3=PTIMERAPCROUTINE,pfnCompletionRoutine
|
|
func.SetWaitableTimer.arg.4=LPVOID,lpArgToCompletionRoutine
|
|
func.SetWaitableTimer.arg.5=BOOL,fResume
|
|
func.SetWaitableTimer.ret=BOOL
|
|
|
|
SignalObjectAndWait=func
|
|
func.SignalObjectAndWait.args=4
|
|
func.SignalObjectAndWait.arg.0=HANDLE,hObjectToSignal
|
|
func.SignalObjectAndWait.arg.1=HANDLE,hObjectToWaitOn
|
|
func.SignalObjectAndWait.arg.2=DWORD,dwMilliseconds
|
|
func.SignalObjectAndWait.arg.3=BOOL,bAlertable
|
|
func.SignalObjectAndWait.ret=DWORD
|
|
|
|
Sleep=func
|
|
func.Sleep.args=1
|
|
func.Sleep.arg.0=DWORD,dwMilliseconds
|
|
func.Sleep.ret=VOID
|
|
|
|
SleepConditionVariableCS=func
|
|
func.SleepConditionVariableCS.args=3
|
|
func.SleepConditionVariableCS.arg.0=PCONDITION_VARIABLE,ConditionVariable
|
|
func.SleepConditionVariableCS.arg.1=PCRITICAL_SECTION,CriticalSection
|
|
func.SleepConditionVariableCS.arg.2=DWORD,dwMilliseconds
|
|
func.SleepConditionVariableCS.ret=BOOL
|
|
|
|
SleepConditionVariableSRW=func
|
|
func.SleepConditionVariableSRW.args=4
|
|
func.SleepConditionVariableSRW.arg.0=PCONDITION_VARIABLE,ConditionVariable
|
|
func.SleepConditionVariableSRW.arg.1=PSRWLOCK,SRWLock
|
|
func.SleepConditionVariableSRW.arg.2=DWORD,dwMilliseconds
|
|
func.SleepConditionVariableSRW.arg.3=ULONG,Flags
|
|
func.SleepConditionVariableSRW.ret=BOOL
|
|
|
|
SleepEx=func
|
|
func.SleepEx.args=2
|
|
func.SleepEx.arg.0=DWORD,dwMilliseconds
|
|
func.SleepEx.arg.1=BOOL,bAlertable
|
|
func.SleepEx.ret=DWORD
|
|
|
|
TryAcquireSRWLockExclusive=func
|
|
func.TryAcquireSRWLockExclusive.args=1
|
|
func.TryAcquireSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
|
|
func.TryAcquireSRWLockExclusive.ret=BOOLEAN
|
|
|
|
TryAcquireSRWLockShared=func
|
|
func.TryAcquireSRWLockShared.args=1
|
|
func.TryAcquireSRWLockShared.arg.0=PSRWLOCK,SRWLock
|
|
func.TryAcquireSRWLockShared.ret=BOOLEAN
|
|
|
|
TryEnterCriticalSection=func
|
|
func.TryEnterCriticalSection.args=1
|
|
func.TryEnterCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
|
|
func.TryEnterCriticalSection.ret=BOOL
|
|
|
|
WaitForMultipleObjects=func
|
|
func.WaitForMultipleObjects.args=4
|
|
func.WaitForMultipleObjects.arg.0=DWORD,nCount
|
|
func.WaitForMultipleObjects.arg.1=const HANDLE *,lpHandles
|
|
func.WaitForMultipleObjects.arg.2=BOOL,bWaitAll
|
|
func.WaitForMultipleObjects.arg.3=DWORD,dwMilliseconds
|
|
func.WaitForMultipleObjects.ret=DWORD
|
|
|
|
WaitForMultipleObjectsEx=func
|
|
func.WaitForMultipleObjectsEx.args=5
|
|
func.WaitForMultipleObjectsEx.arg.0=DWORD,nCount
|
|
func.WaitForMultipleObjectsEx.arg.1=const HANDLE *,lpHandles
|
|
func.WaitForMultipleObjectsEx.arg.2=BOOL,bWaitAll
|
|
func.WaitForMultipleObjectsEx.arg.3=DWORD,dwMilliseconds
|
|
func.WaitForMultipleObjectsEx.arg.4=BOOL,bAlertable
|
|
func.WaitForMultipleObjectsEx.ret=DWORD
|
|
|
|
WaitForSingleObject=func
|
|
func.WaitForSingleObject.args=2
|
|
func.WaitForSingleObject.arg.0=HANDLE,hHandle
|
|
func.WaitForSingleObject.arg.1=DWORD,dwMilliseconds
|
|
func.WaitForSingleObject.ret=DWORD
|
|
|
|
WaitForSingleObjectEx=func
|
|
func.WaitForSingleObjectEx.args=3
|
|
func.WaitForSingleObjectEx.arg.0=HANDLE,hHandle
|
|
func.WaitForSingleObjectEx.arg.1=DWORD,dwMilliseconds
|
|
func.WaitForSingleObjectEx.arg.2=BOOL,bAlertable
|
|
func.WaitForSingleObjectEx.ret=DWORD
|
|
|
|
WakeAllConditionVariable=func
|
|
func.WakeAllConditionVariable.args=1
|
|
func.WakeAllConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
|
|
func.WakeAllConditionVariable.ret=VOID
|
|
|
|
WakeConditionVariable=func
|
|
func.WakeConditionVariable.args=1
|
|
func.WakeConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
|
|
func.WakeConditionVariable.ret=VOID
|