1 /* 2 * Copyright (c) 2023 Institute of Parallel And Distributed Systems (IPADS), Shanghai Jiao Tong University (SJTU) 3 * Licensed under the Mulan PSL v2. 4 * You can use this software according to the terms and conditions of the Mulan PSL v2. 5 * You may obtain a copy of Mulan PSL v2 at: 6 * http://license.coscl.org.cn/MulanPSL2 7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 9 * PURPOSE. 10 * See the Mulan PSL v2 for more details. 11 */ 12 #ifndef KERNEL_SYSCALL_SYSCALL_NUM_H 13 #define KERNEL_SYSCALL_SYSCALL_NUM_H 14 15 #define NR_SYSCALL 256 16 17 /* Character */ 18 #define SYS_putstr 0 19 #define SYS_getc 1 20 21 #define SYS_tee_push_rdr_update_addr 5 22 #define SYS_debug_rdr_logitem 6 23 24 /* PMO */ 25 /* - single */ 26 #define SYS_create_pmo 10 27 #define SYS_create_device_pmo 11 28 #define SYS_map_pmo 12 29 #define SYS_unmap_pmo 13 30 #define SYS_write_pmo 14 31 #define SYS_read_pmo 15 32 #ifdef CHCORE_OH_TEE 33 #define SYS_create_ns_pmo 16 34 #define SYS_destroy_ns_pmo 17 35 #define SYS_create_tee_shared_pmo 19 36 #define SYS_transfer_pmo_owner 20 37 #endif /* CHCORE_OH_TEE */ 38 39 /* - address translation */ 40 #define SYS_get_pmo_paddr 30 41 #define SYS_get_phys_addr 31 42 43 /* Capability */ 44 #define SYS_revoke_cap 18 45 #define SYS_transfer_caps 62 46 47 #define SYS_irq_op 40 48 #define SYS_irq_stop 41 49 50 /* Multitask */ 51 /* - create & exit */ 52 #define SYS_create_cap_group 80 53 #define SYS_exit_group 81 54 #define SYS_create_thread 82 55 #define SYS_thread_exit 83 56 #ifdef CHCORE_OH_TEE 57 #define SYS_get_thread_id 84 58 #define SYS_terminate_thread 85 59 #endif /* CHCORE_OH_TEE */ 60 #define SYS_kill_group 86 61 /* - recycle */ 62 #define SYS_register_recycle 90 63 #define SYS_cap_group_recycle 91 64 #define SYS_ipc_close_connection 92 65 /* - schedule */ 66 #define SYS_yield 100 67 #define SYS_set_affinity 101 68 #define SYS_get_affinity 102 69 #define SYS_set_prio 103 70 #define SYS_get_prio 104 71 72 /* IPC */ 73 /* - procedure call */ 74 #define SYS_register_server 120 75 #define SYS_register_client 121 76 #define SYS_ipc_register_cb_return 122 77 #define SYS_ipc_call 123 78 #define SYS_ipc_return 124 79 #define SYS_ipc_exit_routine_return 125 80 /* - notification */ 81 #define SYS_create_notifc 130 82 #define SYS_wait 131 83 #define SYS_notify 132 84 85 #ifdef CHCORE_OH_TEE 86 /* - oh-tee-ipc */ 87 #define SYS_tee_msg_create_msg_hdl 140 88 #define SYS_tee_msg_create_channel 141 89 #define SYS_tee_msg_stop_channel 142 90 91 #define SYS_tee_msg_receive 143 92 #define SYS_tee_msg_call 144 93 #define SYS_tee_msg_reply 145 94 #define SYS_tee_msg_notify 146 95 #endif /* CHCORE_OH_TEE */ 96 97 /* Exception */ 98 /* - irq */ 99 #define SYS_irq_register 150 100 #define SYS_irq_wait 151 101 #define SYS_irq_ack 152 102 #define SYS_disable_irq 153 103 #define SYS_enable_irq 154 104 #define SYS_disable_irqno 155 105 #define SYS_enable_irqno 156 106 #define SYS_clear_irqno 157 107 #define SYS_cache_config 158 108 #define SYS_disable_local_irq 159 109 #define SYS_enable_local_irq 160 110 /* - page fault */ 111 #define SYS_user_fault_register 165 112 #define SYS_user_fault_map 166 113 114 /* Hardware Access (Privileged Instruction) */ 115 /* - cache */ 116 #define SYS_cache_flush 180 117 /* - timer */ 118 #define SYS_get_current_tick 185 119 120 /* POSIX */ 121 /* - time */ 122 #define SYS_clock_gettime 200 123 #define SYS_clock_nanosleep 201 124 /* - memory */ 125 #define SYS_handle_brk 210 126 #define SYS_handle_mprotect 213 127 128 /* Debug */ 129 #define SYS_debug_log 220 130 #define SYS_top 221 131 #define SYS_get_free_mem_size 222 132 #define SYS_get_mem_usage_msg 223 133 134 /* Performance Benchmark */ 135 #define SYS_perf_start 230 136 #define SYS_perf_end 231 137 #define SYS_perf_null 232 138 139 /* Get PCI devcie information. */ 140 #define SYS_get_pci_device 233 141 142 /* poweroff */ 143 #define SYS_poweroff 234 144 145 /* Virtualization */ 146 #define SYS_virt_dispatch 240 147 148 /* TrustZone */ 149 #define SYS_tee_wait_switch_req 250 150 #define SYS_tee_switch_req 251 151 #define SYS_tee_create_ns_pmo 252 152 #define SYS_tee_pull_kernel_var 253 153 #endif /* KERNEL_SYSCALL_SYSCALL_NUM_H */ 154