Define core LPC types and structures
All checks were successful
Builds / ExectOS (amd64, release) (push) Successful in 32s
Builds / ExectOS (amd64, debug) (push) Successful in 41s
Builds / ExectOS (i686, debug) (push) Successful in 31s
Builds / ExectOS (i686, release) (push) Successful in 38s

This commit is contained in:
2026-07-03 16:52:59 +02:00
parent b2e3a6afe0
commit 46fb492032
4 changed files with 76 additions and 0 deletions

View File

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

View File

@@ -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>

View File

@@ -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;