/**
 * 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>


/* C/C++ specific code */
#ifndef __XTOS_ASSEMBLER__

/* Access mask */
typedef ULONG ACCESS_MASK, *PACCESS_MASK;

/* Device type */
typedef ULONG DEVICE_TYPE;

/* Kernel affinity */
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;

/* Kernel priority */
typedef LONG KPRIORITY, *PKPRIORITY;

/* Processor modes */
typedef CHAR KPROCESSOR_MODE, *PKPROCESSOR_MODE;

/* Interrupt Request Run Level (IRQL) */
typedef UCHAR KRUNLEVEL, *PKRUNLEVEL;

/* Spin locks synchronization mechanism */
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;

/* Locale identifier */
typedef ULONG LCID;

/* Access token */
typedef PVOID PACCESS_TOKEN;

/* Page Frame Number count */
typedef ULONG PFN_COUNT;

/* Page Frame Number */
typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;

/* Physical address */
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;

/* Security descriptor */
typedef PVOID PSECURITY_DESCRIPTOR;

/* Security context tracking mode */
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;

/* Security information */
typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;

#endif /* __XTOS_ASSEMBLER_ */
#endif /* __XTDK_XTBASE_H */
