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

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