Define core LPC types and structures
This commit is contained in:
@@ -62,6 +62,13 @@
|
|||||||
/* C/C++ specific code */
|
/* C/C++ specific code */
|
||||||
#ifndef __XTOS_ASSEMBLER__
|
#ifndef __XTOS_ASSEMBLER__
|
||||||
|
|
||||||
|
/* Client ID structure */
|
||||||
|
typedef struct _CLIENT_ID
|
||||||
|
{
|
||||||
|
HANDLE UniqueProcess;
|
||||||
|
HANDLE UniqueThread;
|
||||||
|
} CLIENT_ID, *PCLIENT_ID;
|
||||||
|
|
||||||
/* PCI bridge control registers */
|
/* PCI bridge control registers */
|
||||||
typedef struct _PCI_BRIDGE_CONTROL_REGISTER
|
typedef struct _PCI_BRIDGE_CONTROL_REGISTER
|
||||||
{
|
{
|
||||||
|
|||||||
64
sdk/xtdk/lpctypes.h
Normal file
64
sdk/xtdk/lpctypes.h
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
/**
|
||||||
|
* PROJECT: ExectOS
|
||||||
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
|
* FILE: sdk/xtdk/lpctypes.h
|
||||||
|
* DESCRIPTION: Local Procedure Call (LPC) structures and definitions
|
||||||
|
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __XTDK_LPCTYPES_H
|
||||||
|
#define __XTDK_LPCTYPES_H
|
||||||
|
|
||||||
|
#include <xttypes.h>
|
||||||
|
#include <xtstruct.h>
|
||||||
|
#include <iotypes.h>
|
||||||
|
#include <ketypes.h>
|
||||||
|
#include <setypes.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* C/C++ specific code */
|
||||||
|
#ifndef __XTOS_ASSEMBLER__
|
||||||
|
|
||||||
|
/* LPC non-paged port queue structure definition */
|
||||||
|
typedef struct _LPCP_NONPAGED_PORT_QUEUE
|
||||||
|
{
|
||||||
|
KSEMAPHORE Semaphore;
|
||||||
|
struct _LPCP_PORT_OBJECT *BackPointer;
|
||||||
|
} LPCP_NONPAGED_PORT_QUEUE, *PLPCP_NONPAGED_PORT_QUEUE;
|
||||||
|
|
||||||
|
/* LPC port queue structure definition */
|
||||||
|
typedef struct _LPCP_PORT_QUEUE
|
||||||
|
{
|
||||||
|
PLPCP_NONPAGED_PORT_QUEUE NonPagedPortQueue;
|
||||||
|
PKSEMAPHORE Semaphore;
|
||||||
|
LIST_ENTRY ReceiveHead;
|
||||||
|
} LPCP_PORT_QUEUE, *PLPCP_PORT_QUEUE;
|
||||||
|
|
||||||
|
/* LPC port object structure definition */
|
||||||
|
typedef struct _LPCP_PORT_OBJECT
|
||||||
|
{
|
||||||
|
struct _LPCP_PORT_OBJECT *ConnectionPort;
|
||||||
|
struct _LPCP_PORT_OBJECT *ConnectedPort;
|
||||||
|
LPCP_PORT_QUEUE MsgQueue;
|
||||||
|
CLIENT_ID Creator;
|
||||||
|
PVOID ClientSectionBase;
|
||||||
|
PVOID ServerSectionBase;
|
||||||
|
PVOID PortContext;
|
||||||
|
PETHREAD ClientThread;
|
||||||
|
SECURITY_QUALITY_OF_SERVICE SecurityQos;
|
||||||
|
SECURITY_CLIENT_CONTEXT StaticSecurity;
|
||||||
|
LIST_ENTRY LpcReplyChainHead;
|
||||||
|
LIST_ENTRY LpcDataInfoChainHead;
|
||||||
|
union
|
||||||
|
{
|
||||||
|
PEPROCESS ServerProcess;
|
||||||
|
PEPROCESS MappingProcess;
|
||||||
|
};
|
||||||
|
ULONG MaxMessageLength;
|
||||||
|
ULONG MaxConnectionInfoLength;
|
||||||
|
ULONG Flags;
|
||||||
|
KEVENT WaitEvent;
|
||||||
|
} LPCP_PORT_OBJECT, *PLPCP_PORT_OBJECT;
|
||||||
|
|
||||||
|
#endif /* __XTOS_ASSEMBLER__ */
|
||||||
|
#endif /* __XTDK_LPCTYPES_H */
|
||||||
@@ -34,6 +34,7 @@
|
|||||||
#include <kdtypes.h>
|
#include <kdtypes.h>
|
||||||
#include <ketypes.h>
|
#include <ketypes.h>
|
||||||
#include <ldrtypes.h>
|
#include <ldrtypes.h>
|
||||||
|
#include <lpctypes.h>
|
||||||
#include <mmtypes.h>
|
#include <mmtypes.h>
|
||||||
#include <potypes.h>
|
#include <potypes.h>
|
||||||
#include <pstypes.h>
|
#include <pstypes.h>
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ typedef struct _ACPI_XSDT ACPI_XSDT, *PACPI_XSDT;
|
|||||||
typedef struct _ANSI_STRING ANSI_STRING, *PANSI_STRING;
|
typedef struct _ANSI_STRING ANSI_STRING, *PANSI_STRING;
|
||||||
typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32;
|
typedef struct _ANSI_STRING32 ANSI_STRING32, *PANSI_STRING32;
|
||||||
typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64;
|
typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64;
|
||||||
|
typedef struct _CLIENT_ID CLIENT_ID, *PCLIENT_ID;
|
||||||
typedef struct _CPPORT CPPORT, *PCPPORT;
|
typedef struct _CPPORT CPPORT, *PCPPORT;
|
||||||
typedef struct _CPTABLE_INFO CPTABLE_INFO, *PCPTABLE_INFO;
|
typedef struct _CPTABLE_INFO CPTABLE_INFO, *PCPTABLE_INFO;
|
||||||
typedef const struct _CMMPAGEMAP_ROUTINES CMMPAGEMAP_ROUTINES, *PCMMPAGEMAP_ROUTINES;
|
typedef const struct _CMMPAGEMAP_ROUTINES CMMPAGEMAP_ROUTINES, *PCMMPAGEMAP_ROUTINES;
|
||||||
@@ -301,6 +302,9 @@ typedef struct _LOADER_INFORMATION_BLOCK LOADER_INFORMATION_BLOCK, *PLOADER_INFO
|
|||||||
typedef struct _LOADER_MEMORY_DESCRIPTOR LOADER_MEMORY_DESCRIPTOR, *PLOADER_MEMORY_DESCRIPTOR;
|
typedef struct _LOADER_MEMORY_DESCRIPTOR LOADER_MEMORY_DESCRIPTOR, *PLOADER_MEMORY_DESCRIPTOR;
|
||||||
typedef struct _LOOKASIDE_LIST LOOKASIDE_LIST, *PLOOKASIDE_LIST;
|
typedef struct _LOOKASIDE_LIST LOOKASIDE_LIST, *PLOOKASIDE_LIST;
|
||||||
typedef struct _LOOKASIDE_LIST_EX LOOKASIDE_LIST_EX, *PLOOKASIDE_LIST_EX;
|
typedef struct _LOOKASIDE_LIST_EX LOOKASIDE_LIST_EX, *PLOOKASIDE_LIST_EX;
|
||||||
|
typedef struct _LPCP_NONPAGED_PORT_QUEUE LPCP_NONPAGED_PORT_QUEUE, *PLPCP_NONPAGED_PORT_QUEUE;
|
||||||
|
typedef struct _LPCP_PORT_OBJECT LPCP_PORT_OBJECT, *PLPCP_PORT_OBJECT;
|
||||||
|
typedef struct _LPCP_PORT_QUEUE LPCP_PORT_QUEUE, *PLPCP_PORT_QUEUE;
|
||||||
typedef struct _LUID LUID, *PLUID;
|
typedef struct _LUID LUID, *PLUID;
|
||||||
typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
|
typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
|
||||||
typedef struct _M128 M128, *PM128;
|
typedef struct _M128 M128, *PM128;
|
||||||
|
|||||||
Reference in New Issue
Block a user