Define core LPC types and structures
This commit is contained in:
@@ -62,6 +62,13 @@
|
||||
/* C/C++ specific code */
|
||||
#ifndef __XTOS_ASSEMBLER__
|
||||
|
||||
/* Client ID structure */
|
||||
typedef struct _CLIENT_ID
|
||||
{
|
||||
HANDLE UniqueProcess;
|
||||
HANDLE UniqueThread;
|
||||
} CLIENT_ID, *PCLIENT_ID;
|
||||
|
||||
/* PCI bridge control registers */
|
||||
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 <ketypes.h>
|
||||
#include <ldrtypes.h>
|
||||
#include <lpctypes.h>
|
||||
#include <mmtypes.h>
|
||||
#include <potypes.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_STRING32 ANSI_STRING32, *PANSI_STRING32;
|
||||
typedef struct _ANSI_STRING64 ANSI_STRING64, *PANSI_STRING64;
|
||||
typedef struct _CLIENT_ID CLIENT_ID, *PCLIENT_ID;
|
||||
typedef struct _CPPORT CPPORT, *PCPPORT;
|
||||
typedef struct _CPTABLE_INFO CPTABLE_INFO, *PCPTABLE_INFO;
|
||||
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 _LOOKASIDE_LIST LOOKASIDE_LIST, *PLOOKASIDE_LIST;
|
||||
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_AND_ATTRIBUTES LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
|
||||
typedef struct _M128 M128, *PM128;
|
||||
|
||||
Reference in New Issue
Block a user