Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
|
#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "ruby/io.h"
#include "ruby/util.h"
#include <fcntl.h>
#include <process.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
#include <ctype.h>
#include <windows.h>
#include <winbase.h>
#include <wincon.h>
#include <share.h>
#include <shlobj.h>
#include <mbstring.h>
#include <shlwapi.h>
#include <crtdbg.h>
#include <rtcapi.h>
#include "ruby/win32.h"
#include "ruby/vm.h"
#include "win32/dir.h"
#include "win32/file.h"
#include "id.h"
#include "internal.h"
#include "internal/enc.h"
#include "internal/object.h"
#include "internal/static_assert.h"
#include "ruby/internal/stdbool.h"
#include "encindex.h"
#include "dln.h"
#include "dln_find.c"
#include <sys/timeb.h>
#include "missing/nextafter.c"
Go to the source code of this file.
Data Structures | |
struct | constat |
struct | ChildRecord |
struct | _NtCmdLineElement |
struct | ioinfo |
struct | WSAMSG |
struct | NET_LUID |
struct | FILE_ID_128 |
struct | FILE_ID_INFO |
struct | asynchronous_arg_t |
struct | w32_io_info_t |
struct | w32_io_info_args |
Macros | |
#define | isdirsep(x) ((x) == '/' || (x) == '\\') |
#define | DLN_FIND_EXTRA_ARG_DECL ,UINT cp |
#define | DLN_FIND_EXTRA_ARG ,cp |
#define | rb_w32_stati128(path, st) w32_stati128(path, st, cp, FALSE) |
#define | getenv(name) w32_getenv(name, cp) /* Necessarily For dln.c */ |
#define | CharNext(p) CharNextExA(cp, (p), 0) |
#define | dln_find_exe_r rb_w32_udln_find_exe_r |
#define | dln_find_file_r rb_w32_udln_find_file_r |
#define | dln_find_exe_r(fname, path, buf, size) rb_w32_udln_find_exe_r(fname, path, buf, size, cp) |
#define | dln_find_file_r(fname, path, buf, size) rb_w32_udln_find_file_r(fname, path, buf, size, cp) |
#define | ENV_MAX 512 |
#define | enough_to_get(n) (--(n) >= 0) |
#define | enough_to_put(n) (--(n) >= 0) |
#define | Debug(something) /* nothing */ |
#define | TO_SOCKET(x) _get_osfhandle(x) |
#define | RUBY_CRITICAL if (0) {} else /* just remark */ |
#define | ERROR_PIPE_LOCAL 229L |
#define | map_errno rb_w32_map_errno |
#define | LK_ERR(f, i) |
#define | LK_LEN ULONG_MAX |
#define | CSIDL_LOCAL_APPDATA 28 |
#define | CSIDL_COMMON_APPDATA 35 |
#define | CSIDL_WINDOWS 36 |
#define | CSIDL_SYSTEM 37 |
#define | CSIDL_PROFILE 40 |
#define | env wk.val |
#define | set_env_val(vname) |
#define | conlist_disabled ((st_table *)-1) |
#define | MAKE_SOCKDATA(af, fl) ((int)((((int)af)<<4)|((fl)&0xFFFF))) |
#define | GET_FAMILY(v) ((int)(((v)>>4)&0xFFFF)) |
#define | GET_FLAGS(v) ((int)((v)&0xFFFF)) |
#define | MAXCHILDNUM 256 /* max num of child processes */ |
#define | FOREACH_CHILD(v) |
#define | END_FOREACH_CHILD } while (0) |
#define | InternalCmdsMax 8 |
#define | STRNDUPV(ptr, v, src, len) (((char *)memcpy(((ptr) = ALLOCV((v), (len) + 1)), (src), (len)))[len] = 0) |
#define | filecp rb_w32_filecp |
#define | mbstr_to_wstr rb_w32_mbstr_to_wstr |
#define | wstr_to_mbstr rb_w32_wstr_to_mbstr |
#define | acp_to_wstr(str, plen) mbstr_to_wstr(CP_ACP, str, -1, plen) |
#define | wstr_to_acp(str, plen) wstr_to_mbstr(CP_ACP, str, -1, plen) |
#define | filecp_to_wstr(str, plen) mbstr_to_wstr(filecp(), str, -1, plen) |
#define | wstr_to_filecp(str, plen) wstr_to_mbstr(filecp(), str, -1, plen) |
#define | utf8_to_wstr(str, plen) mbstr_to_wstr(CP_UTF8, str, -1, plen) |
#define | wstr_to_utf8(str, plen) wstr_to_mbstr(CP_UTF8, str, -1, plen) |
#define | NTGLOB 0x1 |
#define | NTMALLOC 0x2 |
#define | NTSTRING 0x4 |
#define | GetBit(bits, i) ((bits)[(i) / CHAR_BIT] & (1 << (i) % CHAR_BIT)) |
#define | SetBit(bits, i) ((bits)[(i) / CHAR_BIT] |= (1 << (i) % CHAR_BIT)) |
#define | BitOfIsDir(n) ((n) * 2) |
#define | BitOfIsRep(n) ((n) * 2 + 1) |
#define | DIRENT_PER_CHAR (CHAR_BIT / 2) |
#define | FILE_COUNT(stream) stream->_cnt |
#define | FILE_READPTR(stream) stream->_ptr |
#define | FILE_FILENO(stream) stream->_file |
#define | _CRTIMP __declspec(dllimport) |
#define | IOINFO_L2E 5 |
#define | IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) |
#define | _osfhnd(i) (_pioinfo(i)->osfhnd) |
#define | _osfile(i) (_pioinfo(i)->osfile) |
#define | rb_acrt_lowio_lock_fh(i) EnterCriticalSection(&_pioinfo(i)->lock) |
#define | rb_acrt_lowio_unlock_fh(i) LeaveCriticalSection(&_pioinfo(i)->lock) |
#define | pioinfo_extra 0 |
#define | _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = osfh) |
#define | _set_osflags(fh, flags) (_osfile(fh) = (flags)) |
#define | FOPEN 0x01 /* file handle open */ |
#define | FEOFLAG 0x02 /* end of file has been encountered */ |
#define | FPIPE 0x08 /* file handle refers to a pipe */ |
#define | FNOINHERIT 0x10 /* file handle opened O_NOINHERIT */ |
#define | FAPPEND 0x20 /* file handle opened O_APPEND */ |
#define | FDEV 0x40 /* file handle refers to device */ |
#define | FTEXT 0x80 /* file handle is in text mode */ |
#define | open_null(fd) |
#define | ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4 |
#define | ROOT_UID 0 |
#define | ROOT_GID 0 |
#define | WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} |
#define | WSAID_WSASENDMSG {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}} |
#define | msghdr_to_wsamsg(msg, wsamsg) |
#define | hex2byte(str) ((isdigit(*(str)) ? *(str) - '0' : toupper(*(str)) - 'A' + 10) << 4 | (isdigit(*((str) + 1)) ? *((str) + 1) - '0' : toupper(*((str) + 1)) - 'A' + 10)) |
#define | FILE_DEVICE_FILE_SYSTEM 0x00000009 |
#define | FSCTL_GET_REPARSE_POINT ((0x9<<16)|(42<<2)) |
#define | IO_REPARSE_TAG_SYMLINK 0xA000000CL |
#define | SYMBOLIC_LINK_FLAG_DIRECTORY (0x1) |
#define | SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE (0x2) |
#define | COPY_STAT(src, dest, size_cast) |
#define | FileIdInfo 0x12 |
#define | yield_once() Sleep(0) |
#define | yield_until(condition) do yield_once(); while (!(condition)) |
#define | set_new_std_handle(newfd, handle) |
#define | set_new_std_fd(newfd) set_new_std_handle(newfd, (HANDLE)rb_w32_get_osfhandle(newfd)) |
#define | FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) |
#define | BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY) |
#define | constat_attr_color_reverse(attr) |
#define | COMMON_LVB_UNDERSCORE 0x8000 |
#define | INVALID_SET_FILE_POINTER ((DWORD)-1) |
Typedefs | |
typedef struct _NtCmdLineElement | NtCmdLineElement |
typedef DWORD(WINAPI * | get_final_path_func) (HANDLE, WCHAR *, DWORD, DWORD) |
typedef DWORD(WINAPI * | cigl_t) (const GUID *, NET_LUID *) |
typedef DWORD(WINAPI * | cilnA_t) (const NET_LUID *, char *, size_t) |
Enumerations | |
enum | { constat_init = -2 , constat_esc = -1 , constat_seq = 0 } |
Functions | |
int | rb_w32_reparse_symlink_p (const WCHAR *path) |
int | rb_w32_wait_events (HANDLE *events, int num, DWORD timeout) |
VALUE | rb_w32_conv_from_wchar (const WCHAR *wstr, rb_encoding *enc) |
int | ruby_brace_glob_with_enc (const char *str, int flags, ruby_glob_func *func, VALUE arg, rb_encoding *enc) |
int | rb_w32_map_errno (DWORD winerr) |
DWORD | rb_w32_osver (void) |
int | flock (int fd, int oper) |
VALUE | rb_w32_special_folder (int type) |
UINT | rb_w32_system_tmpdir (WCHAR *path, UINT len) |
WCHAR * | rb_w32_home_dir (void) |
void | rb_w32_sysinit (int *argc, char ***argv) |
char * | getlogin (void) |
SOCKET | rb_w32_get_osfhandle (int fh) |
HANDLE | rb_w32_start_process (const char *abspath, char *const *argv, int out_fd) |
rb_pid_t | rb_w32_spawn (int mode, const char *cmd, const char *prog) |
rb_pid_t | rb_w32_uspawn (int mode, const char *cmd, const char *prog) |
rb_pid_t | rb_w32_aspawn_flags (int mode, const char *prog, char *const *argv, DWORD flags) |
rb_pid_t | rb_w32_uaspawn_flags (int mode, const char *prog, char *const *argv, DWORD flags) |
rb_pid_t | rb_w32_aspawn (int mode, const char *prog, char *const *argv) |
rb_pid_t | rb_w32_uaspawn (int mode, const char *prog, char *const *argv) |
char * | rb_w32_wstr_to_mbstr (UINT cp, const WCHAR *wstr, int clen, long *plen) |
WCHAR * | rb_w32_mbstr_to_wstr (UINT cp, const char *str, int clen, long *plen) |
DIR * | rb_w32_opendir (const char *filename) |
DIR * | rb_w32_uopendir (const char *filename) |
char * | rb_w32_conv_from_wstr (const WCHAR *wstr, long *lenp, rb_encoding *enc) |
struct direct * | rb_w32_readdir (DIR *dirp, rb_encoding *enc) |
struct direct * | rb_w32_ureaddir (DIR *dirp) |
long | rb_w32_telldir (DIR *dirp) |
void | rb_w32_seekdir (DIR *dirp, long loc) |
void | rb_w32_rewinddir (DIR *dirp) |
void | rb_w32_closedir (DIR *dirp) |
int | rb_w32_io_cancelable_p (int fd) |
int | rb_w32_is_socket (int fd) |
char * | rb_w32_strerror (int e) |
rb_uid_t | getuid (void) |
rb_uid_t | geteuid (void) |
rb_gid_t | getgid (void) |
rb_gid_t | getegid (void) |
int | setuid (rb_uid_t uid) |
int | setgid (rb_gid_t gid) |
int | ioctl (int i, int u,...) |
void | rb_w32_fdset (int fd, fd_set *set) |
void | rb_w32_fdclr (int fd, fd_set *set) |
int | rb_w32_fdisset (int fd, fd_set *set) |
void | rb_w32_fd_copy (rb_fdset_t *dst, const fd_set *src, int max) |
void | rb_w32_fd_dup (rb_fdset_t *dst, const rb_fdset_t *src) |
int | rb_w32_time_subtract (struct timeval *rest, const struct timeval *wait) |
int | rb_w32_check_interrupt (void *) |
int | rb_w32_select_with_thread (int nfds, fd_set *rd, fd_set *wr, fd_set *ex, struct timeval *timeout, void *th) |
int WSAAPI | rb_w32_select (int nfds, fd_set *rd, fd_set *wr, fd_set *ex, struct timeval *timeout) |
int WSAAPI | rb_w32_accept (int s, struct sockaddr *addr, int *addrlen) |
int WSAAPI | rb_w32_bind (int s, const struct sockaddr *addr, int addrlen) |
int WSAAPI | rb_w32_connect (int s, const struct sockaddr *addr, int addrlen) |
int WSAAPI | rb_w32_getpeername (int s, struct sockaddr *addr, int *addrlen) |
int WSAAPI | rb_w32_getsockname (int fd, struct sockaddr *addr, int *addrlen) |
int WSAAPI | rb_w32_getsockopt (int s, int level, int optname, char *optval, int *optlen) |
int WSAAPI | rb_w32_ioctlsocket (int s, long cmd, u_long *argp) |
int WSAAPI | rb_w32_listen (int s, int backlog) |
int WSAAPI | rb_w32_recv (int fd, char *buf, int len, int flags) |
int WSAAPI | rb_w32_recvfrom (int fd, char *buf, int len, int flags, struct sockaddr *from, int *fromlen) |
int WSAAPI | rb_w32_send (int fd, const char *buf, int len, int flags) |
int WSAAPI | rb_w32_sendto (int fd, const char *buf, int len, int flags, const struct sockaddr *to, int tolen) |
int | recvmsg (int fd, struct msghdr *msg, int flags) |
int | sendmsg (int fd, const struct msghdr *msg, int flags) |
int WSAAPI | rb_w32_setsockopt (int s, int level, int optname, const char *optval, int optlen) |
int WSAAPI | rb_w32_shutdown (int s, int how) |
int WSAAPI | rb_w32_socket (int af, int type, int protocol) |
struct hostent *WSAAPI | rb_w32_gethostbyaddr (const char *addr, int len, int type) |
struct hostent *WSAAPI | rb_w32_gethostbyname (const char *name) |
int WSAAPI | rb_w32_gethostname (char *name, int len) |
struct protoent *WSAAPI | rb_w32_getprotobyname (const char *name) |
struct protoent *WSAAPI | rb_w32_getprotobynumber (int num) |
struct servent *WSAAPI | rb_w32_getservbyname (const char *name, const char *proto) |
struct servent *WSAAPI | rb_w32_getservbyport (int port, const char *proto) |
int | socketpair (int af, int type, int protocol, int *sv) |
int | getifaddrs (struct ifaddrs **ifap) |
void | freeifaddrs (struct ifaddrs *ifp) |
void | endhostent (void) |
void | endnetent (void) |
void | endprotoent (void) |
void | endservent (void) |
struct netent * | getnetent (void) |
struct netent * | getnetbyaddr (long net, int type) |
struct netent * | getnetbyname (const char *name) |
struct protoent * | getprotoent (void) |
struct servent * | getservent (void) |
void | sethostent (int stayopen) |
void | setnetent (int stayopen) |
void | setprotoent (int stayopen) |
void | setservent (int stayopen) |
int | fcntl (int fd, int cmd,...) |
int | rb_w32_set_nonblock2 (int fd, int nonblock) |
int | rb_w32_set_nonblock (int fd) |
rb_pid_t | waitpid (rb_pid_t pid, int *stat_loc, int options) |
int __cdecl | gettimeofday (struct timeval *tv, struct timezone *tz) |
int | clock_gettime (clockid_t clock_id, struct timespec *sp) |
int | clock_getres (clockid_t clock_id, struct timespec *sp) |
char * | rb_w32_getcwd (char *buffer, int size) |
char * | rb_w32_ugetcwd (char *buffer, int size) |
VALUE | rb_dir_getwd_ospath (void) |
int | chown (const char *path, int owner, int group) |
int | rb_w32_uchown (const char *path, int owner, int group) |
int | lchown (const char *path, int owner, int group) |
int | rb_w32_ulchown (const char *path, int owner, int group) |
int | kill (int pid, int sig) |
int | rb_w32_ulink (const char *from, const char *to) |
int | link (const char *from, const char *to) |
int | rb_w32_read_reparse_point (const WCHAR *path, rb_w32_reparse_buffer_t *rp, size_t bufsize, WCHAR **result, DWORD *len) |
ssize_t | rb_w32_ureadlink (const char *path, char *buf, size_t bufsize) |
ssize_t | readlink (const char *path, char *buf, size_t bufsize) |
int | rb_w32_usymlink (const char *src, const char *link) |
int | symlink (const char *src, const char *link) |
int | wait (int *status) |
char * | rb_w32_ugetenv (const char *name) |
char * | rb_w32_getenv (const char *name) |
int | rb_w32_urename (const char *from, const char *to) |
int | rb_w32_rename (const char *from, const char *to) |
int | rb_w32_fstat (int fd, struct stat *st) |
int | rb_w32_fstati128 (int fd, struct stati128 *st) |
int | rb_w32_stat (const char *path, struct stat *st) |
int | rb_w32_ustati128 (const char *path, struct stati128 *st) |
int | rb_w32_stati128 (const char *path, struct stati128 *st) |
int | rb_w32_ulstati128 (const char *path, struct stati128 *st) |
int | rb_w32_lstati128 (const char *path, struct stati128 *st) |
off_t | rb_w32_lseek (int fd, off_t ofs, int whence) |
int | rb_w32_access (const char *path, int mode) |
int | rb_w32_uaccess (const char *path, int mode) |
int | rb_w32_utruncate (const char *path, off_t length) |
int | rb_w32_truncate (const char *path, off_t length) |
int | rb_w32_ftruncate (int fd, off_t length) |
int | rb_w32_times (struct tms *tmbuf) |
uintptr_t | rb_w32_asynchronize (asynchronous_func_t func, uintptr_t self, int argc, uintptr_t *argv, uintptr_t intrval) |
char ** | rb_w32_get_environ (void) |
void | rb_w32_free_environ (char **env) |
rb_pid_t | rb_w32_getpid (void) |
rb_pid_t | rb_w32_getppid (void) |
STATIC_ASSERT (std_handle,(STD_OUTPUT_HANDLE-STD_INPUT_HANDLE)==(STD_ERROR_HANDLE-STD_OUTPUT_HANDLE)) | |
int | rb_w32_dup2 (int oldfd, int newfd) |
int | rb_w32_uopen (const char *file, int oflag,...) |
int | rb_w32_open (const char *file, int oflag,...) |
int | rb_w32_wopen (const WCHAR *file, int oflag,...) |
int | rb_w32_fclose (FILE *fp) |
int | rb_w32_pipe (int fds[2]) |
int | rb_w32_close (int fd) |
ssize_t | rb_w32_read (int fd, void *buf, size_t size) |
ssize_t | rb_w32_write (int fd, const void *buf, size_t size) |
long | rb_w32_write_console (uintptr_t strarg, int fd) |
int | rb_w32_uutime (const char *path, const struct utimbuf *times) |
int | rb_w32_utime (const char *path, const struct utimbuf *times) |
int | rb_w32_uutimes (const char *path, const struct timeval *times) |
int | rb_w32_utimes (const char *path, const struct timeval *times) |
int | rb_w32_uutimensat (int dirfd, const char *path, const struct timespec *times, int flags) |
int | rb_w32_utimensat (int dirfd, const char *path, const struct timespec *times, int flags) |
int | rb_w32_uchdir (const char *path) |
int | rb_w32_umkdir (const char *path, int mode) |
int | rb_w32_mkdir (const char *path, int mode) |
int | rb_w32_rmdir (const char *path) |
int | rb_w32_urmdir (const char *path) |
int | rb_w32_uunlink (const char *path) |
int | rb_w32_unlink (const char *path) |
int | rb_w32_uchmod (const char *path, int mode) |
int | fchmod (int fd, int mode) |
int | rb_w32_isatty (int fd) |
long | _ftol (double) |
long | _ftol2 (double d) |
long | _ftol2_sse (double d) |
int | signbit (double x) |
const char *WSAAPI | rb_w32_inet_ntop (int af, const void *addr, char *numaddr, size_t numaddr_len) |
int WSAAPI | rb_w32_inet_pton (int af, const char *src, void *dst) |
char | rb_w32_fd_is_text (int fd) |
struct tm * | gmtime_r (const time_t *tp, struct tm *rp) |
struct tm * | localtime_r (const time_t *tp, struct tm *rp) |
int | rb_w32_wrap_io_handle (HANDLE h, int flags) |
int | rb_w32_unwrap_io_handle (int fd) |
VALUE | rb_w32_file_identical_p (VALUE fname1, VALUE fname2) |
int | rb_w32_set_thread_description (HANDLE th, const WCHAR *name) |
int | rb_w32_set_thread_description_str (HANDLE th, VALUE name) |
Variables | |
EXTERN_C _CRTIMP ioinfo * | __pioinfo [] |
VALUE(*const | rb_f_notimplement_ )(int, const VALUE *, VALUE, VALUE) = rb_f_notimplement |
#define _set_osfhnd | ( | fh, | |
osfh | |||
) | (void)(_osfhnd(fh) = osfh) |
#define acp_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(CP_ACP, str, -1, plen) |
#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY) |
#define COMMON_LVB_UNDERSCORE 0x8000 |
#define constat_attr_color_reverse | ( | attr | ) |
#define COPY_STAT | ( | src, | |
dest, | |||
size_cast | |||
) |
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4 |
#define env wk.val |
#define ERROR_PIPE_LOCAL 229L |
#define FEOFLAG 0x02 /* end of file has been encountered */ |
UINT filecp | ( | void | ) | rb_w32_filecp |
Definition at line 1318 of file win32.c.
Referenced by rb_w32_access(), rb_w32_aspawn(), rb_w32_aspawn_flags(), rb_w32_getcwd(), rb_w32_lstati128(), rb_w32_readdir(), rb_w32_spawn(), rb_w32_start_process(), rb_w32_stat(), rb_w32_stati128(), rb_w32_truncate(), rb_w32_utime(), rb_w32_utimensat(), rb_w32_utimes(), readlink(), and symlink().
#define filecp_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(filecp(), str, -1, plen) |
#define FNOINHERIT 0x10 /* file handle opened O_NOINHERIT */ |
#define FOREACH_CHILD | ( | v | ) |
#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY) |
#define hex2byte | ( | str | ) | ((isdigit(*(str)) ? *(str) - '0' : toupper(*(str)) - 'A' + 10) << 4 | (isdigit(*((str) + 1)) ? *((str) + 1) - '0' : toupper(*((str) + 1)) - 'A' + 10)) |
#define INVALID_SET_FILE_POINTER ((DWORD)-1) |
#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) |
#define LK_ERR | ( | f, | |
i | |||
) |
#define map_errno rb_w32_map_errno |
#define mbstr_to_wstr rb_w32_mbstr_to_wstr |
#define msghdr_to_wsamsg | ( | msg, | |
wsamsg | |||
) |
#define open_null | ( | fd | ) |
#define rb_acrt_lowio_lock_fh | ( | i | ) | EnterCriticalSection(&_pioinfo(i)->lock) |
#define rb_acrt_lowio_unlock_fh | ( | i | ) | LeaveCriticalSection(&_pioinfo(i)->lock) |
#define rb_w32_stati128 | ( | path, | |
st | |||
) | w32_stati128(path, st, cp, FALSE) |
#define set_env_val | ( | vname | ) |
#define set_new_std_fd | ( | newfd | ) | set_new_std_handle(newfd, (HANDLE)rb_w32_get_osfhandle(newfd)) |
#define set_new_std_handle | ( | newfd, | |
handle | |||
) |
#define utf8_to_wstr | ( | str, | |
plen | |||
) | mbstr_to_wstr(CP_UTF8, str, -1, plen) |
#define WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} |
#define WSAID_WSASENDMSG {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}} |
#define wstr_to_acp | ( | str, | |
plen | |||
) | wstr_to_mbstr(CP_ACP, str, -1, plen) |
#define wstr_to_filecp | ( | str, | |
plen | |||
) | wstr_to_mbstr(filecp(), str, -1, plen) |
#define wstr_to_mbstr rb_w32_wstr_to_mbstr |
#define wstr_to_utf8 | ( | str, | |
plen | |||
) | wstr_to_mbstr(CP_UTF8, str, -1, plen) |
#define yield_until | ( | condition | ) | do yield_once(); while (!(condition)) |
typedef struct _NtCmdLineElement NtCmdLineElement |
anonymous enum |
long _ftol | ( | double | ) |
Referenced by _ftol2(), and _ftol2_sse().
Definition at line 4819 of file win32.c.
Referenced by copymeta().
Definition at line 4708 of file win32.c.
References CLOCK_MONOTONIC, CLOCK_REALTIME, long(), map_errno, timespec::tv_nsec, and timespec::tv_sec.
Definition at line 4668 of file win32.c.
References CLOCK_MONOTONIC, CLOCK_REALTIME, count, map_errno, timespec::tv_nsec, and timespec::tv_sec.
Referenced by rb_timespec_now().
Definition at line 4338 of file win32.c.
References _osfile, F_DUPFD, F_DUPFD_CLOEXEC, F_GETFD, F_SETFD, F_SETFL, FD_CLOEXEC, FNOINHERIT, is_socket, L, map_errno, SIGNED_VALUE, and TO_SOCKET.
Referenced by dup2(), rb_cloexec_fcntl_dupfd(), rb_maygvl_fd_fix_cloexec(), rb_update_max_fd(), and rsock_make_fd_nonblock().
Definition at line 391 of file win32.c.
References NULL, rb_notimplement(), and rb_w32_asynchronize().
void freeifaddrs | ( | struct ifaddrs * | ifp | ) |
Definition at line 4232 of file win32.c.
References ifaddrs::ifa_addr, ifaddrs::ifa_name, ifaddrs::ifa_next, and ruby_xfree().
rb_gid_t getegid | ( | void | ) |
Definition at line 2842 of file win32.c.
References ROOT_GID.
Referenced by eaccess(), and InitVM_process().
rb_uid_t geteuid | ( | void | ) |
Definition at line 2828 of file win32.c.
References ROOT_UID.
Referenced by eaccess(), and InitVM_process().
rb_gid_t getgid | ( | void | ) |
Definition at line 4145 of file win32.c.
References added, AF_UNSPEC, ifaddrs::ifa_addr, ifaddrs::ifa_flags, ifaddrs::ifa_name, ifaddrs::ifa_next, IFNAMSIZ, map_errno, memcpy, name, NULL, root, ruby_strdup(), ruby_xcalloc(), ruby_xfree(), and ruby_xmalloc().
char * getlogin | ( | void | ) |
Definition at line 918 of file win32.c.
Referenced by rb_home_dir_of().
struct netent * getnetbyname | ( | const char * | name | ) |
Definition at line 4654 of file win32.c.
References timeval::tv_sec, and timeval::tv_usec.
Referenced by rb_timespec_now(), and rb_w32_select_with_thread().
rb_uid_t getuid | ( | void | ) |
Definition at line 2821 of file win32.c.
References ROOT_UID.
Referenced by eaccess(), and rb_default_home_dir().
struct tm * gmtime_r | ( | const time_t * | tp, |
struct tm * | rp | ||
) |
Definition at line 4845 of file win32.c.
References err, FALSE, INVALID_HANDLE_VALUE, map_errno, NULL, RUBY_CRITICAL, SIGINT, and SIGKILL.
Referenced by rb_f_kill().
Definition at line 4987 of file win32.c.
References filecp_to_wstr, free, and NULL.
Referenced by rb_mark_end_proc(), rb_set_end_proc(), rb_w32_usymlink(), and symlink().
struct tm * localtime_r | ( | const time_t * | tp, |
struct tm * | rp | ||
) |
VALUE rb_dir_getwd_ospath | ( | void | ) |
uintptr_t rb_w32_asynchronize | ( | asynchronous_func_t | func, |
uintptr_t | self, | ||
int | argc, | ||
uintptr_t * | argv, | ||
uintptr_t | intrval | ||
) |
Definition at line 6042 of file win32.c.
References argc, asynchronous_arg_t::argc, argv, asynchronous_arg_t::argv, Debug, asynchronous_arg_t::errnum, FALSE, asynchronous_arg_t::func, NULL, rb_fatal(), rb_w32_wait_events_blocking(), RUBY_CRITICAL, asynchronous_arg_t::self, asynchronous_arg_t::stackaddr, TRUE, yield_once, and yield_until.
Referenced by flock().
Definition at line 3357 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
int rb_w32_check_interrupt | ( | void * | ) |
Referenced by rb_w32_select_with_thread().
Definition at line 6985 of file win32.c.
References _set_osfhnd, INVALID_HANDLE_VALUE, is_socket, LK_LEN, map_errno, NULL, and TO_SOCKET.
Referenced by rb_w32_pipe(), and socketpair().
void rb_w32_closedir | ( | DIR * | dirp | ) |
Definition at line 2441 of file win32.c.
References DIR::bits, direct::d_altname, direct::d_name, DIR::dirstr, free, and DIR::start.
Definition at line 3373 of file win32.c.
References EINPROGRESS, err, map_errno, RUBY_CRITICAL, and TO_SOCKET.
VALUE rb_w32_conv_from_wchar | ( | const WCHAR * | wstr, |
rb_encoding * | enc | ||
) |
Definition at line 2266 of file win32.c.
References ECONV_UNDEF_REPLACE, ENCINDEX_ASCII, ENCINDEX_US_ASCII, ENCINDEX_UTF_16LE, ENCINDEX_UTF_8, len, NULL, Qnil, rb_enc_from_index(), rb_enc_str_new(), rb_enc_to_index(), rb_long2int, rb_str_conv_enc_opts(), and RSTRING_PTR.
Referenced by rb_w32_conv_from_wstr(), rb_w32_special_folder(), and rsock_raise_socket_error().
char * rb_w32_conv_from_wstr | ( | const WCHAR * | wstr, |
long * | lenp, | ||
rb_encoding * | enc | ||
) |
Definition at line 2297 of file win32.c.
References len, malloc, memcpy, NIL_P, ptr, rb_w32_conv_from_wchar(), RSTRING_LEN, RSTRING_PTR, str, and wstr_to_utf8.
Definition at line 6199 of file win32.c.
References dup2(), and set_new_std_fd.
Definition at line 6454 of file win32.c.
References _set_osfhnd, fileno, INVALID_HANDLE_VALUE, is_socket, LK_LEN, map_errno, and TO_SOCKET.
void rb_w32_fd_copy | ( | rb_fdset_t * | dst, |
const fd_set * | src, | ||
int | max | ||
) |
Definition at line 2913 of file win32.c.
References rb_fdset_t::capa, rb_fdset_t::fdset, max, memcpy, and xrealloc.
void rb_w32_fd_dup | ( | rb_fdset_t * | dst, |
const rb_fdset_t * | src | ||
) |
Definition at line 2928 of file win32.c.
References rb_fdset_t::capa, rb_fdset_t::fdset, memcpy, and xrealloc.
char rb_w32_fd_is_text | ( | int | fd | ) |
void rb_w32_fdclr | ( | int | fd, |
fd_set * | set | ||
) |
Definition at line 2901 of file win32.c.
References INVALID_HANDLE_VALUE, RUBY_CRITICAL, and TO_SOCKET.
void rb_w32_fdset | ( | int | fd, |
fd_set * | set | ||
) |
Definition at line 8099 of file win32.c.
References w32_io_info_t::bhfi, w32_io_info_t::fii, w32_io_info_t::file_id_p, FILE_ID_INFO::FileId, w32_io_info_args::fname, w32_io_info_t::info, INVALID_HANDLE_VALUE, memcmp(), Qfalse, Qtrue, rb_ensure(), w32_io_info_args::st, and FILE_ID_INFO::VolumeSerialNumber.
void rb_w32_free_environ | ( | char ** | env | ) |
char ** rb_w32_get_environ | ( | void | ) |
SOCKET rb_w32_get_osfhandle | ( | int | fh | ) |
Definition at line 1115 of file win32.c.
Referenced by rb_w32_start_process().
char * rb_w32_getcwd | ( | char * | buffer, |
int | size | ||
) |
struct hostent *WSAAPI rb_w32_gethostbyname | ( | const char * | name | ) |
Definition at line 3394 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
rb_pid_t rb_w32_getpid | ( | void | ) |
Definition at line 6152 of file win32.c.
Referenced by rb_w32_pipe().
rb_pid_t rb_w32_getppid | ( | void | ) |
struct protoent *WSAAPI rb_w32_getprotobyname | ( | const char * | name | ) |
struct protoent *WSAAPI rb_w32_getprotobynumber | ( | int | num | ) |
Definition at line 3977 of file win32.c.
References map_errno, NULL, and RUBY_CRITICAL.
Definition at line 3409 of file win32.c.
References GET_FAMILY, map_errno, RUBY_CRITICAL, and TO_SOCKET.
Definition at line 3439 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
WCHAR * rb_w32_home_dir | ( | void | ) |
Definition at line 547 of file win32.c.
References ALLOC_N, CSIDL_PROFILE, L, len, NULL, REALLOC_N, and xfree.
Referenced by rb_default_home_dir(), and rb_file_expand_path_internal().
Definition at line 3454 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
Definition at line 3469 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
Definition at line 7578 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 6246 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 2203 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 6477 of file win32.c.
References _set_osfhnd, _set_osflags, err, FALSE, FNOINHERIT, FOPEN, FPIPE, int(), INVALID_HANDLE_VALUE, map_errno, memcpy, name, NULL, prefix, rb_acrt_lowio_lock_fh, rb_acrt_lowio_unlock_fh, rb_w32_close(), rb_w32_getpid(), RUBY_CRITICAL, and snprintf.
ssize_t rb_w32_read | ( | int | fd, |
void * | buf, | ||
size_t | size | ||
) |
Definition at line 7056 of file win32.c.
References _osfhnd, _osfile, _set_osflags, err, EWOULDBLOCK, FALSE, FEOFLAG, FPIPE, FTEXT, is_socket, len, map_errno, NULL, rb_acrt_lowio_lock_fh, rb_acrt_lowio_unlock_fh, rb_w32_recv(), rb_w32_wait_events_blocking(), read(), constat::state, TO_SOCKET, TRUE, and wait().
int rb_w32_read_reparse_point | ( | const WCHAR * | path, |
rb_w32_reparse_buffer_t * | rp, | ||
size_t | bufsize, | ||
WCHAR ** | result, | ||
DWORD * | len | ||
) |
Definition at line 5068 of file win32.c.
References IO_REPARSE_TAG_SYMLINK, L, len, memcmp(), name, rb_strlen_lit, and rp.
Referenced by rb_readlink(), and rb_w32_reparse_symlink_p().
struct direct * rb_w32_readdir | ( | DIR * | dirp, |
rb_encoding * | enc | ||
) |
Definition at line 2374 of file win32.c.
References ENCINDEX_ASCII, ENCINDEX_UTF_8, filecp, and rb_enc_to_index().
Definition at line 5389 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 5043 of file win32.c.
References ALLOCV, ALLOCV_END, FALSE, len, rb_w32_read_reparse_point(), rb_w32_reparse_buffer_size, rp, and TRUE.
void rb_w32_rewinddir | ( | DIR * | dirp | ) |
Definition at line 2429 of file win32.c.
References DIR::curr, DIR::loc, and DIR::start.
Referenced by rb_w32_seekdir().
Definition at line 7613 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 2414 of file win32.c.
References DIR::curr, DIR::loc, and rb_w32_rewinddir().
int WSAAPI rb_w32_select | ( | int | nfds, |
fd_set * | rd, | ||
fd_set * | wr, | ||
fd_set * | ex, | ||
struct timeval * | timeout | ||
) |
Definition at line 3306 of file win32.c.
References rb_w32_select_with_thread().
int rb_w32_select_with_thread | ( | int | nfds, |
fd_set * | rd, | ||
fd_set * | wr, | ||
fd_set * | ex, | ||
struct timeval * | timeout, | ||
void * | th | ||
) |
Definition at line 3169 of file win32.c.
References rb_fdset_t::fdset, gettimeofday(), if(), int(), NULL, rb_fd_init, rb_fd_term, rb_w32_check_interrupt(), rb_w32_time_subtract(), timeval::tv_sec, timeval::tv_usec, and wait().
Referenced by rb_w32_select().
Definition at line 4446 of file win32.c.
References rb_w32_set_nonblock2(), and TRUE.
Definition at line 4415 of file win32.c.
References is_socket, map_errno, NULL, O_NONBLOCK, and TO_SOCKET.
Referenced by rb_w32_set_nonblock().
Definition at line 8151 of file win32.c.
References ENCINDEX_UTF_16LE, FALSE, free, L, mbstr_to_wstr, name, NIL_P, NULL, rb_enc_from_index(), rb_enc_get_index(), RB_GC_GUARD, rb_str_conv_enc(), rb_utf8_encoding(), rb_w32_set_thread_description(), RSTRING_LEN, RSTRING_PTR, and StringValueCStr.
Definition at line 3781 of file win32.c.
References map_errno, RUBY_CRITICAL, and TO_SOCKET.
Definition at line 3861 of file win32.c.
References MAKE_SOCKDATA, map_errno, O_BINARY, and RUBY_CRITICAL.
Definition at line 506 of file win32.c.
References numberof, PATH_MAX, Qnil, rb_filesystem_encoding(), and rb_w32_conv_from_wchar().
char * rb_w32_strerror | ( | int | e | ) |
Definition at line 2762 of file win32.c.
References EADDRINUSE, err, EWOULDBLOCK, int(), memmove(), NULL, strerror(), strlcpy(), strlen(), sys_nerr, and winerr.
void rb_w32_sysinit | ( | int * | argc, |
char *** | argv | ||
) |
Definition at line 884 of file win32.c.
References argc, argv, and OnigEncodingUTF_8.
Referenced by ruby_sysinit().
UINT rb_w32_system_tmpdir | ( | WCHAR * | path, |
UINT | len | ||
) |
Definition at line 3130 of file win32.c.
References timeval::tv_sec, timeval::tv_usec, and wait().
Referenced by rb_w32_select_with_thread().
Definition at line 5991 of file win32.c.
References tms::tms_cstime, tms::tms_cutime, tms::tms_stime, and tms::tms_utime.
Definition at line 1607 of file win32.c.
References argv, prog, and rb_w32_uaspawn_flags().
Definition at line 7530 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7699 of file win32.c.
References free, NULL, and utf8_to_wstr.
char * rb_w32_ugetcwd | ( | char * | buffer, |
int | size | ||
) |
char * rb_w32_ugetenv | ( | const char * | name | ) |
Definition at line 4967 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7564 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7685 of file win32.c.
References filecp_to_wstr, free, and NULL.
Definition at line 7983 of file win32.c.
References _set_osfhnd, INVALID_HANDLE_VALUE, is_socket, LK_LEN, NULL, and TO_SOCKET.
Definition at line 6212 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 2216 of file win32.c.
References free, NULL, and utf8_to_wstr.
ssize_t rb_w32_ureadlink | ( | const char * | path, |
char * | buf, | ||
size_t | bufsize | ||
) |
Definition at line 5370 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7627 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7477 of file win32.c.
References utimbuf::actime, AT_FDCWD, filecp, utimbuf::modtime, timespec::tv_nsec, and timespec::tv_sec.
Definition at line 7503 of file win32.c.
References AT_FDCWD, filecp, timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, and timeval::tv_usec.
Definition at line 7671 of file win32.c.
References free, NULL, and utf8_to_wstr.
Definition at line 7464 of file win32.c.
References utimbuf::actime, AT_FDCWD, utimbuf::modtime, timespec::tv_nsec, and timespec::tv_sec.
Definition at line 7490 of file win32.c.
References AT_FDCWD, timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, and timeval::tv_usec.
Definition at line 7961 of file win32.c.
References f, len, and O_NONBLOCK.
Definition at line 7195 of file win32.c.
References _osfhnd, _osfile, err, EWOULDBLOCK, FDEV, FEOFLAG, fileno, FPIPE, FTEXT, is_socket, len, map_errno, rb_acrt_lowio_lock_fh, rb_acrt_lowio_unlock_fh, rb_w32_send(), rb_w32_wait_events_blocking(), TO_SOCKET, TRUE, and wait().
Definition at line 7300 of file win32.c.
References _osfhnd, ECONV_INVALID_REPLACE, ECONV_UNDEF_REPLACE, ENABLE_VIRTUAL_TERMINAL_PROCESSING, ENCINDEX_ASCII, ENCINDEX_US_ASCII, ENCINDEX_UTF_16LE, ENCINDEX_UTF_8, ENCODING_GET, free, len, mbstr_to_wstr, NULL, ptr, Qnil, rb_econv_has_convpath_p(), rb_enc_from_index(), rb_enc_name, RB_GC_GUARD, rb_str_conv_enc_opts(), RSTRING_LEN, RSTRING_PTR, and str.
Referenced by rb_write_error2(), and rb_write_error_str().
ssize_t readlink | ( | const char * | path, |
char * | buf, | ||
size_t | bufsize | ||
) |
Definition at line 3677 of file win32.c.
References WSAMSG::dwFlags, FALSE, GET_FLAGS, int(), len, map_errno, msghdr::msg_flags, msghdr::msg_name, msghdr::msg_namelen, msghdr_to_wsamsg, WSAMSG::name, WSAMSG::namelen, NULL, O_NONBLOCK, RUBY_CRITICAL, TO_SOCKET, TRUE, and WSAID_WSARECVMSG.
int ruby_brace_glob_with_enc | ( | const char * | str, |
int | flags, | ||
ruby_glob_func * | func, | ||
VALUE | arg, | ||
rb_encoding * | enc | ||
) |
Definition at line 2813 of file dir.c.
References ruby_glob_funcs_t::error, brace_args::flags, brace_args::funcs, ruby_glob_funcs_t::match, Qfalse, str, and brace_args::value.
Referenced by ruby_brace_glob().
Definition at line 3732 of file win32.c.
References FALSE, GET_FLAGS, int(), len, map_errno, msghdr_to_wsamsg, NULL, O_NONBLOCK, RUBY_CRITICAL, TO_SOCKET, TRUE, and WSAID_WSASENDMSG.
int setgid | ( | rb_gid_t | gid | ) |
Definition at line 2856 of file win32.c.
References ROOT_GID.
Referenced by rb_execarg_run_options().
int setuid | ( | rb_uid_t | uid | ) |
Definition at line 2849 of file win32.c.
References ROOT_UID.
Referenced by rb_execarg_run_options().
int signbit | ( | double | x | ) |
Definition at line 4078 of file win32.c.
References MAKE_SOCKDATA, O_BINARY, and rb_w32_close().
STATIC_ASSERT | ( | std_handle | , |
(STD_OUTPUT_HANDLE-STD_INPUT_HANDLE) | = =(STD_ERROR_HANDLE-STD_OUTPUT_HANDLE) |
||
) |
Definition at line 5245 of file win32.c.
References waitpid().
Referenced by rb_w32_read(), rb_w32_select_with_thread(), rb_w32_time_subtract(), and rb_w32_write().
Definition at line 4532 of file win32.c.
References count, END_FOREACH_CHILD, FOREACH_CHILD, map_errno, MAXCHILDNUM, rb_w32_wait_events_blocking(), and WNOHANG.
Referenced by wait().
int err |
Definition at line 142 of file win32.c.
Referenced by blast(), compress2(), deflateParams(), dynamic(), gz_error(), gzclose_r(), gzip_normalize(), Init_syslog(), kill(), LoadCentralDirectoryRecord(), main(), onig_compile_ruby(), onig_new(), ossl_raise(), puff(), rb_arithmetic_sequence_beg_len_step(), rb_enc_reg_new(), rb_f_exec(), rb_f_raise(), rb_fiber_start(), rb_gc_for_fd(), rb_load_fail(), rb_memory_view_item_size_from_format(), rb_memory_view_parse_item_format(), rb_memory_view_prepare_item_desc(), rb_mutex_unlock(), rb_notify_fd_close(), rb_ractor_stderr_set(), rb_range_beg_len(), rb_range_component_beg_len(), rb_reg_check_preprocess(), rb_reg_compile(), rb_reg_init_str(), rb_reg_match_p(), rb_reg_prepare_re(), rb_reg_prepare_re0(), rb_reg_start_with_p(), rb_set_errinfo(), rb_syserr_enc_warning(), rb_threadptr_execute_interrupts(), rb_update_max_fd(), rb_w32_connect(), rb_w32_pipe(), rb_w32_read(), rb_w32_strerror(), rb_w32_write(), reg_enum_key(), reg_get_val(), reg_get_val2(), rsock_syserr_fail_host_port(), rsock_syserr_fail_path(), rsock_syserr_fail_raddrinfo(), rsock_syserr_fail_raddrinfo_or_sockaddr(), rsock_syserr_fail_sockaddr(), ruby_close(), ruby_float_step_size(), ruby_getpeername(), ruby_getsockname(), ruby_shutdown(), tar(), uncompress2(), unz64local_CheckCurrentFileCoherencyHeader(), unz64local_getByte(), unz64local_GetCurrentFileInfoInternal(), unz64local_getLong(), unz64local_getLong64(), unz64local_getShort(), unzCloseCurrentFile(), unzGetCurrentFileInfo(), unzGetFilePos(), unzGoToFilePos64(), unzGoToFirstFile(), unzGoToNextFile(), unzLocateFile(), unzOpenCurrentFile3(), unzOpenInternal(), unzReadCurrentFile(), unzRepair(), unzSetOffset64(), Write_EndOfCentralDirectoryRecord(), Write_GlobalComment(), Write_LocalFileHeader(), Write_Zip64EndOfCentralDirectoryLocator(), Write_Zip64EndOfCentralDirectoryRecord(), zError(), zip64FlushWriteBuffer(), zip64local_getByte(), zip64local_getLong(), zip64local_getLong64(), zip64local_getShort(), zipClose(), zipCloseFileInZipRaw64(), zipOpen3(), zipOpenNewFileInZip4_64(), and zipWriteInFileInZip().
DWORD winerr |
Definition at line 141 of file win32.c.
Referenced by rb_w32_map_errno(), and rb_w32_strerror().