Leaked source code of windows server 2003
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.

578 lines
11 KiB

  1. /*++
  2. Copyright c 1994 Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. forward.s
  5. Abstract:
  6. This module implements the proxy forwarding functions.
  7. Author:
  8. ShannonC 26-Oct-94
  9. Environment:
  10. Any mode.
  11. Revision History:
  12. --*/
  13. #include "ksia64.h"
  14. .file "forward.s"
  15. /*++
  16. VOID
  17. NdrProxyForwardingFunction<nnn>(...)
  18. Routine Description:
  19. This function forwards a call to the proxy for the base interface.
  20. Arguments:
  21. This [a0] - Points to an interface proxy.
  22. Return Value:
  23. None.
  24. --*/
  25. // here is what a forwarder looks like
  26. // we must:
  27. // change the "this" pointer in [esp+4] to point to the delegated object
  28. // fetch the correct entry from the vtable
  29. // call the function
  30. #define SUBCLASS_OFFSET 32
  31. #define VTABLE_ENTRY(n) n*8
  32. /*
  33. this is a macro for delegation methods. It first retrives BaseProxyBuffer
  34. from the proxy vtbl, then deference to get the base vtbl. From the offset
  35. in vtbl, we get the pair of real .ObjectStublessClient##method_number
  36. and gp. bp & b6 is loaded up accordingly and the code is branched into
  37. ObjectStublessClient##method_number
  38. */
  39. #define DELEGATION_FORWARDER(method_number) \
  40. LEAF_ENTRY( NdrProxyForwardingFunction##method_number ); \
  41. add r32 = SUBCLASS_OFFSET, r32; \
  42. ;; \
  43. LDPTR (r32, r32);; \
  44. LDPTR (r2, r32);; \
  45. add r2 = VTABLE_ENTRY(method_number), r2;; \
  46. LDPTR (r2, r2 );; \
  47. LDPTRINC (r3, r2, 8); \
  48. ;; \
  49. LDPTR (gp, r2); \
  50. mov b6 = r3; \
  51. br##.##sptk##.##clr b6; \
  52. LEAF_EXIT( NdrProxyForwardingFunction##method_number )
  53. DELEGATION_FORWARDER(3)
  54. DELEGATION_FORWARDER(4)
  55. DELEGATION_FORWARDER(5)
  56. DELEGATION_FORWARDER(6)
  57. DELEGATION_FORWARDER(7)
  58. DELEGATION_FORWARDER(8)
  59. DELEGATION_FORWARDER(9)
  60. DELEGATION_FORWARDER(10)
  61. DELEGATION_FORWARDER(11)
  62. DELEGATION_FORWARDER(12)
  63. DELEGATION_FORWARDER(13)
  64. DELEGATION_FORWARDER(14)
  65. DELEGATION_FORWARDER(15)
  66. DELEGATION_FORWARDER(16)
  67. DELEGATION_FORWARDER(17)
  68. DELEGATION_FORWARDER(18)
  69. DELEGATION_FORWARDER(19)
  70. DELEGATION_FORWARDER(20)
  71. DELEGATION_FORWARDER(21)
  72. DELEGATION_FORWARDER(22)
  73. DELEGATION_FORWARDER(23)
  74. DELEGATION_FORWARDER(24)
  75. DELEGATION_FORWARDER(25)
  76. DELEGATION_FORWARDER(26)
  77. DELEGATION_FORWARDER(27)
  78. DELEGATION_FORWARDER(28)
  79. DELEGATION_FORWARDER(29)
  80. DELEGATION_FORWARDER(30)
  81. DELEGATION_FORWARDER(31)
  82. DELEGATION_FORWARDER(32)
  83. DELEGATION_FORWARDER(33)
  84. DELEGATION_FORWARDER(34)
  85. DELEGATION_FORWARDER(35)
  86. DELEGATION_FORWARDER(36)
  87. DELEGATION_FORWARDER(37)
  88. DELEGATION_FORWARDER(38)
  89. DELEGATION_FORWARDER(39)
  90. DELEGATION_FORWARDER(40)
  91. DELEGATION_FORWARDER(41)
  92. DELEGATION_FORWARDER(42)
  93. DELEGATION_FORWARDER(43)
  94. DELEGATION_FORWARDER(44)
  95. DELEGATION_FORWARDER(45)
  96. DELEGATION_FORWARDER(46)
  97. DELEGATION_FORWARDER(47)
  98. DELEGATION_FORWARDER(48)
  99. DELEGATION_FORWARDER(49)
  100. DELEGATION_FORWARDER(50)
  101. DELEGATION_FORWARDER(51)
  102. DELEGATION_FORWARDER(52)
  103. DELEGATION_FORWARDER(53)
  104. DELEGATION_FORWARDER(54)
  105. DELEGATION_FORWARDER(55)
  106. DELEGATION_FORWARDER(56)
  107. DELEGATION_FORWARDER(57)
  108. DELEGATION_FORWARDER(58)
  109. DELEGATION_FORWARDER(59)
  110. DELEGATION_FORWARDER(60)
  111. DELEGATION_FORWARDER(61)
  112. DELEGATION_FORWARDER(62)
  113. DELEGATION_FORWARDER(63)
  114. DELEGATION_FORWARDER(64)
  115. DELEGATION_FORWARDER(65)
  116. DELEGATION_FORWARDER(66)
  117. DELEGATION_FORWARDER(67)
  118. DELEGATION_FORWARDER(68)
  119. DELEGATION_FORWARDER(69)
  120. DELEGATION_FORWARDER(70)
  121. DELEGATION_FORWARDER(71)
  122. DELEGATION_FORWARDER(72)
  123. DELEGATION_FORWARDER(73)
  124. DELEGATION_FORWARDER(74)
  125. DELEGATION_FORWARDER(75)
  126. DELEGATION_FORWARDER(76)
  127. DELEGATION_FORWARDER(77)
  128. DELEGATION_FORWARDER(78)
  129. DELEGATION_FORWARDER(79)
  130. DELEGATION_FORWARDER(80)
  131. DELEGATION_FORWARDER(81)
  132. DELEGATION_FORWARDER(82)
  133. DELEGATION_FORWARDER(83)
  134. DELEGATION_FORWARDER(84)
  135. DELEGATION_FORWARDER(85)
  136. DELEGATION_FORWARDER(86)
  137. DELEGATION_FORWARDER(87)
  138. DELEGATION_FORWARDER(88)
  139. DELEGATION_FORWARDER(89)
  140. DELEGATION_FORWARDER(90)
  141. DELEGATION_FORWARDER(91)
  142. DELEGATION_FORWARDER(92)
  143. DELEGATION_FORWARDER(93)
  144. DELEGATION_FORWARDER(94)
  145. DELEGATION_FORWARDER(95)
  146. DELEGATION_FORWARDER(96)
  147. DELEGATION_FORWARDER(97)
  148. DELEGATION_FORWARDER(98)
  149. DELEGATION_FORWARDER(99)
  150. DELEGATION_FORWARDER(100)
  151. DELEGATION_FORWARDER(101)
  152. DELEGATION_FORWARDER(102)
  153. DELEGATION_FORWARDER(103)
  154. DELEGATION_FORWARDER(104)
  155. DELEGATION_FORWARDER(105)
  156. DELEGATION_FORWARDER(106)
  157. DELEGATION_FORWARDER(107)
  158. DELEGATION_FORWARDER(108)
  159. DELEGATION_FORWARDER(109)
  160. DELEGATION_FORWARDER(110)
  161. DELEGATION_FORWARDER(111)
  162. DELEGATION_FORWARDER(112)
  163. DELEGATION_FORWARDER(113)
  164. DELEGATION_FORWARDER(114)
  165. DELEGATION_FORWARDER(115)
  166. DELEGATION_FORWARDER(116)
  167. DELEGATION_FORWARDER(117)
  168. DELEGATION_FORWARDER(118)
  169. DELEGATION_FORWARDER(119)
  170. DELEGATION_FORWARDER(120)
  171. DELEGATION_FORWARDER(121)
  172. DELEGATION_FORWARDER(122)
  173. DELEGATION_FORWARDER(123)
  174. DELEGATION_FORWARDER(124)
  175. DELEGATION_FORWARDER(125)
  176. DELEGATION_FORWARDER(126)
  177. DELEGATION_FORWARDER(127)
  178. DELEGATION_FORWARDER(128)
  179. DELEGATION_FORWARDER(129)
  180. DELEGATION_FORWARDER(130)
  181. DELEGATION_FORWARDER(131)
  182. DELEGATION_FORWARDER(132)
  183. DELEGATION_FORWARDER(133)
  184. DELEGATION_FORWARDER(134)
  185. DELEGATION_FORWARDER(135)
  186. DELEGATION_FORWARDER(136)
  187. DELEGATION_FORWARDER(137)
  188. DELEGATION_FORWARDER(138)
  189. DELEGATION_FORWARDER(139)
  190. DELEGATION_FORWARDER(140)
  191. DELEGATION_FORWARDER(141)
  192. DELEGATION_FORWARDER(142)
  193. DELEGATION_FORWARDER(143)
  194. DELEGATION_FORWARDER(144)
  195. DELEGATION_FORWARDER(145)
  196. DELEGATION_FORWARDER(146)
  197. DELEGATION_FORWARDER(147)
  198. DELEGATION_FORWARDER(148)
  199. DELEGATION_FORWARDER(149)
  200. DELEGATION_FORWARDER(150)
  201. DELEGATION_FORWARDER(151)
  202. DELEGATION_FORWARDER(152)
  203. DELEGATION_FORWARDER(153)
  204. DELEGATION_FORWARDER(154)
  205. DELEGATION_FORWARDER(155)
  206. DELEGATION_FORWARDER(156)
  207. DELEGATION_FORWARDER(157)
  208. DELEGATION_FORWARDER(158)
  209. DELEGATION_FORWARDER(159)
  210. DELEGATION_FORWARDER(160)
  211. DELEGATION_FORWARDER(161)
  212. DELEGATION_FORWARDER(162)
  213. DELEGATION_FORWARDER(163)
  214. DELEGATION_FORWARDER(164)
  215. DELEGATION_FORWARDER(165)
  216. DELEGATION_FORWARDER(166)
  217. DELEGATION_FORWARDER(167)
  218. DELEGATION_FORWARDER(168)
  219. DELEGATION_FORWARDER(169)
  220. DELEGATION_FORWARDER(170)
  221. DELEGATION_FORWARDER(171)
  222. DELEGATION_FORWARDER(172)
  223. DELEGATION_FORWARDER(173)
  224. DELEGATION_FORWARDER(174)
  225. DELEGATION_FORWARDER(175)
  226. DELEGATION_FORWARDER(176)
  227. DELEGATION_FORWARDER(177)
  228. DELEGATION_FORWARDER(178)
  229. DELEGATION_FORWARDER(179)
  230. DELEGATION_FORWARDER(180)
  231. DELEGATION_FORWARDER(181)
  232. DELEGATION_FORWARDER(182)
  233. DELEGATION_FORWARDER(183)
  234. DELEGATION_FORWARDER(184)
  235. DELEGATION_FORWARDER(185)
  236. DELEGATION_FORWARDER(186)
  237. DELEGATION_FORWARDER(187)
  238. DELEGATION_FORWARDER(188)
  239. DELEGATION_FORWARDER(189)
  240. DELEGATION_FORWARDER(190)
  241. DELEGATION_FORWARDER(191)
  242. DELEGATION_FORWARDER(192)
  243. DELEGATION_FORWARDER(193)
  244. DELEGATION_FORWARDER(194)
  245. DELEGATION_FORWARDER(195)
  246. DELEGATION_FORWARDER(196)
  247. DELEGATION_FORWARDER(197)
  248. DELEGATION_FORWARDER(198)
  249. DELEGATION_FORWARDER(199)
  250. DELEGATION_FORWARDER(200)
  251. DELEGATION_FORWARDER(201)
  252. DELEGATION_FORWARDER(202)
  253. DELEGATION_FORWARDER(203)
  254. DELEGATION_FORWARDER(204)
  255. DELEGATION_FORWARDER(205)
  256. DELEGATION_FORWARDER(206)
  257. DELEGATION_FORWARDER(207)
  258. DELEGATION_FORWARDER(208)
  259. DELEGATION_FORWARDER(209)
  260. DELEGATION_FORWARDER(210)
  261. DELEGATION_FORWARDER(211)
  262. DELEGATION_FORWARDER(212)
  263. DELEGATION_FORWARDER(213)
  264. DELEGATION_FORWARDER(214)
  265. DELEGATION_FORWARDER(215)
  266. DELEGATION_FORWARDER(216)
  267. DELEGATION_FORWARDER(217)
  268. DELEGATION_FORWARDER(218)
  269. DELEGATION_FORWARDER(219)
  270. DELEGATION_FORWARDER(220)
  271. DELEGATION_FORWARDER(221)
  272. DELEGATION_FORWARDER(222)
  273. DELEGATION_FORWARDER(223)
  274. DELEGATION_FORWARDER(224)
  275. DELEGATION_FORWARDER(225)
  276. DELEGATION_FORWARDER(226)
  277. DELEGATION_FORWARDER(227)
  278. DELEGATION_FORWARDER(228)
  279. DELEGATION_FORWARDER(229)
  280. DELEGATION_FORWARDER(230)
  281. DELEGATION_FORWARDER(231)
  282. DELEGATION_FORWARDER(232)
  283. DELEGATION_FORWARDER(233)
  284. DELEGATION_FORWARDER(234)
  285. DELEGATION_FORWARDER(235)
  286. DELEGATION_FORWARDER(236)
  287. DELEGATION_FORWARDER(237)
  288. DELEGATION_FORWARDER(238)
  289. DELEGATION_FORWARDER(239)
  290. DELEGATION_FORWARDER(240)
  291. DELEGATION_FORWARDER(241)
  292. DELEGATION_FORWARDER(242)
  293. DELEGATION_FORWARDER(243)
  294. DELEGATION_FORWARDER(244)
  295. DELEGATION_FORWARDER(245)
  296. DELEGATION_FORWARDER(246)
  297. DELEGATION_FORWARDER(247)
  298. DELEGATION_FORWARDER(248)
  299. DELEGATION_FORWARDER(249)
  300. DELEGATION_FORWARDER(250)
  301. DELEGATION_FORWARDER(251)
  302. DELEGATION_FORWARDER(252)
  303. DELEGATION_FORWARDER(253)
  304. DELEGATION_FORWARDER(254)
  305. DELEGATION_FORWARDER(255)