1/* 2 * Copyright 2017, Data61 3 * Commonwealth Scientific and Industrial Research Organisation (CSIRO) 4 * ABN 41 687 119 230. 5 * 6 * This software may be distributed and modified according to the terms of 7 * the BSD 2-Clause license. Note that NO WARRANTY is provided. 8 * See "LICENSE_BSD2.txt" for details. 9 * 10 * @TAG(DATA61_BSD) 11 */ 12 13#ifndef __LIBSEL4_SEL4_DEPRECATED_H 14#define __LIBSEL4_SEL4_DEPRECATED_H 15 16#include <sel4/macros.h> 17#include <sel4/arch/deprecated.h> 18#include <sel4/sel4_arch/deprecated.h> 19 20#define SEL4_PFIPC_LABEL SEL4_DEPRECATE_MACRO(seL4_Fault_VMFault) 21#define SEL4_PFIPC_LENGTH SEL4_DEPRECATE_MACRO(seL4_VMFault_Length) 22#define SEL4_PFIPC_FAULT_IP SEL4_DEPRECATE_MACRO(seL4_VMFault_IP) 23#define SEL4_PFIPC_FAULT_ADDR SEL4_DEPRECATE_MACRO(seL4_VMFault_Addr) 24#define SEL4_PFIPC_PREFETCH_FAULT SEL4_DEPRECATE_MACRO(seL4_VMFault_PrefetchFault) 25#define SEL4_PFIPC_FSR SEL4_DEPRECATE_MACRO(seL4_VMFault_FSR) 26 27#define SEL4_EXCEPT_IPC_LABEL SEL4_DEPRECATE_MACRO(seL4_Fault_UnknownSyscall) 28#define SEL4_USER_EXCEPTION_LABEL SEL4_DEPRECATE_MACRO(seL4_Fault_UserException) 29#define SEL4_USER_EXCEPTION_LENGTH SEL4_DEPRECATE_MACRO(seL4_UserException_Length) 30 31#ifdef CONFIG_ARM_HYPERVISOR_SUPPORT 32#define SEL4_VGIC_MAINTENANCE_LENGTH SEL4_DEPRECATE_MACRO(seL4_VGICMaintenance_Length) 33#define SEL4_VGIC_MAINTENANCE_LABEL SEL4_DEPRECATE_MACRO(seL4_Fault_VGICMaintenance) 34#define SEL4_VCPU_FAULT_LENGTH SEL4_DEPRECATE_MACRO(seL4_VCPUFault_Length) 35#define SEL4_VCPU_FAULT_LABEL SEL4_DEPRECATE_MACRO(seL4_Fault_VCPUFault) 36#endif /* CONFIG_ARM_HYPERVISOR_SUPPORT */ 37 38typedef seL4_CapRights_t seL4_CapRights SEL4_DEPRECATED("use seL4_CapRights_t"); 39 40typedef union { 41 struct { 42 seL4_Word fault_ip; 43 seL4_Word fault_addr; 44 seL4_Word prefetch_fault; 45 seL4_Word fsr; 46 } regs; 47 seL4_Word raw[4]; 48} seL4_PageFaultIpcRegisters SEL4_DEPRECATED("use seL4_Fault_VMFault_new()"); 49 50typedef seL4_Fault_tag_t seL4_FaultType SEL4_DEPRECATED("use seL4_Fault_tag_t"); 51 52#define seL4_NoFault SEL4_DEPRECATE_MACRO(seL4_Fault_NullFault) 53#define seL4_CapFault SEL4_DEPRECATE_MACRO(seL4_Fault_CapFault) 54#define seL4_UnknownSyscall SEL4_DEPRECATE_MACRO(seL4_Fault_UnknownSyscall) 55#define seL4_UserException SEL4_DEPRECATE_MACRO(seL4_Fault_UserException) 56#define seL4_VMFault SEL4_DEPRECATE_MACRO(seL4_Fault_VMFault) 57 58static inline SEL4_DEPRECATED("removed") seL4_MessageInfo_t 59seL4_GetTag(void) 60{ 61 return seL4_GetIPCBuffer()->tag; 62} 63 64static inline SEL4_DEPRECATED("removed") void 65seL4_SetTag(seL4_MessageInfo_t tag) 66{ 67 seL4_GetIPCBuffer()->tag = tag; 68} 69 70static inline SEL4_DEPRECATED("use seL4_GetMR(seL4_VMFault_IP)") seL4_Word 71seL4_PF_FIP(void) 72{ 73 return seL4_GetMR(seL4_VMFault_IP); 74} 75 76static inline SEL4_DEPRECATED("use seL4_GetMR(seL4_VMFault_Addr)") seL4_Word 77seL4_PF_Addr(void) 78{ 79 return seL4_GetMR(seL4_VMFault_Addr); 80} 81 82static inline SEL4_DEPRECATED("use seL4_isVMFault_tag") seL4_Word 83seL4_isPageFault_MSG(void) 84{ 85 return seL4_isVMFault_tag(seL4_GetIPCBuffer()->tag); 86} 87 88static inline SEL4_DEPRECATED("use seL4_isVMFault_tag") seL4_Word 89seL4_isPageFault_Tag(seL4_MessageInfo_t tag) 90{ 91 return seL4_isVMFault_tag(tag); 92} 93 94static inline SEL4_DEPRECATED("use seL4_isUnknownSyscall_tag") seL4_Word 95seL4_isExceptIPC_Tag(seL4_MessageInfo_t tag) 96{ 97 return seL4_isUnknownSyscall_tag(tag); 98} 99 100static inline SEL4_DEPRECATED("use seL4_GetMR") seL4_Word 101seL4_ExceptIPC_Get(seL4_Word mr) 102{ 103 return seL4_GetMR(mr); 104} 105 106static inline SEL4_DEPRECATED("use seL4_SetMR") void 107seL4_ExceptIPC_Set(seL4_Word index, seL4_Word val) 108{ 109 seL4_SetMR(index, val); 110} 111 112static inline SEL4_DEPRECATED("") seL4_Word 113seL4_IsArchSyscallFrom(seL4_MessageInfo_t tag) 114{ 115 return seL4_MessageInfo_get_length(tag) == seL4_UnknownSyscall_Length; 116} 117 118static inline SEL4_DEPRECATED("") seL4_Word 119seL4_IsArchExceptionFrom(seL4_MessageInfo_t tag) 120{ 121 return seL4_MessageInfo_get_length(tag) == seL4_UnknownSyscall_Length; 122} 123 124typedef seL4_Word seL4_CapData_t SEL4_DEPRECATED("Badge and guard data are just seL4_Word type"); 125 126static inline SEL4_DEPRECATED("Badges do not need to be constructed") seL4_Word seL4_CapData_Badge_new(seL4_Word badge) 127{ 128 return badge; 129} 130 131static inline SEL4_DEPRECATED("Use seL4_CNode_CapData_new().words[0]") seL4_Word seL4_CapData_Guard_new(seL4_Word guard, seL4_Word bits) 132{ 133 return seL4_CNode_CapData_new(guard, bits).words[0]; 134} 135 136#endif // __LIBSEL4_SEL4_DEPRECATED_H 137 138