Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenstubs.c
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS Run-Time Library 00004 * PURPOSE: AMD64 stubs 00005 * FILE: lib/rtl/amd64/stubs.c 00006 * PROGRAMMERS: Stefan Ginsberg (stefan.ginsberg@reactos.org) 00007 */ 00008 00009 /* INCLUDES *****************************************************************/ 00010 00011 #include <rtl.h> 00012 #define NDEBUG 00013 #include <debug.h> 00014 #include "amd64/ketypes.h" 00015 00016 /* PUBLIC FUNCTIONS **********************************************************/ 00017 00018 /* 00019 * @unimplemented 00020 */ 00021 VOID 00022 NTAPI 00023 RtlInitializeContext(IN HANDLE ProcessHandle, 00024 OUT PCONTEXT ThreadContext, 00025 IN PVOID ThreadStartParam OPTIONAL, 00026 IN PTHREAD_START_ROUTINE ThreadStartAddress, 00027 IN PINITIAL_TEB StackBase) 00028 { 00029 00030 ThreadContext->Rax = 0; 00031 ThreadContext->Rbx = 0; 00032 ThreadContext->Rcx = (ULONG64)ThreadStartParam; 00033 ThreadContext->Rdx = 0; 00034 ThreadContext->Rsi = 0; 00035 ThreadContext->Rdi = 0; 00036 ThreadContext->Rbp = 0; 00037 ThreadContext->R8 = 0; 00038 ThreadContext->R9 = 0; 00039 ThreadContext->R10 = 0; 00040 ThreadContext->R11 = 0; 00041 ThreadContext->R12 = 0; 00042 00043 /* Set the Selectors */ 00044 if ((LONG64)ThreadStartAddress < 0) 00045 { 00046 /* Initialize kernel mode segments */ 00047 ThreadContext->SegCs = KGDT64_R0_CODE; 00048 ThreadContext->SegDs = KGDT64_R3_DATA; 00049 ThreadContext->SegEs = KGDT64_R3_DATA; 00050 ThreadContext->SegFs = KGDT64_R3_CMTEB; 00051 ThreadContext->SegGs = KGDT64_R3_DATA; 00052 ThreadContext->SegSs = KGDT64_R0_DATA; 00053 } 00054 else 00055 { 00056 /* Initialize user mode segments */ 00057 ThreadContext->SegCs = KGDT64_R3_CODE | RPL_MASK; 00058 ThreadContext->SegDs = KGDT64_R3_DATA | RPL_MASK; 00059 ThreadContext->SegEs = KGDT64_R3_DATA | RPL_MASK; 00060 ThreadContext->SegFs = KGDT64_R3_CMTEB | RPL_MASK; 00061 ThreadContext->SegGs = KGDT64_R3_DATA | RPL_MASK; 00062 ThreadContext->SegSs = KGDT64_R3_DATA | RPL_MASK; 00063 } 00064 00065 /* Enable Interrupts */ 00066 ThreadContext->EFlags = EFLAGS_INTERRUPT_MASK; 00067 00068 /* Settings passed */ 00069 ThreadContext->Rip = (ULONG64)ThreadStartAddress; 00070 ThreadContext->Rsp = (ULONG64)StackBase - 6 * sizeof(PVOID); 00071 00072 /* Align stack by 16 and substract 8 (unaligned on function entry) */ 00073 ThreadContext->Rsp &= ~15; 00074 ThreadContext->Rsp -= 8; 00075 00076 /* Only the basic Context is initialized */ 00077 ThreadContext->ContextFlags = CONTEXT_CONTROL | 00078 CONTEXT_INTEGER | 00079 CONTEXT_SEGMENTS; 00080 00081 return; 00082 } 00083 00084 /* 00085 * @unimplemented 00086 */ 00087 PVOID 00088 NTAPI 00089 RtlpGetExceptionAddress(VOID) 00090 { 00091 UNIMPLEMENTED; 00092 return NULL; 00093 } 00094 00095 /* 00096 * @unimplemented 00097 */ 00098 BOOLEAN 00099 NTAPI 00100 RtlDispatchException(IN PEXCEPTION_RECORD ExceptionRecord, 00101 IN PCONTEXT Context) 00102 { 00103 UNIMPLEMENTED; 00104 return FALSE; 00105 } 00106 00107 NTSYSAPI 00108 VOID 00109 RtlRestoreContext( 00110 PCONTEXT ContextRecord, 00111 PEXCEPTION_RECORD ExceptionRecord) 00112 { 00113 UNIMPLEMENTED; 00114 } 00115 00116 Generated on Sat May 26 2012 04:20:19 for ReactOS by
1.7.6.1
|