SimpleOS

LXR

Navigation



Site hébergé par : enix

The LXR Cross Referencer for SOS

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Article:1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 6.5 ] [ 7 ] [ 7.5 ] [ 8 ] [ 9 ] [ 9.5 ]

Diff markup

Differences between /sos/syscall.h (Article 7) and /sos/syscall.h (Article 7.5)


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 /**< Args: start_func start_arg1 start_arg2 stack_size, retval=errno */
                                                   >> 039 #define SOS_SYSCALL_ID_NANOSLEEP   129 /**< Args: sec nanosec, retval=errno */
                                                   >> 040 
                                                   >> 041 
                                                   >> 042 /**
                                                   >> 043  * User memory mappings management
                                                   >> 044  */
                                                   >> 045 #define SOS_SYSCALL_ID_FORK        257 /**< Args: NONE, retval={father:child_pd, child:0} */
                                                   >> 046 #define SOS_SYSCALL_ID_EXEC        258 /**< Args: ptr_exec_path strlen_exec_path, retval=errno */
                                                   >> 047 #define SOS_SYSCALL_ID_MMAP        259 /**< Args: &hint len prot flags fd uoffs64_hi uoffs64_lo, retval=errno */
                                                   >> 048 #define SOS_SYSCALL_ID_MUNMAP      260 /**< Args: start_uaddr size, retval=errno */
                                                   >> 049 #define SOS_SYSCALL_ID_MPROTECT    261 /**< Args: start_uaddr size access_rights, retval=errno */
                                                   >> 050 #define SOS_SYSCALL_ID_MRESIZE     262 /**< Args: old_uaddr old_size ptr_new_uaddr new_size flags, retval=errno */
                                                   >> 051 
                                                   >> 052 
                                                   >> 053 /**
                                                   >> 054  * Heap management
                                                   >> 055  */
                                                   >> 056 #define SOS_SYSCALL_ID_BRK         263 /**< Args: 0/new_top_heap, retval=top_heap */
                                                   >> 057 
034 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Ar    058 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Args: string, retval=num_printed */
035                                                   059 
036                                                   060 
037 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE    061 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE)
038                                                   062 
039 #include <sos/errno.h>                            063 #include <sos/errno.h>
040 #include <hwcore/cpu_context.h>                   064 #include <hwcore/cpu_context.h>
041                                                   065 
042 /**                                               066 /**
043  * "The" SOS syscall handler                      067  * "The" SOS syscall handler
044  *                                                068  *
045  * @param syscall_id The identifier of the sys    069  * @param syscall_id The identifier of the syscall service
046  * @param user_ctxt The user context making th    070  * @param user_ctxt The user context making the syscall
047  */                                               071  */
048 sos_ret_t sos_do_syscall(int syscall_id,          072 sos_ret_t sos_do_syscall(int syscall_id,
049                          const struct sos_cpu_    073                          const struct sos_cpu_state *user_ctxt);
050                                                   074 
051 #endif /* defined(KERNEL_SOS) && !defined(ASM_    075 #endif /* defined(KERNEL_SOS) && !defined(ASM_SOURCE) */
052                                                   076 
053 #endif /* _SOS_SYSCALL_H_ */                      077 #endif /* _SOS_SYSCALL_H_ */
                                                      

source navigation ] diff markup ] identifier search ] general search ]