|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
|||
|
001 /* Copyright (C) 2005 David Decotigny 001 /* Copyright (C) 2005 David Decotigny 002 002 003 This program is free software; you can redi 003 This program is free software; you can redistribute it and/or 004 modify it under the terms of the GNU Genera 004 modify it under the terms of the GNU General Public License 005 as published by the Free Software Foundatio 005 as published by the Free Software Foundation; either version 2 006 of the License, or (at your option) any lat 006 of the License, or (at your option) any later version. 007 007 008 This program is distributed in the hope tha 008 This program is distributed in the hope that it will be useful, 009 but WITHOUT ANY WARRANTY; without even the 009 but WITHOUT ANY WARRANTY; without even the implied warranty of 010 MERCHANTABILITY or FITNESS FOR A PARTICULAR 010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 011 GNU General Public License for more details 011 GNU General Public License for more details. 012 012 013 You should have received a copy of the GNU 013 You should have received a copy of the GNU General Public License 014 along with this program; if not, write to t 014 along with this program; if not, write to the Free Software 015 Foundation, Inc., 59 Temple Place - Suite 3 015 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 016 USA. 016 USA. 017 */ 017 */ 018 #ifndef _SOS_SYSCALL_H_ 018 #ifndef _SOS_SYSCALL_H_ 019 #define _SOS_SYSCALL_H_ 019 #define _SOS_SYSCALL_H_ 020 020 021 /** 021 /** 022 * @file syscall.h 022 * @file syscall.h 023 * 023 * 024 * SOS Syscalls identifiers and handler. The h 024 * SOS Syscalls identifiers and handler. The handler is called by the 025 * underlying assembler routine (see hwcore/sy 025 * underlying assembler routine (see hwcore/syscall.h) 026 */ 026 */ 027 027 028 028 029 /** 029 /** 030 * The user services offered by the SOS kernel 030 * The user services offered by the SOS kernel 031 */ 031 */ 032 #define SOS_SYSCALL_ID_EXIT 256 /**< Ar 032 #define SOS_SYSCALL_ID_EXIT 256 /**< Args: retval, retval=NONE */ 033 033 034 << 035 /** << 036 * Basic low-level user thread API << 037 */ << 038 #define SOS_SYSCALL_ID_NEW_THREAD 128 /**< Ar << 039 #define SOS_SYSCALL_ID_NANOSLEEP 129 /**< Ar << 040 << 041 << 042 /** << 043 * User memory mappings management << 044 */ << 045 #define SOS_SYSCALL_ID_FORK 257 /**< Ar << 046 #define SOS_SYSCALL_ID_EXEC 258 /**< Ar << 047 #define SOS_SYSCALL_ID_MMAP 259 /**< Ar << 048 #define SOS_SYSCALL_ID_MUNMAP 260 /**< Ar << 049 #define SOS_SYSCALL_ID_MPROTECT 261 /**< Ar << 050 #define SOS_SYSCALL_ID_MRESIZE 262 /**< Ar << 051 << 052 << 053 /** << 054 * Heap management << 055 */ << 056 #define SOS_SYSCALL_ID_BRK 263 /**< Ar << 057 << 058 #define SOS_SYSCALL_ID_BOCHS_WRITE 43 /**< Ar 034 #define SOS_SYSCALL_ID_BOCHS_WRITE 43 /**< Args: string, retval=num_printed */ 059 035 060 036 061 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE 037 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE) 062 038 063 #include <sos/errno.h> 039 #include <sos/errno.h> 064 #include <hwcore/cpu_context.h> 040 #include <hwcore/cpu_context.h> 065 041 066 /** 042 /** 067 * "The" SOS syscall handler 043 * "The" SOS syscall handler 068 * 044 * 069 * @param syscall_id The identifier of the sys 045 * @param syscall_id The identifier of the syscall service 070 * @param user_ctxt The user context making th 046 * @param user_ctxt The user context making the syscall 071 */ 047 */ 072 sos_ret_t sos_do_syscall(int syscall_id, 048 sos_ret_t sos_do_syscall(int syscall_id, 073 const struct sos_cpu_ 049 const struct sos_cpu_state *user_ctxt); 074 050 075 #endif /* defined(KERNEL_SOS) && !defined(ASM_ 051 #endif /* defined(KERNEL_SOS) && !defined(ASM_SOURCE) */ 076 052 077 #endif /* _SOS_SYSCALL_H_ */ 053 #endif /* _SOS_SYSCALL_H_ */
[ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |