~jsvoboda/helenos/dnsr

« back to all changes in this revision

Viewing changes to kernel/generic/include/syscall/syscall.h

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2005 Martin Decky
 
3
 * All rights reserved.
 
4
 *
 
5
 * Redistribution and use in source and binary forms, with or without
 
6
 * modification, are permitted provided that the following conditions
 
7
 * are met:
 
8
 *
 
9
 * - Redistributions of source code must retain the above copyright
 
10
 *   notice, this list of conditions and the following disclaimer.
 
11
 * - Redistributions in binary form must reproduce the above copyright
 
12
 *   notice, this list of conditions and the following disclaimer in the
 
13
 *   documentation and/or other materials provided with the distribution.
 
14
 * - The name of the author may not be used to endorse or promote products
 
15
 *   derived from this software without specific prior written permission.
 
16
 *
 
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
19
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 
20
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
22
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
23
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
27
 */
 
28
 
 
29
/** @addtogroup generic
 
30
 * @{
 
31
 */
 
32
/** @file
 
33
 */
 
34
 
 
35
#ifndef KERN_SYSCALL_H_
 
36
#define KERN_SYSCALL_H_
 
37
 
 
38
typedef enum {
 
39
        SYS_KLOG = 0,
 
40
        SYS_TLS_SET = 1, /* Hardcoded in AMD64, IA32 uspace - fibril.S */
 
41
        
 
42
        SYS_THREAD_CREATE,
 
43
        SYS_THREAD_EXIT,
 
44
        SYS_THREAD_GET_ID,
 
45
        
 
46
        SYS_TASK_GET_ID,
 
47
        SYS_TASK_SET_NAME,
 
48
        SYS_PROGRAM_SPAWN_LOADER,
 
49
        
 
50
        SYS_FUTEX_SLEEP,
 
51
        SYS_FUTEX_WAKEUP,
 
52
        SYS_SMC_COHERENCE,
 
53
        
 
54
        SYS_AS_AREA_CREATE,
 
55
        SYS_AS_AREA_RESIZE,
 
56
        SYS_AS_AREA_CHANGE_FLAGS,
 
57
        SYS_AS_AREA_DESTROY,
 
58
        
 
59
        SYS_IPC_CALL_SYNC_FAST,
 
60
        SYS_IPC_CALL_SYNC_SLOW,
 
61
        SYS_IPC_CALL_ASYNC_FAST,
 
62
        SYS_IPC_CALL_ASYNC_SLOW,
 
63
        SYS_IPC_ANSWER_FAST,
 
64
        SYS_IPC_ANSWER_SLOW,
 
65
        SYS_IPC_FORWARD_FAST,
 
66
        SYS_IPC_FORWARD_SLOW,
 
67
        SYS_IPC_WAIT,
 
68
        SYS_IPC_HANGUP,
 
69
        SYS_IPC_REGISTER_IRQ,
 
70
        SYS_IPC_UNREGISTER_IRQ,
 
71
 
 
72
        SYS_EVENT_SUBSCRIBE,
 
73
        
 
74
        SYS_CAP_GRANT,
 
75
        SYS_CAP_REVOKE,
 
76
        
 
77
        SYS_DEVICE_ASSIGN_DEVNO,
 
78
        SYS_PHYSMEM_MAP,
 
79
        SYS_IOSPACE_ENABLE,
 
80
        SYS_PREEMPT_CONTROL,
 
81
        
 
82
        SYS_SYSINFO_VALID,
 
83
        SYS_SYSINFO_VALUE,
 
84
        
 
85
        SYS_DEBUG_ENABLE_CONSOLE,
 
86
        SYS_DEBUG_DISABLE_CONSOLE,
 
87
        SYS_IPC_CONNECT_KBOX,
 
88
        SYSCALL_END
 
89
} syscall_t;
 
90
 
 
91
#ifdef KERNEL
 
92
 
 
93
#include <arch/types.h>
 
94
 
 
95
typedef unative_t (*syshandler_t)(unative_t, unative_t, unative_t, unative_t,
 
96
    unative_t, unative_t);
 
97
 
 
98
extern syshandler_t syscall_table[SYSCALL_END];
 
99
extern unative_t syscall_handler(unative_t, unative_t, unative_t, unative_t,
 
100
    unative_t, unative_t, unative_t);
 
101
extern unative_t sys_tls_set(unative_t);
 
102
 
 
103
#endif
 
104
 
 
105
#endif
 
106
 
 
107
/** @}
 
108
 */