exectos/sdk/xtdk/xtbase.h
belliash 9c74aafe3d
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Initial implementation of process initialization
2023-02-24 19:52:20 +01:00

99 lines
2.2 KiB
C

/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: sdk/xtdk/xtbase.h
* DESCRIPTION: Basic and common native XT structures
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
*/
#ifndef __XTDK_XTBASE_H
#define __XTDK_XTBASE_H
#include <xtdefs.h>
#include <xtstruct.h>
#include <xttypes.h>
/* Kernel affinity */
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
/* Interrupt Request Level (IRQL) */
typedef UCHAR KIRQL, *PKIRQL;
/* Kernel priority */
typedef LONG KPRIORITY, *PKPRIORITY;
/* Processor modes */
typedef CHAR KPROCESSOR_MODE, *PKPROCESSOR_MODE;
/* Spin locks synchronization mechanism */
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
/* 128-bit buffer containing a unique identifier value */
typedef struct _GUID
{
UINT Data1;
USHORT Data2;
USHORT Data3;
UCHAR Data4[8];
} GUID, *PGUID;
/* Double linked list structure definition */
typedef struct _LIST_ENTRY
{
PLIST_ENTRY Flink;
PLIST_ENTRY Blink;
} LIST_ENTRY, *PLIST_ENTRY;
/* 32-bit double linked list structure definition */
typedef struct _LIST_ENTRY32
{
ULONG Flink;
ULONG Blink;
} LIST_ENTRY32, *PLIST_ENTRY32;
/* 64-bit double linked list structure definition */
typedef struct _LIST_ENTRY64
{
ULONGLONG Flink;
ULONGLONG Blink;
} LIST_ENTRY64, *PLIST_ENTRY64;
/* Single linked list structure definition */
typedef struct _SINGLE_LIST_ENTRY
{
PSINGLE_LIST_ENTRY Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
/* Header for a sequenced single linked list union definition */
typedef union _SINGLE_LIST_HEADER
{
ULONGLONG Alignment;
struct
{
SINGLE_LIST_ENTRY Next;
USHORT Depth;
USHORT Sequence;
};
} SINGLE_LIST_HEADER, *PSINGLE_LIST_HEADER;
/* 128-bit 16-byte aligned XMM register */
typedef struct _M128
{
ULONGLONG Low;
LONGLONG High;
} ALIGN(16) M128, *PM128;
/* Dispatcher object header structure definition */
typedef struct _DISPATCHER_HEADER
{
UCHAR Type;
UCHAR Absolute;
UCHAR Inserted;
BOOLEAN DebugActive;
LONG SignalState;
LIST_ENTRY WaitListHead;
} DISPATCHER_HEADER, *PDISPATCHER_HEADER;
#endif /* __XTDK_XTBASE_H */