mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:35:43 +00:00
- SSPT elements are 8 bit wide on Windows. Made ReactOS binary compatible in this regard, since this affects a public function (KeAddSystemServiceTable)
- use a function pointer for SSDT elements. Function pointers aren't guaranteed to have the same size as data pointers (and we were using ULONG, anyway) - SSPT and SSDT types no longer structures to avoid pesky alignment issues - genw32k and genntdll fixed accordingly svn path=/trunk/; revision=8996
This commit is contained in:
parent
6701beb03a
commit
9c7501f3dd
4 changed files with 13 additions and 23 deletions
|
@ -1,4 +1,4 @@
|
|||
/* $Id: genw32k.c,v 1.6 2003/12/03 21:50:49 gvg Exp $
|
||||
/* $Id: genw32k.c,v 1.7 2004/04/07 00:14:05 hyperion Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS version of ntdll
|
||||
|
@ -88,7 +88,7 @@ char *stmp;
|
|||
* Now write the current system call's name
|
||||
* in the service table.
|
||||
*/
|
||||
fprintf(out,"\t\t{ (ULONG)%s }",name);
|
||||
fprintf(out,"\t\t(PVOID (NTAPI *)(VOID))%s",name);
|
||||
|
||||
/* Next system call index */
|
||||
sys_call_idx++;
|
||||
|
@ -143,7 +143,7 @@ char *stmp;
|
|||
* Now write the current system call's ID
|
||||
* in the service table along with its Parameters Size.
|
||||
*/
|
||||
fprintf(out,"\t\t{ %d }",atoi(nr_args) * sizeof(void*));
|
||||
fprintf(out,"\t\t%d",atoi(nr_args) * sizeof(void*));
|
||||
|
||||
/* Next system call index */
|
||||
sys_call_idx++;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: genntdll.c,v 1.13 2003/12/17 01:46:08 hyperion Exp $
|
||||
/* $Id: genntdll.c,v 1.14 2004/04/07 00:14:05 hyperion Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS version of ntdll
|
||||
|
@ -135,7 +135,7 @@ char *stmp;
|
|||
* Now write the current system call's name
|
||||
* in the service table.
|
||||
*/
|
||||
fprintf(out,"\t\t{ (ULONG)%s }",name);
|
||||
fprintf(out,"\t\t(PVOID (NTAPI *)(VOID))%s",name);
|
||||
}
|
||||
}
|
||||
/* Close the service table (C syntax) */
|
||||
|
@ -194,7 +194,7 @@ char *stmp;
|
|||
* Now write the current system call's ID
|
||||
* in the service table along with its Parameters Size.
|
||||
*/
|
||||
fprintf(out,"\t\t{ %s }",nr_args);
|
||||
fprintf(out,"\t\t%s",nr_args);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
|
|
@ -9,28 +9,21 @@
|
|||
|
||||
#ifndef __USE_W32API
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/* System Service Dispatch Table */
|
||||
typedef struct t_SSDT {
|
||||
ULONG SysCallPtr;
|
||||
} SSDT, *PSSDT;
|
||||
typedef PVOID (NTAPI * SSDT)(VOID);
|
||||
typedef SSDT * PSSDT;
|
||||
|
||||
/* System Service Parameters Table */
|
||||
typedef struct t_SSPT {
|
||||
unsigned int ParamBytes;
|
||||
} SSPT, *PSSPT;
|
||||
typedef UCHAR SSPT, *PSSPT;
|
||||
|
||||
typedef struct t_KeServiceDescriptorTableEntry {
|
||||
PSSDT SSDT;
|
||||
PULONG ServiceCounterTable;
|
||||
unsigned int NumberOfServices;
|
||||
ULONG NumberOfServices;
|
||||
PSSPT SSPT;
|
||||
|
||||
} SSDT_ENTRY, *PSSDT_ENTRY;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* __USE_W32API */
|
||||
|
||||
|
||||
|
|
|
@ -7114,14 +7114,11 @@ KeAcquireSpinLock(
|
|||
OUT PKIRQL OldIrql);
|
||||
|
||||
/* System Service Dispatch Table */
|
||||
typedef struct _SSDT {
|
||||
ULONG SysCallPtr;
|
||||
} SSDT, *PSSDT;
|
||||
typedef PVOID (NTAPI * SSDT)(VOID);
|
||||
typedef SSDT * PSSDT;
|
||||
|
||||
/* System Service Parameters Table */
|
||||
typedef struct _SSPT {
|
||||
ULONG ParamBytes;
|
||||
} SSPT, *PSSPT;
|
||||
typedef UCHAR SSPT, * PSSPT;
|
||||
|
||||
typedef struct _SSDT_ENTRY {
|
||||
PSSDT SSDT;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue