#include #include #include #include #include #include int open(const char *pathname, int flags, ...) { int ret = mio_open(pathname, flags); if (ret < 0) { __set_errno(-ret); return -1; } __set_errno(0); return ret; } int openat(int dirfd, const char *pathname, int flags, ...) { int ret = mio_openat(dirfd, pathname, flags); if (ret < 0) { __set_errno(-ret); return -1; } __set_errno(0); return ret; } ssize_t read(int fd, void *buf, size_t count) { ssize_t ret = mio_read(fd, buf, count); if (ret < 0) { __set_errno(-(int)ret); return -1; } __set_errno(0); return ret; } ssize_t write(int fd, const void *buf, size_t count) { ssize_t ret = mio_write(fd, buf, count); if (ret < 0) { __set_errno(-(int)ret); return -1; } __set_errno(0); return ret; } int close(int fd) { int ret = mio_close(fd); if (ret < 0) { __set_errno(-ret); return -1; } __set_errno(0); return ret; } pid_t getpid(void) { mx_info_task_t task_info; mx_status_t status = mx_object_get_info( mx_bootstrap_handle_get(MX_B_TASK_SELF), MX_INFO_TASK, &task_info, sizeof task_info); return status == MX_OK ? task_info.leader_id : (pid_t)-1; } pid_t gettid(void) { mx_info_task_t task_info; mx_status_t status = mx_object_get_info( mx_bootstrap_handle_get(MX_B_TASK_SELF), MX_INFO_TASK, &task_info, sizeof task_info); return status == MX_OK ? task_info.id : (pid_t)-1; }