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 9)


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_MUNMAP      260 /**< Ar    047 #define SOS_SYSCALL_ID_MUNMAP      260 /**< Args: start_uaddr size, retval=errno */
048 #define SOS_SYSCALL_ID_MPROTECT    261 /**< Ar    048 #define SOS_SYSCALL_ID_MPROTECT    261 /**< Args: start_uaddr size access_rights, retval=errno */
049 #define SOS_SYSCALL_ID_MRESIZE     262 /**< Ar    049 #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 !! 050 
051                                                   051 
052 /**                                               052 /**
053  * Heap management                                053  * Heap management
054  */                                               054  */
055 #define SOS_SYSCALL_ID_BRK         303 /**< Ar !! 055 #define SOS_SYSCALL_ID_BRK         263 /**< Args: 0/new_top_heap, retval=top_heap */
056                                                   056 
057 /**                                               057 /**
058  * File system interface                          058  * File system interface
059  */                                               059  */
060 #define SOS_SYSCALL_ID_MOUNT       555 /**< Ar    060 #define SOS_SYSCALL_ID_MOUNT       555 /**< Args: uaddr_src srclen uaddr_dst dstlen uaddr_fstype flags uaddr_args, retval=errno */
061 #define SOS_SYSCALL_ID_UMOUNT      556 /**< Ar    061 #define SOS_SYSCALL_ID_UMOUNT      556 /**< Args: uaddr_path pathlen, retval=errno */
062 #define SOS_SYSCALL_ID_SYNC        557 /**< Ar    062 #define SOS_SYSCALL_ID_SYNC        557 /**< Args: none, retval=errno */
063 #define SOS_SYSCALL_ID_VFSTAT64    558 /**< Ar    063 #define SOS_SYSCALL_ID_VFSTAT64    558 /**< Args: uaddr_path pathlen uaddr_vfstat_struct, retval=errno */
064                                                   064 
065 #define SOS_SYSCALL_ID_OPEN        559 /**< Ar    065 #define SOS_SYSCALL_ID_OPEN        559 /**< Args: path pathlen flags access_rights, retval=fd */
066 #define SOS_SYSCALL_ID_CLOSE       560 /**< Ar    066 #define SOS_SYSCALL_ID_CLOSE       560 /**< Args: fd, retval=errno */
067 #define SOS_SYSCALL_ID_READ        561 /**< Ar    067 #define SOS_SYSCALL_ID_READ        561 /**< Args: fd uaddr_buf uaddr_buflen, retval=errno */
068 #define SOS_SYSCALL_ID_READDIR     562 /**< Ar    068 #define SOS_SYSCALL_ID_READDIR     562 /**< Args: fd uaddr_dirent, retval=errno */
069 #define SOS_SYSCALL_ID_WRITE       563 /**< Ar    069 #define SOS_SYSCALL_ID_WRITE       563 /**< Args: fd uaddr_buf uaddr_buflen, retval=errno */
070 #define SOS_SYSCALL_ID_SEEK64      564 /**< Ar    070 #define SOS_SYSCALL_ID_SEEK64      564 /**< Args: fd uaddr_offset whence, retval=errno */
071 #define SOS_SYSCALL_ID_FTRUNCATE64 565 /**< Ar    071 #define SOS_SYSCALL_ID_FTRUNCATE64 565 /**< Args: fd length, retval=errno */
072 #define SOS_SYSCALL_ID_FSMMAP      566 /**< Ar    072 #define SOS_SYSCALL_ID_FSMMAP      566 /**< Args: &hint len prot flags fd uoffs64_hi uoffs64_lo, retval=errno */
073 #define SOS_SYSCALL_ID_FSYNC       567 /**< Ar    073 #define SOS_SYSCALL_ID_FSYNC       567 /**< Args: fd, retval=errno */
074 #define SOS_SYSCALL_ID_FCNTL       568 /**< Ar    074 #define SOS_SYSCALL_ID_FCNTL       568 /**< Args: fd cmd arg, retval=errno */
075 #define SOS_SYSCALL_ID_IOCTL       569 /**< Ar    075 #define SOS_SYSCALL_ID_IOCTL       569 /**< Args: fd cmd arg, retval=errno */
076                                                   076 
077 #define SOS_SYSCALL_ID_CREAT       570 /**< Ar    077 #define SOS_SYSCALL_ID_CREAT       570 /**< Args: uaddr_path pathlen access_rights, retval=errno */
078 #define SOS_SYSCALL_ID_LINK        571 /**< Ar    078 #define SOS_SYSCALL_ID_LINK        571 /**< Args: uaddr_oldpath oldpathlen uaddr_newpath newpathlen, retval=errno */
079 #define SOS_SYSCALL_ID_RENAME      572 /**< Ar    079 #define SOS_SYSCALL_ID_RENAME      572 /**< Args: uaddr_oldpath oldpathlen uaddr_newpath newpathlen, retval=errno */
080 #define SOS_SYSCALL_ID_UNLINK      573 /**< Ar    080 #define SOS_SYSCALL_ID_UNLINK      573 /**< Args: uaddr_path pathlen, retval=errno */
081 #define SOS_SYSCALL_ID_SYMLINK     574 /**< Ar    081 #define SOS_SYSCALL_ID_SYMLINK     574 /**< Args: uaddr_path pathlen uaddr_target targetlen, retval=errno */
082 #define SOS_SYSCALL_ID_MKNOD       575 /**< Ar    082 #define SOS_SYSCALL_ID_MKNOD       575 /**< Args: uaddr_path pathlen type access_rights major minor, retval=errno */
083                                                   083 
084 #define SOS_SYSCALL_ID_MKDIR       576 /**< Ar    084 #define SOS_SYSCALL_ID_MKDIR       576 /**< Args: uaddr_path pathlen access_rights, retval=errno */
085 #define SOS_SYSCALL_ID_RMDIR       577 /**< Ar    085 #define SOS_SYSCALL_ID_RMDIR       577 /**< Args: uaddr_path pathlen, retval=errno */
086                                                   086 
087 #define SOS_SYSCALL_ID_CHMOD       578 /**< Ar    087 #define SOS_SYSCALL_ID_CHMOD       578 /**< Args: uaddr_path pathlen access_rights, retval=errno */
088 #define SOS_SYSCALL_ID_STAT64      579 /**< Ar    088 #define SOS_SYSCALL_ID_STAT64      579 /**< Args: uaddr_path pathlen nofollow uaddr_stat_struct, retval=errno */
089                                                   089 
090 #define SOS_SYSCALL_ID_CHROOT      580 /**< Ar    090 #define SOS_SYSCALL_ID_CHROOT      580 /**< Args: uaddr_path pathlen, retval=errno */
091 #define SOS_SYSCALL_ID_CHDIR       581 /**< Ar    091 #define SOS_SYSCALL_ID_CHDIR       581 /**< Args: uaddr_path pathlen, retval=errno */
092 #define SOS_SYSCALL_ID_FCHDIR      582 /**< Ar    092 #define SOS_SYSCALL_ID_FCHDIR      582 /**< Args: fd, retval=errno */
093                                                   093 
094                                                   094 
095 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Ar    095 #define SOS_SYSCALL_ID_BOCHS_WRITE 43  /**< Args: string, retval=num_printed */
096                                                   096 
097                                                   097 
098 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE    098 #if defined(KERNEL_SOS) && !defined(ASM_SOURCE)
099                                                   099 
100 #include <sos/errno.h>                            100 #include <sos/errno.h>
101 #include <hwcore/cpu_context.h>                   101 #include <hwcore/cpu_context.h>
102                                                   102 
103 /**                                               103 /**
104  * "The" SOS syscall handler                      104  * "The" SOS syscall handler
105  *                                                105  *
106  * @param syscall_id The identifier of the sys    106  * @param syscall_id The identifier of the syscall service
107  * @param user_ctxt The user context making th    107  * @param user_ctxt The user context making the syscall
108  */                                               108  */
109 sos_ret_t sos_do_syscall(int syscall_id,          109 sos_ret_t sos_do_syscall(int syscall_id,
110                          const struct sos_cpu_    110                          const struct sos_cpu_state *user_ctxt);
111                                                   111 
112 #endif /* defined(KERNEL_SOS) && !defined(ASM_    112 #endif /* defined(KERNEL_SOS) && !defined(ASM_SOURCE) */
113                                                   113 
114 #endif /* _SOS_SYSCALL_H_ */                      114 #endif /* _SOS_SYSCALL_H_ */
                                                      

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