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/stu…
==============================================================================
--- 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.…
==============================================================================
--- 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 */