|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|
#include <sys/stat.h>#include <sys/ioctl.h>#include <sys/types.h>#include <sys/mman.h>#include <sys/select.h>#include <sys/time.h>#include <sys/socket.h>#include <poll.h>#include <stdio.h>#include <time.h>#include <termios.h>#include <signal.h>#include <dirent.h>#include <netdb.h>#include <netinet/in.h>#include <arpa/inet.h>#include <net/if.h>#include <miniOS/syscall.h>#include <errno.h>#include <stddef.h>#include <stdint.h>#include <stdarg.h>#include <string.h>#include <stdlib.h>#include <fcntl.h>
Classes | |
| struct | __dirstream |
| struct | sysinfo |
Macros | |
| #define | DIR_BUF_SIZE 4096 |
| #define | DNS_PORT 53 |
| #define | DNS_TIMEOUT_MS 5000 |
| #define | DNS_BUF_SIZE 512 |
| #define | DNS_NAME_MAX 256 |
| #define | DNS_MAX_CHAIN 8 |
Typedefs | |
| typedef void(* | _miniOS_sighandler_t) (int) |
Functions | |
| static long | inline_syscall (long nr, long arg1, long arg2, long arg3) |
| static long | inline_syscall6 (long nr, long arg1, long arg2, long arg3, long arg4, long arg5, long arg6) |
| void * | _sbrk (ptrdiff_t incr) |
| void * | sbrk (ptrdiff_t incr) |
| ssize_t | _write (int fd, const void *buf, size_t count) |
| ssize_t | write (int fd, const void *buf, size_t count) |
| ssize_t | _read (int fd, void *buf, size_t count) |
| ssize_t | read (int fd, void *buf, size_t count) |
| int | _open (const char *path, int flags,...) |
| int | open (const char *path, int flags,...) |
| int | _close (int fd) |
| int | close (int fd) |
| off_t | _lseek (int fd, off_t offset, int whence) |
| off_t | lseek (int fd, off_t offset, int whence) |
| void | _exit (int code) |
| void | exit (int code) |
| int | _fstat (int fd, struct stat *st) |
| int | fstat (int fd, struct stat *st) |
| int | _stat (const char *path, struct stat *st) |
| int | stat (const char *path, struct stat *st) |
| pid_t | _getpid (void) |
| pid_t | getpid (void) |
| pid_t | getppid (void) |
| pid_t | setsid (void) |
| int | setpgid (pid_t pid, pid_t pgid) |
| int | kill (pid_t pid, int sig) |
| pid_t | fork (void) |
| int | exec (const char *path) |
| int | execve (const char *path, char *const *argv, char *const *envp) |
| int | execv (const char *path, char *const *argv) |
| static const char * | _find_colon (const char *s) |
| static const char * | _find_slash (const char *s) |
| int | execvp (const char *file, char *const *argv) |
| pid_t | waitpid (pid_t pid, int *status, int options) |
| pid_t | _libc_wait (int *status) |
| int | pipe (int fds[2]) |
| int | dup (int oldfd) |
| int | dup2 (int oldfd, int newfd) |
| int | _ioctl (int fd, unsigned long request, void *arg) |
| int | ioctl (int fd, unsigned long request,...) |
| long | getdents (int fd, void *buf, unsigned int count) |
| void * | mmap (void *addr, size_t len, int prot, int flags, int fd, long offset) |
| int | munmap (void *addr, size_t len) |
| int | mount (const char *source, const char *target, const char *fstype, unsigned long flags, const void *data) |
| int | umount (const char *target) |
| int | mkdir (const char *path, mode_t mode) |
| int | rmdir (const char *path) |
| int | unlink (const char *path) |
| int | access (const char *path, int mode) |
| _miniOS_sighandler_t | signal (int sig, _miniOS_sighandler_t handler) |
| int | sigaction (int sig, const struct sigaction *act, struct sigaction *oact) |
| int | chdir (const char *path) |
| char * | getcwd (char *buf, size_t size) |
| int | poll (struct pollfd *fds, unsigned int nfds, int timeout) |
| int | select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) |
| int | fcntl (int fd, int cmd,...) |
| int | lstat (const char *path, struct stat *st) |
| ssize_t | readlink (const char *path, char *buf, size_t bufsiz) |
| unsigned int | sleep (unsigned int seconds) |
| int | nanosleep (const struct timespec *req, struct timespec *rem) |
| unsigned | alarm (unsigned seconds) |
| int | setitimer (int which, const struct itimerval *new_value, struct itimerval *old_value) |
| int | tcsetpgrp (int fd, pid_t pgrp) |
| pid_t | tcgetpgrp (int fd) |
| unsigned int | if_nametoindex (const char *ifname) |
| char * | if_indextoname (unsigned int ifindex, char *ifname) |
| struct if_nameindex * | if_nameindex (void) |
| void | if_freenameindex (struct if_nameindex *ptr) |
| int | clock_gettime (clockid_t clockid, struct timespec *tp) |
| int | sched_getcpu (void) |
| int | fchdir (int fd) |
| int | chroot (const char *path) |
| int | settimeofday (const struct timeval *tv, const struct timezone *tz) |
| int | setuid (unsigned int uid) |
| int | setgid (unsigned int gid) |
| int | seteuid (unsigned int euid) |
| int | setegid (unsigned int egid) |
| int | setgroups (int size, const unsigned int *list) |
| int | vfork (void) |
| int | link (const char *oldpath, const char *newpath) |
| int | socket (int domain, int type, int protocol) |
| int | bind (int sockfd, const struct sockaddr *addr, socklen_t addrlen) |
| int | listen (int sockfd, int backlog) |
| ssize_t | sendto (int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) |
| int | ttyname_r (int fd, char *buf, size_t buflen) |
| char * | realpath (const char *path, char *resolved) |
| DIR * | opendir (const char *path) |
| struct dirent * | readdir (DIR *dirp) |
| int | closedir (DIR *dirp) |
| void | rewinddir (DIR *dirp) |
| int | connect (int fd, const struct sockaddr *addr, socklen_t addrlen) |
| ssize_t | recvfrom (int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen) |
| ssize_t | recv (int sockfd, void *buf, size_t len, int flags) |
| int | setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen) |
| int | getsockopt (int fd, int level, int optname, void *optval, socklen_t *optlen) |
| int | getsockname (int fd, struct sockaddr *addr, socklen_t *addrlen) |
| int | getpeername (int fd, struct sockaddr *addr, socklen_t *addrlen) |
| int | shutdown (int sockfd, int how) |
| int | accept (int sockfd, struct sockaddr *addr, socklen_t *addrlen) |
| static int | streq (const char *a, const char *b) |
| static char * | dup_cstr (const char *src) |
| static int | parse_ipv4_octet (const char **cpp, unsigned *out) |
| in_addr_t | inet_addr (const char *cp) |
| int | inet_aton (const char *cp, struct in_addr *inp) |
| char * | inet_ntoa (struct in_addr in) |
| static int | parse_numeric_service (const char *service, int socktype, int *out_port) |
| struct servent * | getservbyname (const char *name, const char *proto) |
| static uint32_t | dns_read_nameserver (void) |
| static int | dns_encode_name (const char *name, uint8_t *out, int outlen) |
| static int | dns_decode_name (const uint8_t *pkt, int pktlen, int off, char *out, int outlen) |
| static int | dns_nameeq (const char *a, const char *b) |
| static int | resolve_ipv4_hostname (const char *node, struct in_addr *out_addr) |
| struct hostent * | gethostbyname (const char *name) |
| int | getaddrinfo (const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) |
| void | freeaddrinfo (struct addrinfo *res) |
| int | getnameinfo (const struct sockaddr *addr, unsigned int addrlen, char *host, unsigned int hostlen, char *serv, unsigned int servlen, int flags) |
| int | prctl (int option,...) |
| int | sysinfo (struct sysinfo *info) |
Variables | |
| static char * | _brk_ptr |
| int | h_errno |
| char ** | environ |
| static struct servent | g_service |
| static char * | g_service_aliases [] = { NULL } |
| static struct hostent | g_hostent |
| static char * | g_hostent_aliases [] = { NULL } |
| static char * | g_hostent_addr_list [] = { NULL, NULL } |
| static struct in_addr | g_hostent_addr |
| static char | g_hostent_name [256] |
| #define DIR_BUF_SIZE 4096 |
| #define DNS_BUF_SIZE 512 |
| #define DNS_MAX_CHAIN 8 |
| #define DNS_NAME_MAX 256 |
| #define DNS_PORT 53 |
| #define DNS_TIMEOUT_MS 5000 |
| typedef void(* _miniOS_sighandler_t) (int) |
| int _close | ( | int | fd | ) |


| void _exit | ( | int | code | ) |


|
static |

|
static |

| int _fstat | ( | int | fd, |
| struct stat * | st ) |


| pid_t _getpid | ( | void | ) |


| int _ioctl | ( | int | fd, |
| unsigned long | request, | ||
| void * | arg ) |


| pid_t _libc_wait | ( | int * | status | ) |


| off_t _lseek | ( | int | fd, |
| off_t | offset, | ||
| int | whence ) |


| int _open | ( | const char * | path, |
| int | flags, | ||
| ... ) |




| void * _sbrk | ( | ptrdiff_t | incr | ) |


| int _stat | ( | const char * | path, |
| struct stat * | st ) |




| int accept | ( | int | sockfd, |
| struct sockaddr * | addr, | ||
| socklen_t * | addrlen ) |


| int access | ( | const char * | path, |
| int | mode ) |

| unsigned alarm | ( | unsigned | seconds | ) |


| int bind | ( | int | sockfd, |
| const struct sockaddr * | addr, | ||
| socklen_t | addrlen ) |


| int chdir | ( | const char * | path | ) |


| int chroot | ( | const char * | path | ) |

| int clock_gettime | ( | clockid_t | clockid, |
| struct timespec * | tp ) |


| int close | ( | int | fd | ) |


| int closedir | ( | DIR * | dirp | ) |

| int connect | ( | int | fd, |
| const struct sockaddr * | addr, | ||
| socklen_t | addrlen ) |


|
static |

|
static |


|
static |

|
static |


| int dup | ( | int | oldfd | ) |


| int dup2 | ( | int | oldfd, |
| int | newfd ) |


|
static |


| int exec | ( | const char * | path | ) |

| int execv | ( | const char * | path, |
| char *const * | argv ) |

| int execve | ( | const char * | path, |
| char *const * | argv, | ||
| char *const * | envp ) |


| int execvp | ( | const char * | file, |
| char *const * | argv ) |

| void exit | ( | int | code | ) |

| int fchdir | ( | int | fd | ) |

| int fcntl | ( | int | fd, |
| int | cmd, | ||
| ... ) |


| pid_t fork | ( | void | ) |


| void freeaddrinfo | ( | struct addrinfo * | res | ) |
| int fstat | ( | int | fd, |
| struct stat * | st ) |


| int getaddrinfo | ( | const char * | node, |
| const char * | service, | ||
| const struct addrinfo * | hints, | ||
| struct addrinfo ** | res ) |

| char * getcwd | ( | char * | buf, |
| size_t | size ) |

| long getdents | ( | int | fd, |
| void * | buf, | ||
| unsigned int | count ) |

| struct hostent * gethostbyname | ( | const char * | name | ) |

| int getnameinfo | ( | const struct sockaddr * | addr, |
| unsigned int | addrlen, | ||
| char * | host, | ||
| unsigned int | hostlen, | ||
| char * | serv, | ||
| unsigned int | servlen, | ||
| int | flags ) |

| int getpeername | ( | int | fd, |
| struct sockaddr * | addr, | ||
| socklen_t * | addrlen ) |

| pid_t getpid | ( | void | ) |


| pid_t getppid | ( | void | ) |


| struct servent * getservbyname | ( | const char * | name, |
| const char * | proto ) |


| int getsockname | ( | int | fd, |
| struct sockaddr * | addr, | ||
| socklen_t * | addrlen ) |


| int getsockopt | ( | int | fd, |
| int | level, | ||
| int | optname, | ||
| void * | optval, | ||
| socklen_t * | optlen ) |

| void if_freenameindex | ( | struct if_nameindex * | ptr | ) |

| char * if_indextoname | ( | unsigned int | ifindex, |
| char * | ifname ) |

| struct if_nameindex * if_nameindex | ( | void | ) |


| unsigned int if_nametoindex | ( | const char * | ifname | ) |
| in_addr_t inet_addr | ( | const char * | cp | ) |

| int inet_aton | ( | const char * | cp, |
| struct in_addr * | inp ) |


| char * inet_ntoa | ( | struct in_addr | in | ) |

|
inlinestatic |
|
inlinestatic |

| int ioctl | ( | int | fd, |
| unsigned long | request, | ||
| ... ) |


| int kill | ( | pid_t | pid, |
| int | sig ) |

| int link | ( | const char * | oldpath, |
| const char * | newpath ) |

| int listen | ( | int | sockfd, |
| int | backlog ) |


| off_t lseek | ( | int | fd, |
| off_t | offset, | ||
| int | whence ) |


| int lstat | ( | const char * | path, |
| struct stat * | st ) |


| int mkdir | ( | const char * | path, |
| mode_t | mode ) |


| void * mmap | ( | void * | addr, |
| size_t | len, | ||
| int | prot, | ||
| int | flags, | ||
| int | fd, | ||
| long | offset ) |


| int mount | ( | const char * | source, |
| const char * | target, | ||
| const char * | fstype, | ||
| unsigned long | flags, | ||
| const void * | data ) |

| int munmap | ( | void * | addr, |
| size_t | len ) |


| int nanosleep | ( | const struct timespec * | req, |
| struct timespec * | rem ) |


| int open | ( | const char * | path, |
| int | flags, | ||
| ... ) |


| DIR * opendir | ( | const char * | path | ) |

|
static |

|
static |

| int pipe | ( | int | fds[2] | ) |


| int poll | ( | struct pollfd * | fds, |
| unsigned int | nfds, | ||
| int | timeout ) |


| int prctl | ( | int | option, |
| ... ) |


| struct dirent * readdir | ( | DIR * | dirp | ) |



| char * realpath | ( | const char * | path, |
| char * | resolved ) |



| ssize_t recvfrom | ( | int | sockfd, |
| void * | buf, | ||
| size_t | len, | ||
| int | flags, | ||
| struct sockaddr * | src_addr, | ||
| socklen_t * | addrlen ) |

|
static |


| void rewinddir | ( | DIR * | dirp | ) |

| int rmdir | ( | const char * | path | ) |

| void * sbrk | ( | ptrdiff_t | incr | ) |

| int sched_getcpu | ( | void | ) |

| int select | ( | int | nfds, |
| fd_set * | readfds, | ||
| fd_set * | writefds, | ||
| fd_set * | exceptfds, | ||
| struct timeval * | timeout ) |

| ssize_t sendto | ( | int | sockfd, |
| const void * | buf, | ||
| size_t | len, | ||
| int | flags, | ||
| const struct sockaddr * | dest_addr, | ||
| socklen_t | addrlen ) |

| int setegid | ( | unsigned int | egid | ) |

| int seteuid | ( | unsigned int | euid | ) |

| int setgid | ( | unsigned int | gid | ) |

| int setgroups | ( | int | size, |
| const unsigned int * | list ) |

| int setitimer | ( | int | which, |
| const struct itimerval * | new_value, | ||
| struct itimerval * | old_value ) |


| pid_t setsid | ( | void | ) |


| int setsockopt | ( | int | fd, |
| int | level, | ||
| int | optname, | ||
| const void * | optval, | ||
| socklen_t | optlen ) |

| int settimeofday | ( | const struct timeval * | tv, |
| const struct timezone * | tz ) |

| int setuid | ( | unsigned int | uid | ) |

| int shutdown | ( | int | sockfd, |
| int | how ) |

| int sigaction | ( | int | sig, |
| const struct sigaction * | act, | ||
| struct sigaction * | oact ) |


| _miniOS_sighandler_t signal | ( | int | sig, |
| _miniOS_sighandler_t | handler ) |


| unsigned int sleep | ( | unsigned int | seconds | ) |


| int socket | ( | int | domain, |
| int | type, | ||
| int | protocol ) |


| int stat | ( | const char * | path, |
| struct stat * | st ) |


|
static |

| int sysinfo | ( | struct sysinfo * | info | ) |

| pid_t tcgetpgrp | ( | int | fd | ) |

| int tcsetpgrp | ( | int | fd, |
| pid_t | pgrp ) |

| int ttyname_r | ( | int | fd, |
| char * | buf, | ||
| size_t | buflen ) |
| int umount | ( | const char * | target | ) |

| int unlink | ( | const char * | path | ) |


| int vfork | ( | void | ) |





|
static |
|
extern |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int h_errno |