Author: tkreuzer Date: Thu May 14 14:50:07 2015 New Revision: 67715
URL: http://svn.reactos.org/svn/reactos?rev=67715&view=rev Log: [NTOSKRNL] Fix compilation of some ARM assembler files [NTDLL] Add missing ASM stubs for ARM
Modified: trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/boot.s trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/trap.s
Modified: trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/dispatch/arm/stub... ============================================================================== --- trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -1,16 +1,31 @@ -#include "../../../../ntoskrnl/include/internal/arm/asmmacro.S"
-// -// Exceptions -// -GENERATE_ARM_STUB LdrInitializeThunk -GENERATE_ARM_STUB RtlGetCallersAddress -GENERATE_ARM_STUB RtlUnwind -GENERATE_ARM_STUB RtlDispatchException -GENERATE_ARM_STUB RtlpGetStackLimits -GENERATE_ARM_STUB DbgUserBreakPoint -GENERATE_ARM_STUB KiFastSystemCall -GENERATE_ARM_STUB KiFastSystemCallRet -GENERATE_ARM_STUB KiIntSystemCall -GENERATE_ARM_STUB KiUserApcDispatcher -GENERATE_ARM_STUB RtlInitializeContext +#include <ksarm.h> + + TEXTAREA + + LEAF_ENTRY LdrInitializeThunk + __assertfail + bx lr + LEAF_END LdrInitializeThunk + + LEAF_ENTRY KiRaiseUserExceptionDispatcher + __assertfail + bx lr + LEAF_END KiRaiseUserExceptionDispatcher + + LEAF_ENTRY KiUserApcDispatcher + __assertfail + bx lr + LEAF_END KiUserApcDispatcher + + LEAF_ENTRY KiUserCallbackDispatcher + __assertfail + bx lr + LEAF_END KiUserCallbackDispatcher + + LEAF_ENTRY KiUserExceptionDispatcher + __assertfail + bx lr + LEAF_END KiUserExceptionDispatcher + + END
Modified: trunk/reactos/ntoskrnl/ke/arm/boot.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/boot.s?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -6,40 +6,47 @@ * PROGRAMMERS: ReactOS Portable Systems Group */
- .title "ARM Kernel Entry Point" - .include "ntoskrnl/include/internal/arm/kxarm.h" - .include "ntoskrnl/include/internal/arm/ksarm.h" +#include <ksarm.h>
TEXTAREA + + IMPORT KiInitializeSystem + NESTED_ENTRY KiSystemStartup PROLOG_END KiSystemStartup - + /* Put us in FIQ mode, set IRQ stack */ b . mrs r3, cpsr - orr r3, r1, #CPSR_FIQ_MODE - msr cpsr, r3 - ldr sp, [a1, #LpbInterruptStack] - + orr r3, r1, #CPSRM_FIQ + //msr cpsr, r3 + msr cpsr_fc, r3 + ldr sp, [a1, #LpbKernelStack] + /* Repeat for IRQ mode */ - msr cpsr_c, #CPSR_IRQ_MODE - ldr sp, [a1, #LpbInterruptStack] + mov r3, #CPSRM_INT + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack]
/* Put us in ABORT mode and set the panic stack */ - msr cpsr_c, #CPSR_ABORT_MODE - ldr sp, [a1, #LpbPanicStack] - - /* Repeat for UND (Undefined) mode */ - msr cpsr_c, #CPSR_UND_MODE - ldr sp, [a1, #LpbPanicStack] - + mov r3, #CPSRM_ABT + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack] + + /* Repeat for UDF (Undefined) mode */ + mov r3, #CPSRM_UDF + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack] + /* Put us into SVC (Supervisor) mode and set the kernel stack */ - msr cpsr_c, #CPSR_SVC_MODE + mov r3, #CPSRM_SVC + msr cpsr_c, r3 ldr sp, [a1, #LpbKernelStack] - + /* Go to C code */ b KiInitializeSystem - - ENTRY_END KiSystemStartup
+ NESTED_END KiSystemStartup + + END /* EOF */
Modified: trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -1,38 +1,18 @@ -#include <internal/arm/asmmacro.S>
-// -// Exceptions -// -GENERATE_ARM_STUB _abnormal_termination -GENERATE_ARM_STUB _except_handler2 -GENERATE_ARM_STUB _except_handler3 -GENERATE_ARM_STUB _global_unwind2 -GENERATE_ARM_STUB _local_unwind2 -GENERATE_ARM_STUB RtlGetCallersAddress -GENERATE_ARM_STUB RtlUnwind -GENERATE_ARM_STUB RtlDispatchException -GENERATE_ARM_STUB RtlpGetStackLimits -GENERATE_ARM_STUB DbgBreakPointWithStatus -GENERATE_ARM_STUB KeRaiseUserException -GENERATE_ARM_STUB KdpGdbStubInit +#include <ksarm.h>
-// -// Driver ISRs -// -GENERATE_ARM_STUB KeConnectInterrupt -GENERATE_ARM_STUB KeDisconnectInterrupt -GENERATE_ARM_STUB KiPassiveRelease -GENERATE_ARM_STUB KiInterruptTemplate -GENERATE_ARM_STUB KiUnexpectedInterrupt -GENERATE_ARM_STUB KeInitializeInterrupt -GENERATE_ARM_STUB KeSynchronizeExecution
-// -// User Mode Support -// -GENERATE_ARM_STUB KeSwitchKernelStack -GENERATE_ARM_STUB RtlCreateUserThread -GENERATE_ARM_STUB RtlInitializeContext -GENERATE_ARM_STUB KeUserModeCallback -GENERATE_ARM_STUB KiCallUserMode -GENERATE_ARM_STUB NtCallbackReturn + TEXTAREA + + LEAF_ENTRY KeSwitchKernelStack + __assertfail + bx lr + LEAF_END KeSwitchKernelStack + + LEAF_ENTRY KiPassiveRelease + __assertfail + bx lr + LEAF_END KiPassiveRelease + + END +/* EOF */
Modified: trunk/reactos/ntoskrnl/ke/arm/trap.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trap.s?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -6,12 +6,18 @@ * PROGRAMMERS: ReactOS Portable Systems Group */
- .title "ARM Trap Dispatching and Handling" - #include "ntoskrnl/include/internal/arm/kxarm.h" - .include "ntoskrnl/include/internal/arm/ksarm.h" +#include <ksarm.h>
- .global KiArmVectorTable - KiArmVectorTable: + IMPORT KiUndefinedExceptionHandler + IMPORT KiSoftwareInterruptHandler + IMPORT KiPrefetchAbortHandler + IMPORT KiDataAbortHandler + IMPORT KiInterruptHandler + + TEXTAREA + + EXPORT KiArmVectorTable +KiArmVectorTable b . // Reset ldr pc, _KiUndefinedInstructionJump // Undefined Instruction ldr pc, _KiSoftwareInterruptJump // Software Interrupt @@ -20,117 +26,131 @@ b . // Reserved ldr pc, _KiInterruptJump // Interrupt ldr pc, _KiFastInterruptJump // Fast Interrupt - - _KiUndefinedInstructionJump: .word KiUndefinedInstructionException - _KiSoftwareInterruptJump: .word KiSoftwareInterruptException - _KiPrefetchAbortJump: .word KiPrefetchAbortException - _KiDataAbortJump: .word KiDataAbortException - _KiInterruptJump: .word KiInterruptException - _KiFastInterruptJump: .word KiFastInterruptException - - TEXTAREA + +_KiUndefinedInstructionJump DCD KiUndefinedInstructionException +_KiSoftwareInterruptJump DCD KiSoftwareInterruptException +_KiPrefetchAbortJump DCD KiPrefetchAbortException +_KiDataAbortJump DCD KiDataAbortException +_KiInterruptJump DCD KiInterruptException +_KiFastInterruptJump DCD KiFastInterruptException + + // Might need to move these to a custom header, when used by HAL as well + + MACRO + TRAP_PROLOG $Abort + __debugbreak + MEND + + MACRO + SYSCALL_PROLOG $Abort + __debugbreak + MEND + + MACRO + TRAP_EPILOG $SystemCall + __debugbreak + MEND + NESTED_ENTRY KiUndefinedInstructionException PROLOG_END KiUndefinedInstructionException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiUndefinedExceptionHandler - ENTRY_END KiUndefinedInstructionException - - + + NESTED_END KiUndefinedInstructionException + + NESTED_ENTRY KiSoftwareInterruptException PROLOG_END KiSoftwareInterruptException - // - // Handle trap entry - // + + /* Handle trap entry */ SYSCALL_PROLOG - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiServiceExit mov r0, sp ldr pc, =KiSoftwareInterruptHandler - ENTRY_END KiSoftwareInterruptException + + NESTED_END KiSoftwareInterruptException
NESTED_ENTRY KiPrefetchAbortException PROLOG_END KiPrefetchAbortException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiPrefetchAbortHandler - ENTRY_END KiPrefetchAbortException + + NESTED_END KiPrefetchAbortException
NESTED_ENTRY KiDataAbortException PROLOG_END KiDataAbortException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 1 // FromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiDataAbortHandler - ENTRY_END KiDataAbortException + + NESTED_END KiDataAbortException
NESTED_ENTRY KiInterruptException PROLOG_END KiInterruptException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp mov r1, #0 ldr pc, =KiInterruptHandler - ENTRY_END KiInterruptException + + NESTED_END KiInterruptException
NESTED_ENTRY KiFastInterruptException PROLOG_END KiFastInterruptException - // + // FIXME-PERF: Implement FIQ exception - // - b . - ENTRY_END KiFastInterruptException - - + __debugbreak + + NESTED_END KiFastInterruptException + + NESTED_ENTRY KiExceptionExit PROLOG_END KiExceptionExit - // - // Handle trap exit - // + + /* Handle trap exit */ TRAP_EPILOG 0 // NotFromSystemCall - ENTRY_END KiExceptionExit + + NESTED_END KiExceptionExit
NESTED_ENTRY KiServiceExit PROLOG_END KiServiceExit - // - // Handle trap exit - // + + /* Handle trap exit */ TRAP_EPILOG 1 // FromSystemCall - ENTRY_END KiServiceExit + + NESTED_END KiServiceExit + + + LEAF_ENTRY KiInterruptTemplate + DCD 0 + LEAF_END KiInterruptTemplate + + END +/* EOF */