Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • contrib/arch/kernel/kernel.adl

    r8c52f66 r6d4c549  
    33 *****************************/
    44
    5 interface kernel_klog {
     5interface sys_klog {
    66                /* Print using kernel facility */
    77                unative_t sys_klog(int fd, const void *buf, size_t size);
     
    1010};
    1111
    12 interface kernel_console {
     12interface sys_console {
    1313                /* Enable kernel console */
    14                 uintptr_t sys_debug_enable_console(void);
     14                unative_t sys_debug_enable_console(void);
    1515               
    1616                /* Disable kernel console */
    17                 uintptr_t sys_debug_disable_console(void);
    18         protocol:
    19                 (?sys_debug_enable_console + ?sys_debug_disable_console)*
    20 };
    21 
    22 interface kernel_tls {
     17                unative_t sys_debug_disable_console(void);
     18        protocol:
     19                (
     20                        ?sys_debug_enable_console +
     21                        ?sys_debug_disable_console
     22                )*
     23};
     24
     25interface sys_tls {
    2326                /* Set thread-local storage pointer (on architectures where kernel mode is required) */
    2427                unative_t sys_tls_set(unative_t addr);
     
    2730};
    2831
    29 interface kernel_thread {
     32interface sys_thread {
    3033                /* Create new thread */
    3134                unative_t sys_thread_create(uspace_arg_t *uspace_uarg, char *uspace_name, size_t name_len, thread_id_t *uspace_thread_id);
     
    3740                unative_t sys_thread_get_id(thread_id_t *uspace_thread_id);
    3841        protocol:
    39                 (?sys_thread_create + ?sys_thread_get_id)* ; ?sys_thread_exit
    40 };
    41 
    42 interface kernel_task {
     42                (
     43                        ?sys_thread_create +
     44                        ?sys_thread_get_id +
     45                        ?sys_thread_exit
     46                )*
     47};
     48
     49interface sys_task {
    4350                /* Set name fo the current task */
    4451                unative_t sys_task_set_name(const char *uspace_name, size_t name_len);
     
    4754                unative_t sys_task_get_id(task_id_t *uspace_task_id);
    4855        protocol:
    49                 (?sys_task_set_name + ?sys_task_get_id)*
    50 };
    51 
    52 interface kernel_program {
     56                (
     57                        ?sys_task_set_name +
     58                        ?sys_task_get_id
     59                )*
     60};
     61
     62interface sys_program {
    5363                /* Spawn a new instance of clonable loader service */
    5464                unative_t sys_program_spawn_loader(char *uspace_name, size_t name_len);
     
    5767};
    5868
    59 interface kernel_futex {
     69interface sys_futex {
    6070                /* Sleep in a futex wait queue */
    6171                unative_t sys_futex_sleep_timeout(uintptr_t uaddr, uint32_t usec, int flags);
     
    6474                unative_t sys_futex_wakeup(uintptr_t uaddr);
    6575        protocol:
    66                 (?sys_futex_sleep_timeout + ?sys_futex_wakeup)*
    67 };
    68 
    69 interface kernel_smc {
     76                (
     77                        ?sys_futex_sleep_timeout +
     78                        ?sys_futex_wakeup
     79                )*
     80};
     81
     82interface sys_smc {
    7083                /* Enforce self-modifying code cache coherency */
    7184                unative_t sys_smc_coherence(uintptr_t va, size_t size);
     
    7487};
    7588
    76 interface kernel_as {
     89interface sys_as {
    7790                /* Create new address space area */
    7891                unative_t sys_as_area_create(uintptr_t address, size_t size, int flags);
     
    87100                unative_t sys_as_area_destroy(uintptr_t address);
    88101        protocol:
    89                 (?sys_as_area_create + ?sys_as_area_resize + ?sys_as_area_change_flags + ?sys_as_area_destroy)*
    90 };
    91 
    92 interface kernel_ipc {
     102                (
     103                        ?sys_as_area_create +
     104                        ?sys_as_area_resize +
     105                        ?sys_as_area_change_flags +
     106                        ?sys_as_area_destroy
     107                )*
     108};
     109
     110interface sys_ipc {
    93111                /* Fast synchronous IPC call */
    94112                unative_t sys_ipc_call_sync_fast(unative_t phoneid, unative_t method, unative_t arg1, unative_t arg2, unative_t arg3, ipc_data_t *data);
     
    124142                unative_t sys_ipc_poke(void);
    125143        protocol:
    126                 (?sys_ipc_call_sync_fast + ?sys_ipc_call_sync_slow + ?sys_ipc_call_async_fast + ?sys_ipc_call_async_slow + ?sys_ipc_forward_fast + ?sys_ipc_forward_slow + ?sys_ipc_answer_fast + ?sys_ipc_answer_slow + ?sys_ipc_hangup + ?sys_ipc_wait_for_call + ?sys_ipc_poke)*
    127 };
    128 
    129 interface kernel_event {
     144                (
     145                        ?sys_ipc_call_sync_fast +
     146                        ?sys_ipc_call_sync_slow +
     147                        ?sys_ipc_call_async_fast +
     148                        ?sys_ipc_call_async_slow +
     149                        ?sys_ipc_forward_fast +
     150                        ?sys_ipc_forward_slow +
     151                        ?sys_ipc_answer_fast +
     152                        ?sys_ipc_answer_slow +
     153                        ?sys_ipc_hangup +
     154                        ?sys_ipc_wait_for_call +
     155                        ?sys_ipc_poke
     156                )*
     157};
     158
     159interface sys_event {
    130160                /* Subscribe to kernel event notifications */
    131161                unative_t sys_event_subscribe(unative_t evno, unative_t method);
     
    134164};
    135165
    136 interface kernel_cap {
     166interface sys_cap {
    137167                /* Grant capabilities to a task */
    138168                unative_t sys_cap_grant(sysarg64_t *uspace_taskid_arg, cap_t caps);
     
    141171                unative_t sys_cap_revoke(sysarg64_t *uspace_taskid_arg, cap_t caps);
    142172        protocol:
    143                 (?sys_cap_grant + ?sys_cap_rewoke)*
    144 };
    145 
    146 interface kernel_ddi {
     173                (
     174                        ?sys_cap_grant +
     175                        ?sys_cap_rewoke
     176                )*
     177};
     178
     179interface sys_ddi {
    147180                /* Enable access I/O address space for the current task */
    148181                unative_t sys_enable_iospace(ddi_ioarg_t *uspace_io_arg);
     
    163196                unative_t sys_ipc_unregister_irq(inr_t inr, devno_t devno);
    164197        protocol:
    165                 (?sys_enable_iospace + ?sys_physmem_map + ?sys_device_assign_devno + ?sys_preempt_control + ?sys_ipc_register_irq + ?sys_ipc_unregister_irq)*
    166 };
    167 
    168 interface kernel_sysinfo {
     198                (
     199                        ?sys_enable_iospace +
     200                        ?sys_physmem_map +
     201                        ?sys_device_assign_devno +
     202                        ?sys_preempt_control +
     203                        ?sys_ipc_register_irq +
     204                        ?sys_ipc_unregister_irq
     205                )*
     206};
     207
     208interface sys_sysinfo {
    169209                /* Check for sysinfo key validity */
    170210                unative_t sys_sysinfo_valid(unative_t ptr, unative_t len);
     
    173213                unative_t sys_sysinfo_value(unatice_t ptr, unative_t len);
    174214        protocol:
    175                 (?sys_sysinfo_valid + ?sys_sysinfo_value)*
    176 };
    177 
    178 interface kernel_debug {
     215                (
     216                        ?sys_sysinfo_valid +
     217                        ?sys_sysinfo_value
     218                )*
     219};
     220
     221interface sys_debug {
    179222                /* Connect to the kernel debugging answerbox of a given task */
    180223                unative_t sys_ipc_connect_kbox(sysarg64_t *uspace_taskid_arg);
     
    188231 *****************************************************/
    189232
    190 frame kernel_console {
    191         provides:
    192                 kernel_klog kernel_klog;
    193                 kernel_console kernel_console;
    194 };
    195 
    196 frame kernel_proc {
    197         provides:
    198                 kernel_tls kernel_tls;
    199                 kernel_thread kernel_thread;
    200                 kernel_task kernel_task;
    201                 kernel_program kernel_program;
    202 };
    203 
    204 frame kernel_synch {
    205         provides:
    206                 kernel_futex kernel_futex;
    207                 kernel_smc kernel_smc;
    208 };
    209 
    210 frame kernel_mm {
    211         provides:
    212                 kernel_as kernel_as;
    213 };
    214 
    215 frame kernel_ipc {
    216         provides:
    217                 kernel_ipc kernel_ipc;
    218                 kernel_event kernel_event;
    219 };
    220 
    221 frame kernel_security {
    222         provides:
    223                 kernel_cap kernel_cap;
    224 };
    225 
    226 frame kernel_ddi {
    227         provides:
    228                 kernel_ddi kernel_ddi;
    229 };
    230 
    231 frame kernel_sysinfo {
    232         provides:
    233                 kernel_sysinfo kernel_sysinfo;
    234 };
    235 
    236 frame kernel_debug {
    237         provides:
    238                 kernel_debug kernel_debug;
     233frame sys_console {
     234        provides:
     235                sys_klog sys_klog;
     236                sys_console sys_console;
     237};
     238
     239frame sys_proc {
     240        provides:
     241                sys_tls sys_tls;
     242                sys_thread sys_thread;
     243                sys_task sys_task;
     244                sys_program sys_program;
     245};
     246
     247frame sys_synch {
     248        provides:
     249                sys_futex sys_futex;
     250                sys_smc sys_smc;
     251};
     252
     253frame sys_mm {
     254        provides:
     255                sys_as sys_as;
     256};
     257
     258frame sys_ipc {
     259        provides:
     260                sys_ipc sys_ipc;
     261                sys_event sys_event;
     262};
     263
     264frame sys_security {
     265        provides:
     266                sys_cap sys_cap;
     267};
     268
     269frame sys_ddi {
     270        provides:
     271                sys_ddi sys_ddi;
     272};
     273
     274frame sys_sysinfo {
     275        provides:
     276                sys_sysinfo sys_sysinfo;
     277};
     278
     279frame sys_debug {
     280        provides:
     281                sys_debug sys_debug;
    239282};
    240283
     
    245288
    246289architecture kernel {
    247         inst kernel_console kernel_console;
    248         inst kernel_proc kernel_proc;
    249         inst kernel_synch kernel_synch;
    250         inst kernel_mm kernel_mm;
    251         inst kernel_ipc kernel_ipc;
    252         inst kernel_security kernel_security;
    253         inst kernel_ddi kernel_ddi;
    254         inst kernel_sysinfo kernel_sysinfo;
    255         inst kernel_debug kernel_debug;
     290        inst sys_console sys_console;
     291        inst sys_proc sys_proc;
     292        inst sys_synch sys_synch;
     293        inst sys_mm sys_mm;
     294        inst sys_ipc sys_ipc;
     295        inst sys_security sys_security;
     296        inst sys_ddi sys_ddi;
     297        inst sys_sysinfo sys_sysinfo;
     298        inst sys_debug sys_debug;
    256299       
    257         delegate kernel_klog to kernel_console:kernel_klog;
    258         delegate kernel_console to kernel_console:kernel_console;
    259         delegate kernel_tls to kernel_proc:kernel_tls;
    260         delegate kernel_thread to kernel_proc:kernel_thread;
    261         delegate kernel_task to kernel_proc:kernel_task;
    262         delegate kernel_program to kernel_proc:kernel_program;
    263         delegate kernel_futex to kernel_synch:kernel_futex;
    264         delegate kernel_smc to kernel_synch:kernel_smc;
    265         delegate kernel_as to kernel_mm:kernel_as;
    266         delegate kernel_ipc to kernel_ipc:kernel_sys;
    267         delegate kernel_event to kernel_ipc:kernel_event;
    268         delegate kernel_cap to kernel_security:kernel_cap;
    269         delegate kernel_ddi to kernel_ddi:kernel_ddi;
    270         delegate kernel_sysinfo to kernel_sysinfo:kernel_sysinfo;
    271         delegate kernel_debug to kernel_debug:kernel_debug;
    272 };
     300        delegate sys_klog to sys_console:sys_klog;
     301        delegate sys_console to sys_console:sys_console;
     302        delegate sys_tls to sys_proc:sys_tls;
     303        delegate sys_thread to sys_proc:sys_thread;
     304        delegate sys_task to sys_proc:sys_task;
     305        delegate sys_program to sys_proc:sys_program;
     306        delegate sys_futex to sys_synch:sys_futex;
     307        delegate sys_smc to sys_synch:sys_smc;
     308        delegate sys_as to sys_mm:sys_as;
     309        delegate sys_ipc to sys_ipc:sys_ipc;
     310        delegate sys_event to sys_ipc:sys_event;
     311        delegate sys_cap to sys_security:sys_cap;
     312        delegate sys_ddi to sys_ddi:sys_ddi;
     313        delegate sys_sysinfo to sys_sysinfo:sys_sysinfo;
     314        delegate sys_debug to sys_debug:sys_debug;
     315};
Note: See TracChangeset for help on using the changeset viewer.