Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
1.9 KiB

  1. 0 ; This is the number of in register arguments
  2. ;++
  3. ;
  4. ; Copyright (c) 1989 Microsoft Corporation
  5. ;
  6. ; Module Name:
  7. ;
  8. ; systable.asm
  9. ;
  10. ; Abstract:
  11. ;
  12. ; This module implements the system service dispatch table.
  13. ;
  14. ; Author:
  15. ;
  16. ; Shie-Lin Tzong (shielint) 6-Feb-1990
  17. ;
  18. ; Environment:
  19. ;
  20. ; Kernel mode only.
  21. ;
  22. ; Revision History:
  23. ;
  24. ;--
  25. ;
  26. ; To add a system service simply add the name of the service to the below
  27. ; table. If the system service has arguments, then immediately
  28. ; follow the name of the serice with a comma and following that the number
  29. ; of bytes of in memory arguments, e.g. CreateObject,40.
  30. ;
  31. ;ifdef i386
  32. .386p
  33. include callconv.inc
  34. TABLE_BEGIN1 macro t
  35. TITLE t
  36. endm
  37. TABLE_BEGIN2 macro t
  38. _TEXT SEGMENT DWORD PUBLIC 'DATA'
  39. ASSUME DS:FLAT
  40. endm
  41. TABLE_BEGIN3 macro t
  42. align 4
  43. endm
  44. TABLE_BEGIN4 macro t
  45. public _KiServiceTable
  46. _KiServiceTable label dword
  47. endm
  48. TABLE_BEGIN5 macro t
  49. endm
  50. TABLE_BEGIN6 macro t
  51. endm
  52. TABLE_BEGIN7 macro t
  53. endm
  54. TABLE_BEGIN8 macro t
  55. endm
  56. TABLE_ENTRY macro l,bias,numargs
  57. Local Bytes
  58. Bytes = numargs*4
  59. EXTRNP _Nt&l,&numargs
  60. IFDEF STD_CALL
  61. ComposeInst <dd offset FLAT:>,_Nt,l,<@>,%(Bytes)
  62. ELSE
  63. dd offset FLAT:_Nt&l
  64. ENDIF
  65. endm
  66. TABLE_END macro n
  67. public _KiServiceLimit
  68. _KiServiceLimit dd n+1
  69. endm
  70. ARGTBL_BEGIN macro
  71. public _KiArgumentTable
  72. _KiArgumentTable label dword
  73. endm
  74. ARGTBL_ENTRY macro e0,e1,e2,e3,e4,e5,e6,e7
  75. db e0,e1,e2,e3,e4,e5,e6,e7
  76. endm
  77. ARGTBL_END macro
  78. _TEXT ENDS
  79. end
  80. endm
  81. ;endif
  82. TABLE_BEGIN1 <"System Service Dispatch Table">
  83. TABLE_BEGIN2 <"System Service Dispatch Table">
  84. TABLE_BEGIN3 <"System Service Dispatch Table">
  85. TABLE_BEGIN4 <"System Service Dispatch Table">
  86. TABLE_BEGIN5 <"System Service Dispatch Table">
  87. TABLE_BEGIN6 <"System Service Dispatch Table">
  88. TABLE_BEGIN7 <"System Service Dispatch Table">
  89. TABLE_BEGIN8 <"System Service Dispatch Table">
  90.