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 9.5) 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                                                   034 
035 /**                                               035 /**
036  * Basic low-level user thread API                036  * Basic low-level user thread API
037  */                                               037  */
038 #define SOS_SYSCALL_ID_NEW_THREAD  128 /**< Ar    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 /**< Ar    039 #define SOS_SYSCALL_ID_NANOSLEEP   129 /**< Args: sec nanosec, retval=errno */
040                                                   040 
041                                                   041 
042 /**                                               042 /**
043  * User memory mappings management                043  * User memory mappings management
044  */                                               044  */
045 #define SOS_SYSCALL_ID_FORK        257 /**< Ar    045 #define SOS_SYSCALL_ID_FORK        257 /**< Args: NONE, retval={father:child_pd, child:0} */
046 #define SOS_SYSCALL_ID_EXEC        258 /**< Ar    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 */
047 #define SOS_SYSCALL_ID_MUNMAP      260 /**< Ar    048 #define SOS_SYSCALL_ID_MUNMAP      260 /**< Args: start_uaddr size, retval=errno */
048 #define SOS_SYSCALL_ID_MPROTECT    261 /**< Ar    049 #define SOS_SYSCALL_ID_MPROTECT    261 /**< Args: start_uaddr size access_rights, retval=errno */
049 #define SOS_SYSCALL_ID_MRESIZE     262 /**< Ar    050 #define SOS_SYSCALL_ID_MRESIZE     262 /**< Args: old_uaddr old_size ptr_new_uaddr new_size flags, retval=errno */
050 #define SOS_SYSCALL_ID_MSYNC       263 /**< Ar << 
051                                                   051 
052 /**                                            << 
053  * Heap management                             << 
054  */                                            << 
055 #define SOS_SYSCALL_ID_BRK         303 /**< Ar << 
056                                                   052 
057 /**                                               053 /**
058  * File system interface                       !! 054  * Heap management
059  */                                               055  */
060 #define SOS_SYSCALL_ID_MOUNT       555 /**< Ar !! 056 #define SOS_SYSCALL_ID_BRK         263 /**< Args: 0/new_top_heap, retval=top_heap */
061 #define SOS_SYSCALL_ID_UMOUNT      556 /**< Ar << 
062 #define SOS_SYSCALL_ID_SYNC        557 /**< Ar << 
063 #define SOS_SYSCALL_ID_VFSTAT64    558 /**< Ar << 
064                                                << 
065 #define SOS_SYSCALL_ID_OPEN        559 /**< Ar << 
066 #define SOS_SYSCALL_ID_CLOSE       560 /**< Ar << 
067 #define SOS_SYSCALL_ID_READ        561 /**< Ar << 
068 #define SOS_SYSCALL_ID_READDIR     562 /**< Ar << 
069 #define SOS_SYSCALL_ID_WRITE       563 /**< Ar << 
070 #define SOS_SYSCALL_ID_SEEK64      564 /**< Ar << 
071 #define SOS_SYSCALL_ID_FTRUNCATE64 565 /**< Ar << 
072 #define SOS_SYSCALL_ID_FSMMAP      566 /**< Ar << 
073 #define SOS_SYSCALL_ID_FSYNC       567 /**< Ar << 
074 #define SOS_SYSCALL_ID_FCNTL       568 /**< Ar << 
075 #define SOS_SYSCALL_ID_IOCTL       569 /**< Ar << 
076                                                << 
077 #define SOS_SYSCALL_ID_CREAT       570 /**< Ar << 
078 #define SOS_SYSCALL_ID_LINK        571 /**< Ar << 
079 #define SOS_SYSCALL_ID_RENAME      572 /**< Ar << 
080 #define SOS_SYSCALL_ID_UNLINK      573 /**< Ar << 
081 #define SOS_SYSCALL_ID_SYMLINK     574 /**< Ar << 
082 #define SOS_SYSCALL_ID_MKNOD       575 /**< Ar << 
083                                                << 
084 #define SOS_SYSCALL_ID_MKDIR       576 /**< Ar << 
085 #define SOS_SYSCALL_ID_RMDIR       577 /**< Ar << 
086                                                << 
087 #define SOS_SYSCALL_ID_CHMOD       578 /**< Ar << 
088 #define SOS_SYSCALL_ID_STAT64      579 /**< Ar << 
089                                                << 
090 #define SOS_SYSCALL_ID_CHROOT      580 /**< Ar << 
091 #define SOS_SYSCALL_ID_CHDIR       581 /**< Ar << 
092 #define SOS_SYSCALL_ID_FCHDIR      582 /**< Ar << 
093                                                << 
094                                                   057 
095 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Ar    058 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Args: string, retval=num_printed */
096                                                   059 
097                                                   060 
098 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE    061 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE)
099                                                   062 
100 #include <sos/errno.h>                            063 #include <sos/errno.h>
101 #include <hwcore/cpu_context.h>                   064 #include <hwcore/cpu_context.h>
102                                                   065 
103 /**                                               066 /**
104  * "The" SOS syscall handler                      067  * "The" SOS syscall handler
105  *                                                068  *
106  * @param syscall_id The identifier of the sys    069  * @param syscall_id The identifier of the syscall service
107  * @param user_ctxt The user context making th    070  * @param user_ctxt The user context making the syscall
108  */                                               071  */
109 sos_ret_t sos_do_syscall(int syscall_id,          072 sos_ret_t sos_do_syscall(int syscall_id,
110                          const struct sos_cpu_    073                          const struct sos_cpu_state *user_ctxt);
111                                                   074 
112 #endif /* defined(KERNEL_SOS) && !defined(ASM_    075 #endif /* defined(KERNEL_SOS) && !defined(ASM_SOURCE) */
113                                                   076 
114 #endif /* _SOS_SYSCALL_H_ */                      077 #endif /* _SOS_SYSCALL_H_ */
                                                      

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