diff options
Diffstat (limited to 'src/sys/include')
-rw-r--r-- | src/sys/include/compat/unix/syscall.h | 15 | ||||
-rw-r--r-- | src/sys/include/fs/devfs.h | 1 | ||||
-rw-r--r-- | src/sys/include/os/filedesc.h | 34 | ||||
-rw-r--r-- | src/sys/include/os/kalloc.h | 8 | ||||
-rw-r--r-- | src/sys/include/os/ucred.h | 61 | ||||
-rw-r--r-- | src/sys/include/os/vnode.h | 52 | ||||
-rw-r--r-- | src/sys/include/sys/fcntl.h | 1 | ||||
-rw-r--r-- | src/sys/include/sys/mman.h | 9 | ||||
-rw-r--r-- | src/sys/include/sys/mount.h | 5 | ||||
-rw-r--r-- | src/sys/include/sys/namei.h | 2 | ||||
-rw-r--r-- | src/sys/include/sys/proc.h | 2 | ||||
-rw-r--r-- | src/sys/include/sys/seek.h | 37 | ||||
-rw-r--r-- | src/sys/include/sys/socket.h | 83 | ||||
-rw-r--r-- | src/sys/include/sys/syscall.h | 5 | ||||
-rw-r--r-- | src/sys/include/sys/types.h | 1 | ||||
-rw-r--r-- | src/sys/include/sys/ucred.h | 48 | ||||
-rw-r--r-- | src/sys/include/vm/map.h | 6 |
17 files changed, 366 insertions, 4 deletions
diff --git a/src/sys/include/compat/unix/syscall.h b/src/sys/include/compat/unix/syscall.h index a031872..5df3c51 100644 --- a/src/sys/include/compat/unix/syscall.h +++ b/src/sys/include/compat/unix/syscall.h @@ -31,12 +31,15 @@ #define _UNIX_SYSCALL_H_ 1 #include <sys/proc.h> +#include <sys/socket.h> #include <sys/param.h> #include <sys/mount.h> #include <sys/syscall.h> +#include <os/ucred.h> #include <os/iotap.h> #include <os/reboot.h> #include <dms/dms.h> +#include <vm/map.h> /* * Exit the current process - exit(2) syscall @@ -73,6 +76,11 @@ scret_t sys_read(struct syscall_args *scargs); */ scret_t sys_close(struct syscall_args *scargs); +/* + * Seek a file descriptor + */ +scret_t sys_lseek(struct syscall_args *scargs); + #ifdef _NEED_UNIX_SCTAB scret_t(*g_unix_sctab[])(struct syscall_args *) = { [SYS_none] = NULL, @@ -89,7 +97,12 @@ scret_t(*g_unix_sctab[])(struct syscall_args *) = { [SYS_waitpid] = sys_waitpid, [SYS_dmsio] = sys_dmsio, [SYS_read] = sys_read, - [SYS_close] = sys_close + [SYS_close] = sys_close, + [SYS_lseek] = sys_lseek, + [SYS_socket] = sys_socket, + [SYS_listen] = sys_listen, + [SYS_seteuid] = sys_seteuid, + [SYS_mmap] = sys_mmap }; #endif /* !_NEED_UNIX_SCTAB */ diff --git a/src/sys/include/fs/devfs.h b/src/sys/include/fs/devfs.h index ea96cdd..68c910f 100644 --- a/src/sys/include/fs/devfs.h +++ b/src/sys/include/fs/devfs.h @@ -45,6 +45,7 @@ struct devfs_node; struct dev_iobuf { void *buf; size_t count; + off_t off; }; /* diff --git a/src/sys/include/os/filedesc.h b/src/sys/include/os/filedesc.h index a6a2ac5..95400ed 100644 --- a/src/sys/include/os/filedesc.h +++ b/src/sys/include/os/filedesc.h @@ -30,6 +30,7 @@ #ifndef _OS_FILEDESC_H_ #define _OS_FILEDESC_H_ 1 +#include <sys/seek.h> #include <sys/types.h> #include <os/vnode.h> @@ -51,6 +52,18 @@ struct filedesc { }; /* + * Allocate a file descriptor from a specific process's + * file descriptor table + * + * @procp: Process to allocate fd from + * @fd_res: Result pointer is written here + * + * Returns zero on success, otherwise a less than + * zero value upon failure + */ +int fd_alloc(struct proc *procp, struct filedesc **fd_res); + +/* * Duplicate a file descriptor * * @procp: Process to duplicate from @@ -62,6 +75,18 @@ struct filedesc { struct filedesc *fd_dup(struct proc *procp, int fd); /* + * Look up a file descriptor that belongs to a specific + * process by using its fd number + * + * @procp: Process to look up + * @fd: File descriptor number + * + * Returns the file descriptor pointer on success, + * otherwise a less than zero value on failure + */ +struct filedesc *fd_get(struct proc *procp, int fd); + +/* * Initialize a process file descriptor table * and set up standard streams * @@ -117,4 +142,13 @@ ssize_t write(int fd, const void *buf, size_t count); */ ssize_t read(int fd, void *buf, size_t count); +/* + * Reposition the file offset of a file + * + * @fd: File descriptor to reposition + * @offset: Offset to move `fd' to + * @whence: How it should be repositioned + */ +off_t lseek(int fd, off_t offset, int whence); + #endif /* !_OS_FILEDESC_H_ */ diff --git a/src/sys/include/os/kalloc.h b/src/sys/include/os/kalloc.h index 143c4f9..aaaaa74 100644 --- a/src/sys/include/os/kalloc.h +++ b/src/sys/include/os/kalloc.h @@ -48,6 +48,14 @@ void *kalloc(size_t sz); /* + * Reallocates memory pool created by `dynalloc()' + * + * @old_ptr: Pointer to old pool. + * @newsize: Size of new pool. + */ +void *krealloc(void *old_ptr, size_t newsize); + +/* * Free a chunk of memory given to by * `ptr' * diff --git a/src/sys/include/os/ucred.h b/src/sys/include/os/ucred.h new file mode 100644 index 0000000..6e3e4b4 --- /dev/null +++ b/src/sys/include/os/ucred.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2025 Ian Marco Moffett and L5 engineers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _OS_UCRED_H_ +#define _OS_UCRED_H_ 1 + +#include <sys/syscall.h> +#include <sys/types.h> +#include <sys/ucred.h> +#include <sys/proc.h> + +/* + * Initialize user credientials + * + * @proc: Current process + * @cred: credientials to initialize + * + * XXX: 'proc' being NULL drops the creds to root + * + * Returns zero on success, otherwise a less + * than zero value on failure. + */ +int ucred_init(struct proc *proc, struct ucred *cred); + +/* + * Set effective user ID + */ +int seteuid(uid_t euid); + +/* + * Set EUID system call + */ +scret_t sys_seteuid(struct syscall_args *scargs); + +#endif /* !_OS_UCRED_H_ */ diff --git a/src/sys/include/os/vnode.h b/src/sys/include/os/vnode.h index 1bef1e2..9d8a3e6 100644 --- a/src/sys/include/os/vnode.h +++ b/src/sys/include/os/vnode.h @@ -32,6 +32,7 @@ #include <sys/types.h> #include <sys/atomic.h> +#include <sys/namei.h> /* Forward declarations */ struct vnode; @@ -43,12 +44,16 @@ struct vop; * @VTYPE_NONE: Vnode is yet to be assigned a type * @VTYPE_FILE: Vnode references a file * @VTYPE_DIR: Vnode references a directory + * @VTYPE_SOCK: Vnode references a socket + * @VTYPE_CDEV: Vnode references a character device * @__N_VTYPE: Number of valid nodes on the system */ typedef enum { VTYPE_NONE, VTYPE_FILE, VTYPE_DIR, + VTYPE_SOCK, + VTYPE_CDEV, __N_VTYPE } vtype_t; @@ -83,12 +88,35 @@ struct vop_rw_data { }; /* + * Arguments to create an entry within a + * filesystem + * + * @ndp: Path component to create + * @vtype: Vnode type + */ +struct vop_create_args { + struct nameidata *ndp; + vtype_t vtype; +}; + +/* + * Represents attributes of a vnode + * + * @size: File size in bytes + */ +struct vattr { + size_t size; +}; + +/* * Represents operations that can be performed on * a specific vnode. These are implemented as callbacks */ struct vop { + int(*getattr)(struct vnode *vp, struct vattr *res); int(*lookup)(struct vop_lookup_args *args); int(*reclaim)(struct vnode *vp, int flags); + int(*create)(struct vop_create_args *args); ssize_t(*write)(struct vop_rw_data *data); ssize_t(*read)(struct vop_rw_data *data); }; @@ -176,4 +204,28 @@ ssize_t vop_read(struct vnode *vp, char *data, off_t off, size_t len); */ int vop_reclaim(struct vnode *vp, int flags); +/* + * Create a node within a specific filesystem or + * directory + * + * @vp: Vnode of parent directory + * @ndp: Namei descriptor of path component + * @type: Vnode type to create with + * + * Returns zero on success, otherwise a less than zero + * value on failure. + */ +int vop_create(struct vnode *vp, struct nameidata *ndp, vtype_t type); + +/* + * Get the attributes of a file + * + * @vp: Vnode of file to get attributes of + * @res: Result of file to get attr of + * + * Returns zero on success, otherwise a less than + * zero value on failure + */ +int vop_getattr(struct vnode *vp, struct vattr *res); + #endif /* !_OS_VNODE_H_ */ diff --git a/src/sys/include/sys/fcntl.h b/src/sys/include/sys/fcntl.h index 30d2ec4..1ab3e71 100644 --- a/src/sys/include/sys/fcntl.h +++ b/src/sys/include/sys/fcntl.h @@ -43,6 +43,7 @@ #define O_RDONLY 0x00 #define O_RDWR BIT(1) #define O_WRONLY BIT(2) +#define O_CREAT BIT(3) /* File access mode flags */ #define O_ACCMODE (O_RDWR | O_WRONLY) diff --git a/src/sys/include/sys/mman.h b/src/sys/include/sys/mman.h index 7ae1ed2..0ad4959 100644 --- a/src/sys/include/sys/mman.h +++ b/src/sys/include/sys/mman.h @@ -30,7 +30,11 @@ #ifndef _SYS_MMAN_H_ #define _SYS_MMAN_H_ 1 +#include <sys/types.h> #include <sys/param.h> +#if !defined(_KERNEL) +#include <stddef.h> +#endif /* !_KERNEL */ #define PROT_READ BIT(0) #define PROT_WRITE BIT(1) @@ -39,4 +43,9 @@ #define PROT_USER BIT(3) #endif /* _KERNEL */ +/* + * Map memory pages + */ +void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); + #endif /* !_SYS_MMAN_H_ */ diff --git a/src/sys/include/sys/mount.h b/src/sys/include/sys/mount.h index 6d041ee..5f6fa6b 100644 --- a/src/sys/include/sys/mount.h +++ b/src/sys/include/sys/mount.h @@ -42,6 +42,7 @@ */ #define MOUNT_INITRD "initrd" /* Initial ramdisk */ #define MOUNT_DEVFS "devfs" /* Device filesystem */ +#define MOUNT_TMPFS "tmpfs" /* Temporary filesystem */ /* * The mount system call @@ -65,7 +66,8 @@ struct mount; /* Filesystem vfsops */ extern struct vfsops g_omar_vfsops; -extern struct vfsops g_devfs_vfops; +extern struct vfsops g_devfs_vfsops; +extern struct vfsops g_tmpfs_vfsops; /* * Represents a mountpoint @@ -133,7 +135,6 @@ struct fs_info { */ #define FS_ATTR_IMAGE BIT(0) /* Is an image kind e.g., OSMORA OMAR */ - /* * VFS operations vector * diff --git a/src/sys/include/sys/namei.h b/src/sys/include/sys/namei.h index 58307b1..9e78a4c 100644 --- a/src/sys/include/sys/namei.h +++ b/src/sys/include/sys/namei.h @@ -32,6 +32,8 @@ #include <os/vnode.h> +#define NAMEI_CREATE BIT(0) /* Create as we go */ + /* * Represents namei data that can be used for * looking up files diff --git a/src/sys/include/sys/proc.h b/src/sys/include/sys/proc.h index a547233..b188d50 100644 --- a/src/sys/include/sys/proc.h +++ b/src/sys/include/sys/proc.h @@ -30,6 +30,7 @@ #ifndef _SYS_PROC_H_ #define _SYS_PROC_H_ +#include <sys/ucred.h> #include <sys/types.h> #include <sys/syscall.h> #include <sys/cdefs.h> @@ -91,6 +92,7 @@ struct proc { struct penv_blk *envblk; struct ptrbox *envblk_box; struct proc *parent; + struct ucred cred; mac_level_t level; struct spinlock maplist_lock; sigtab_t sigtab; diff --git a/src/sys/include/sys/seek.h b/src/sys/include/sys/seek.h new file mode 100644 index 0000000..1edc50b --- /dev/null +++ b/src/sys/include/sys/seek.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 Ian Marco Moffett and L5 engineers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _SYS_SEEK_H_ +#define _SYS_SEEK_H_ 1 + +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +#endif /* !_SYS_SEEK_H_ */ diff --git a/src/sys/include/sys/socket.h b/src/sys/include/sys/socket.h new file mode 100644 index 0000000..0ca041f --- /dev/null +++ b/src/sys/include/sys/socket.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2025 Ian Marco Moffett and L5 engineers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _SYS_SOCKET_H_ +#define _SYS_SOCKET_H_ 1 + +#include <sys/types.h> +#include <sys/syscall.h> + +/* Address family defines */ +#define AF_UNIX 0x00 /* Local comms / IPC */ +#define AF_LOCAL AF_UNIX /* AF_UNIX alias */ + +/* Socket type defines */ +#define SOCK_STREAM 0x00 +#define SOCK_DGRAM 0x01 + +/* + * Get a socket as a file descriptor + * + * @domain: Socket domain (AF_*) + * @type: Socket type SOCK_* + * + * Returns file descriptor on success, otherwise + * a less than zero value on failure + */ +int socket(int domain, int type, int protocol); + +/* + * @socket: Socket to listen on + * @backlog: Max connections + */ +int listen(int socket, int backlog); + +#if defined(_KERNEL) + +/* + * Kernel representation of a socket + * + * @backlog: Maximum connections (< 0 means socket not active) + */ +struct ksocket { + int backlog; +}; + +/* + * Socket syscall + */ +scret_t sys_socket(struct syscall_args *scargs); + +/* + * Listen syscall + */ +scret_t sys_listen(struct syscall_args *scargs); + +#endif /* _KERNEL */ +#endif /* !_SYS_SOCKET_H_ */ diff --git a/src/sys/include/sys/syscall.h b/src/sys/include/sys/syscall.h index 77b7505..ee6ef48 100644 --- a/src/sys/include/sys/syscall.h +++ b/src/sys/include/sys/syscall.h @@ -58,6 +58,11 @@ #define SYS_dmsio 0x0D /* DMS I/O */ #define SYS_read 0x0E /* read a file descriptor */ #define SYS_close 0x0F /* close a file */ +#define SYS_lseek 0x10 /* seek to end of file */ +#define SYS_socket 0x11 /* get a socket fd */ +#define SYS_listen 0x12 /* listen on a socket */ +#define SYS_seteuid 0x13 /* set effective UID */ +#define SYS_mmap 0x14 /* map a virtual address */ typedef __ssize_t scret_t; typedef __ssize_t scarg_t; diff --git a/src/sys/include/sys/types.h b/src/sys/include/sys/types.h index b1d5994..745eed7 100644 --- a/src/sys/include/sys/types.h +++ b/src/sys/include/sys/types.h @@ -96,7 +96,6 @@ typedef __size_t uintptr_t; typedef __size_t off_t; typedef int pid_t; typedef int dev_t; -typedef __uint32_t uid_t; typedef __uint32_t mode_t; typedef __uint32_t ino_t; typedef __uint32_t nlink_t; diff --git a/src/sys/include/sys/ucred.h b/src/sys/include/sys/ucred.h new file mode 100644 index 0000000..ab44b6c --- /dev/null +++ b/src/sys/include/sys/ucred.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Ian Marco Moffett and L5 engineers + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the project nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _SYS_UCRED_H_ +#define _SYS_UCRED_H_ 1 + +#include <sys/types.h> + +/* + * Represents current user credientials + * + * @euid: Effective user ID + * @ruid: Real user ID + * @suid: Saved UID + */ +struct ucred { + uid_t euid; + uid_t ruid; + uid_t suid; +}; + +#endif /* !_SYS_UCRED_H_ */ diff --git a/src/sys/include/vm/map.h b/src/sys/include/vm/map.h index 69d7d73..8183b62 100644 --- a/src/sys/include/vm/map.h +++ b/src/sys/include/vm/map.h @@ -31,6 +31,7 @@ #define _VM_MAP_H_ 1 #include <sys/types.h> +#include <sys/syscall.h> #include <sys/mman.h> #include <machine/vas.h> /* standard */ #include <vm/mmu.h> @@ -52,4 +53,9 @@ */ int vm_map(struct vm_vas *vas, struct mmu_map *spec, size_t len, int prot); +/* + * POSIX mmap syscall + */ +scret_t sys_mmap(struct syscall_args *scargs); + #endif /* !_VM_MAP_H_ */ |