• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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