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.
|
|
// TITLE("LdrInitializeThunk") //++ // // Copyright (c) 1989 Microsoft Corporation // Copyright (c) 1992 Digital Equipment Corporation // // Module Name: // // ldrthunk.s // // Abstract: // // This module implements the thunk for the LdrpInitialize APC routine. // // Author: // // Steven R. Wood (stevewo) 27-Apr-1990 // // Environment: // // Any mode. // // Revision History: // // Thomas Van Baak (tvb) 18-May-1992 // // Adapted for Alpha AXP. // //--
#include "ksalpha.h"
//++ // // VOID // LdrInitializeThunk ( // IN PVOID NormalContext, // IN PVOID SystemArgument1, // IN PVOID SystemArgument2 // ) // // Routine Description: // // This function computes a pointer to the context record on the stack // and jumps to the LdrpInitialize function with that pointer as its // parameter. // // Arguments: // // NormalContext (a0) - User Mode APC context parameter (ignored). // // SystemArgument1 (a1) - User Mode APC system argument 1 (ignored). // // SystemArgument2 (a2) - User Mode APC system argument 2 (ignored). // // Return Value: // // None. // //--
LEAF_ENTRY(LdrInitializeThunk)
mov sp, a0 // get address of context record br zero, LdrpInitialize // jump to LdrpInitialize
.end LdrInitializeThunk
//++ // // VOID // LdrpSetGp( // IN ULONG GpValue // ) // // Routine Description: // // This function sets the value of the Gp register. // // Arguments: // // GpValue (a0) - Supplies the value for Gp. // // Return Value: // // None. // //--
LEAF_ENTRY(LdrpSetGp)
mov a0, gp // set global pointer register ret zero, (ra) // return
.end LdrpSetGp
|