kernel/arm: implement entering userspace

Change-Id: Icf3945db979a8f4444856fc7157649f48b297c29
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5037
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
David Karoly
2022-03-02 22:38:25 +00:00
committed by waddlesplash
parent 6acf0b3e21
commit 6804f6c764
7 changed files with 136 additions and 13 deletions
@@ -1,15 +1,17 @@
/*
* Copyright 2022, Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Copyright 2007, Travis Geiselbrecht. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _SYSTEM_ARCH_M68K_COMMPAGE_DEFS_H
#define _SYSTEM_ARCH_M68K_COMMPAGE_DEFS_H
#ifndef _SYSTEM_ARCH_ARM_COMMPAGE_DEFS_H
#define _SYSTEM_ARCH_ARM_COMMPAGE_DEFS_H
#ifndef _SYSTEM_COMMPAGE_DEFS_H
# error Must not be included directly. Include <commpage_defs.h> instead!
#endif
//#define COMMPAGE_ENTRY_M68K_SYSCALL (COMMPAGE_ENTRY_FIRST_ARCH_SPECIFIC + 0)
//#define COMMPAGE_ENTRY_M68K_MEMCPY (COMMPAGE_ENTRY_FIRST_ARCH_SPECIFIC + 1)
#define COMMPAGE_ENTRY_ARM_THREAD_EXIT (COMMPAGE_ENTRY_FIRST_ARCH_SPECIFIC + 0)
#endif /* _SYSTEM_ARCH_M68K_COMMPAGE_DEFS_H */
#endif /* _SYSTEM_ARCH_ARM_COMMPAGE_DEFS_H */
@@ -13,6 +13,12 @@
#define CPSR_MODE_MASK 0x1f
#define CPSR_MODE_USR 0x10
#define CPSR_MODE_SVC 0x13
#define CPSR_MODE_SYS 0x1f
#define CPSR_T 0x20
#define CPSR_F 0x40
#define CPSR_I 0x80
#define FSR_WNR 0x800