NT4/private/ntos/ke/ppc/table.stb
2020-09-30 17:12:29 +02:00

73 lines
2.0 KiB
Plaintext

8 // This is the number of in register arguments
//++
//
// Copyright (c) 1993 IBM Corporation and Microsoft Corporation
//
// Module Name:
//
// systable.s
//
// Abstract:
//
// This module implements the system service dispatch table.
//
// Author:
//
// Rick Simpson 16-Sep-1993
//
// based on MIPS version by David N. Cutler (davec) 29-Apr-1989
//
// Environment:
//
// Kernel mode only.
//
// Revision History:
//
//--
//
// To add a system service simply add the name of the service to the below
// table. If the system service has in memory arguments, then immediately
// follow the name of the serice with a comma and following that the number
// of bytes of in memory arguments, e.g. CreateObject,40.
//
#define TABLE_BEGIN1( t ) .rdata
#define TABLE_BEGIN2( t ) .align 4
#define TABLE_BEGIN3( t ) .globl KiServiceTable
#define TABLE_BEGIN4( t ) .long .toc
#define TABLE_BEGIN5( t ) KiServiceTable:
#define TABLE_BEGIN6( t )
#define TABLE_BEGIN7( t )
#define TABLE_BEGIN8( t )
#define TABLE_ENTRY(l,bias,numargs) \
.extern ..Nt##l ;\
.word ..Nt##l+bias
#define TABLE_END( n ) \
.data ;\
.globl KiServiceLimit ;\
KiServiceLimit: ;\
.word n + 1
#define ARGTBL_BEGIN \
.rdata ;\
.align 4 ;\
.globl KiArgumentTable ;\
KiArgumentTable:
#define ARGTBL_ENTRY(e0,e1,e2,e3,e4,e5,e6,e7) .byte e0,e1,e2,e3,e4,e5,e6,e7
#define ARGTBL_END
TABLE_BEGIN1( "System Service Dispatch Table" )
TABLE_BEGIN2( "System Service Dispatch Table" )
TABLE_BEGIN3( "System Service Dispatch Table" )
TABLE_BEGIN4( "System Service Dispatch Table" )
TABLE_BEGIN5( "System Service Dispatch Table" )
TABLE_BEGIN6( "System Service Dispatch Table" )
TABLE_BEGIN7( "System Service Dispatch Table" )
TABLE_BEGIN8( "System Service Dispatch Table" )