Ruby: win32/win32.c File Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
win32.c File Reference
`#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

## Macro Definition Documentation

## ◆ _CRTIMP

#define _CRTIMP __declspec(dllimport)

Definition at line 2516 of file win32.c.

## ◆ _osfhnd

#define _osfhnd | ( |  | i | ) | (_pioinfo(i)->osfhnd)

Definition at line 2530 of file win32.c.

## ◆ _osfile

#define _osfile | ( |  | i | ) | (_pioinfo(i)->osfile)

Definition at line 2531 of file win32.c.

## ◆ _set_osfhnd

#define _set_osfhnd | ( |  | fh,
|  |  | osfh
| ) |  | (void)(_osfhnd(fh) = osfh)

Definition at line 2631 of file win32.c.

## ◆ _set_osflags

#define _set_osflags | ( |  | fh,
|  |  | flags
| ) |  | (_osfile(fh) = (flags))

Definition at line 2632 of file win32.c.

## ◆ acp_to_wstr

#define acp_to_wstr | ( |  | str,
|  |  | plen
| ) |  | mbstr_to_wstr(CP_ACP, str, -1, plen)

Definition at line 1321 of file win32.c.

## ◆ BACKGROUND_MASK

#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY)

Definition at line 6650 of file win32.c.

## ◆ BitOfIsDir

#define BitOfIsDir | ( |  | n | ) | ((n) * 2)

Definition at line 2018 of file win32.c.

## ◆ BitOfIsRep

#define BitOfIsRep | ( |  | n | ) | ((n) * 2 + 1)

Definition at line 2019 of file win32.c.

## ◆ CharNext

#define CharNext | ( |  | p | ) | CharNextExA(cp, (p), 0)

Definition at line 82 of file win32.c.

## ◆ COMMON_LVB_UNDERSCORE

#define COMMON_LVB_UNDERSCORE 0x8000

## ◆ conlist_disabled

#define conlist_disabled ((st_table *)-1)

Definition at line 705 of file win32.c.

## ◆ constat_attr_color_reverse

#define constat_attr_color_reverse | ( |  | attr | ) |

Value:
((attr) & ~(FOREGROUND_MASK | BACKGROUND_MASK)) | \
(((attr) & FOREGROUND_MASK) << 4) | \
(((attr) & BACKGROUND_MASK) >> 4)
BACKGROUND_MASK
#define BACKGROUND_MASK
Definition: win32.c:6650
FOREGROUND_MASK
#define FOREGROUND_MASK
Definition: win32.c:6649

Definition at line 6652 of file win32.c.

## ◆ COPY_STAT

#define COPY_STAT | ( |  | src,
|  |  | dest,
|  |  | size_cast
| ) |  |

Value:
do { \
(dest).st_dev = (src).st_dev; \
(dest).st_ino = (src).st_ino; \
(dest).st_mode = (src).st_mode; \
(dest).st_nlink = (src).st_nlink; \
(dest).st_uid = (src).st_uid; \
(dest).st_gid = (src).st_gid; \
(dest).st_rdev = (src).st_rdev; \
(dest).st_size = size_cast(src).st_size; \
(dest).st_atime = (src).st_atime; \
(dest).st_mtime = (src).st_mtime; \
(dest).st_ctime = (src).st_ctime; \
} while (0)

Definition at line 5432 of file win32.c.

## ◆ CSIDL_COMMON_APPDATA

#define CSIDL_COMMON_APPDATA 35

Definition at line 427 of file win32.c.

## ◆ CSIDL_LOCAL_APPDATA

#define CSIDL_LOCAL_APPDATA 28

Definition at line 424 of file win32.c.

## ◆ CSIDL_PROFILE

#define CSIDL_PROFILE 40

Definition at line 436 of file win32.c.

## ◆ CSIDL_SYSTEM

#define CSIDL_SYSTEM 37

Definition at line 433 of file win32.c.

## ◆ CSIDL_WINDOWS

#define CSIDL_WINDOWS 36

Definition at line 430 of file win32.c.

## ◆ Debug

#define Debug | ( |  | something | ) | /* nothing */

Definition at line 122 of file win32.c.

## ◆ DIRENT_PER_CHAR

#define DIRENT_PER_CHAR (CHAR_BIT / 2)

Definition at line 2020 of file win32.c.

## ◆ dln_find_exe_r [1/2]

#define dln_find_exe_r rb_w32_udln_find_exe_r

Definition at line 91 of file win32.c.

## ◆ dln_find_exe_r [2/2]

#define dln_find_exe_r | ( |  | fname,
|  |  | path,
|  |  | buf,
|  |  | size
| ) |  | rb_w32_udln_find_exe_r(fname, path, buf, size, cp)

Definition at line 91 of file win32.c.

## ◆ DLN_FIND_EXTRA_ARG

#define DLN_FIND_EXTRA_ARG ,cp

Definition at line 78 of file win32.c.

## ◆ DLN_FIND_EXTRA_ARG_DECL

#define DLN_FIND_EXTRA_ARG_DECL ,UINT cp

Definition at line 77 of file win32.c.

## ◆ dln_find_file_r [1/2]

#define dln_find_file_r rb_w32_udln_find_file_r

Definition at line 92 of file win32.c.

## ◆ dln_find_file_r [2/2]

#define dln_find_file_r | ( |  | fname,
|  |  | path,
|  |  | buf,
|  |  | size
| ) |  | rb_w32_udln_find_file_r(fname, path, buf, size, cp)

Definition at line 92 of file win32.c.

## ◆ ENABLE_VIRTUAL_TERMINAL_PROCESSING

#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4

## ◆ END_FOREACH_CHILD

#define END_FOREACH_CHILD } while (0)

Definition at line 935 of file win32.c.

## ◆ enough_to_get

#define enough_to_get | ( |  | n | ) | (--(n) >= 0)

Definition at line 116 of file win32.c.

## ◆ enough_to_put

#define enough_to_put | ( |  | n | ) | (--(n) >= 0)

Definition at line 117 of file win32.c.

## ◆ env

#define env wk.val

## ◆ ENV_MAX

#define ENV_MAX 512

Definition at line 103 of file win32.c.

## ◆ ERROR_PIPE_LOCAL

#define ERROR_PIPE_LOCAL 229L

## ◆ FAPPEND

#define FAPPEND 0x20 /* file handle opened O_APPEND */

Definition at line 2638 of file win32.c.

## ◆ FDEV

#define FDEV 0x40 /* file handle refers to device */

Definition at line 2639 of file win32.c.

## ◆ FEOFLAG

#define FEOFLAG 0x02 /* end of file has been encountered */

Definition at line 2635 of file win32.c.

## ◆ FILE_COUNT

#define FILE_COUNT | ( |  | stream | ) | stream->_cnt

Definition at line 2477 of file win32.c.

## ◆ FILE_DEVICE_FILE_SYSTEM

#define FILE_DEVICE_FILE_SYSTEM 0x00000009

Definition at line 5007 of file win32.c.

## ◆ FILE_FILENO

#define FILE_FILENO | ( |  | stream | ) | stream->_file

Definition at line 2479 of file win32.c.

## ◆ FILE_READPTR

#define FILE_READPTR | ( |  | stream | ) | stream->_ptr

Definition at line 2478 of file win32.c.

## ◆ filecp

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().

## ◆ filecp_to_wstr

#define filecp_to_wstr | ( |  | str,
|  |  | plen
| ) |  | mbstr_to_wstr(filecp(), str, -1, plen)

Definition at line 1323 of file win32.c.

## ◆ FileIdInfo

#define FileIdInfo 0x12

Definition at line 5489 of file win32.c.

## ◆ FNOINHERIT

#define FNOINHERIT 0x10 /* file handle opened O_NOINHERIT */

Definition at line 2637 of file win32.c.

## ◆ FOPEN

#define FOPEN 0x01 /* file handle open */

Definition at line 2634 of file win32.c.

## ◆ FOREACH_CHILD

#define FOREACH_CHILD | ( |  | v | ) |

Value:
do { \
struct ChildRecord* v; \
for (v = ChildRecord; v < ChildRecord + sizeof(ChildRecord) / sizeof(ChildRecord[0]); ++v)

Definition at line 932 of file win32.c.

## ◆ FOREGROUND_MASK

#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY)

Definition at line 6649 of file win32.c.

## ◆ FPIPE

#define FPIPE 0x08 /* file handle refers to a pipe */

Definition at line 2636 of file win32.c.

## ◆ FSCTL_GET_REPARSE_POINT

#define FSCTL_GET_REPARSE_POINT ((0x9<<16)|(42<<2))

Definition at line 5010 of file win32.c.

## ◆ FTEXT

#define FTEXT 0x80 /* file handle is in text mode */

Definition at line 2640 of file win32.c.

## ◆ GET_FAMILY

#define GET_FAMILY | ( |  | v | ) | ((int)(((v)>>4)&0xFFFF))

Definition at line 811 of file win32.c.

## ◆ GET_FLAGS

#define GET_FLAGS | ( |  | v | ) | ((int)((v)&0xFFFF))

Definition at line 812 of file win32.c.

## ◆ GetBit

#define GetBit | ( |  | bits,
|  |  | i
| ) |  | ((bits)[(i) / CHAR_BIT] & (1 << (i) % CHAR_BIT))

Definition at line 2015 of file win32.c.

## ◆ getenv

#define getenv | ( |  | name | ) | w32_getenv(name, cp) /* Necessarily For dln.c */

Definition at line 80 of file win32.c.

## ◆ hex2byte

#define hex2byte | ( |  | str | ) | ((isdigit(*(str)) ? *(str) - '0' : toupper(*(str)) - 'A' + 10) << 4 | (isdigit(*((str) + 1)) ? *((str) + 1) - '0' : toupper(*((str) + 1)) - 'A' + 10))

## ◆ InternalCmdsMax

#define InternalCmdsMax 8

Definition at line 994 of file win32.c.

## ◆ INVALID_SET_FILE_POINTER

#define INVALID_SET_FILE_POINTER ((DWORD)-1)

## ◆ IO_REPARSE_TAG_SYMLINK

#define IO_REPARSE_TAG_SYMLINK 0xA000000CL

Definition at line 5013 of file win32.c.

## ◆ IOINFO_ARRAY_ELTS

#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)

Definition at line 2529 of file win32.c.

## ◆ IOINFO_L2E

#define IOINFO_L2E 5

Definition at line 2524 of file win32.c.

## ◆ isdirsep

#define isdirsep | ( |  | x | ) | ((x) == '/' || (x) == '\\')

Definition at line 63 of file win32.c.

## ◆ LK_ERR

#define LK_ERR | ( |  | f,
|  |  | i
| ) |  |

Value:
do { \
if (f) \
i = 0; \
else { \
DWORD err = GetLastError(); \
if (err == ERROR_LOCK_VIOLATION || err == ERROR_IO_PENDING) \
errno = EWOULDBLOCK; \
else if (err == ERROR_NOT_LOCKED) \
i = 0; \
else \
errno = map_errno(err); \
} \
} while (0)
EWOULDBLOCK
#define EWOULDBLOCK
Definition: rubysocket.h:164
f
#define f
map_errno
#define map_errno
Definition: win32.c:300
err
int err
Definition: win32.c:142
DWORD
IUnknown DWORD
Definition: win32ole.c:33

Definition at line 334 of file win32.c.

## ◆ LK_LEN

#define LK_LEN ULONG_MAX

Definition at line 348 of file win32.c.

## ◆ MAKE_SOCKDATA

#define MAKE_SOCKDATA | ( |  | af,
|  |  | fl
| ) |  | ((int)((((int)af)<<4)|((fl)&0xFFFF)))

Definition at line 810 of file win32.c.

## ◆ map_errno

#define map_errno rb_w32_map_errno

Definition at line 300 of file win32.c.

## ◆ MAXCHILDNUM

#define MAXCHILDNUM 256 /* max num of child processes */

Definition at line 923 of file win32.c.

## ◆ mbstr_to_wstr

#define mbstr_to_wstr rb_w32_mbstr_to_wstr

Definition at line 1319 of file win32.c.

## ◆ msghdr_to_wsamsg

#define msghdr_to_wsamsg | ( |  | msg,
|  |  | wsamsg
| ) |  |

Value:
do { \
int i; \
(wsamsg)->name = (msg)->msg_name; \
(wsamsg)->namelen = (msg)->msg_namelen; \
(wsamsg)->lpBuffers = ALLOCA_N(WSABUF, (msg)->msg_iovlen); \
(wsamsg)->dwBufferCount = (msg)->msg_iovlen; \
for (i = 0; i < (msg)->msg_iovlen; ++i) { \
(wsamsg)->lpBuffers[i].buf = (msg)->msg_iov[i].iov_base; \
(wsamsg)->lpBuffers[i].len = (msg)->msg_iov[i].iov_len; \
} \
(wsamsg)->Control.buf = (msg)->msg_control; \
(wsamsg)->Control.len = (msg)->msg_controllen; \
(wsamsg)->dwFlags = (msg)->msg_flags; \
} while (0)
len
uint8_t len
Definition: escape.c:17
buf
voidpf void * buf
Definition: ioapi.h:138
ALLOCA_N
#define ALLOCA_N(type, n)
Definition: memory.h:112
name
const char * name
Definition: nkf.c:208

Definition at line 3659 of file win32.c.

## ◆ NTGLOB

#define NTGLOB 0x1

Definition at line 1624 of file win32.c.

## ◆ NTMALLOC

#define NTMALLOC 0x2

Definition at line 1625 of file win32.c.

## ◆ NTSTRING

#define NTSTRING 0x4

Definition at line 1626 of file win32.c.

## ◆ open_null

#define open_null | ( |  | fd | ) |

Value:
(((nullfd < 0) ? \
(nullfd = open("NUL", O_RDWR)) : 0), \
((nullfd == (fd)) ? (keep = 1) : dup2(nullfd, fd)), \
(fd))
dup2
int dup2(int, int)
Definition: dup2.c:27

## ◆ pioinfo_extra

#define pioinfo_extra 0

Definition at line 2620 of file win32.c.

## ◆ rb_acrt_lowio_lock_fh

#define rb_acrt_lowio_lock_fh | ( |  | i | ) | EnterCriticalSection(&_pioinfo(i)->lock)

Definition at line 2532 of file win32.c.

## ◆ rb_acrt_lowio_unlock_fh

#define rb_acrt_lowio_unlock_fh | ( |  | i | ) | LeaveCriticalSection(&_pioinfo(i)->lock)

Definition at line 2533 of file win32.c.

## ◆ rb_w32_stati128

#define rb_w32_stati128 | ( |  | path,
|  |  | st
| ) |  | w32_stati128(path, st, cp, FALSE)

Definition at line 79 of file win32.c.

## ◆ ROOT_GID

#define ROOT_GID 0

Definition at line 2817 of file win32.c.

## ◆ ROOT_UID

#define ROOT_UID 0

Definition at line 2816 of file win32.c.

## ◆ RUBY_CRITICAL

#define RUBY_CRITICAL if (0) {} else /* just remark */

Definition at line 137 of file win32.c.

## ◆ set_env_val

#define set_env_val | ( |  | vname | ) |

Value:
do { \
typedef char wk_name_offset[(numberof(wk.name) - (numberof(vname) - 1)) * 2 + 1]; \
WCHAR *const buf = wk.name + sizeof(wk_name_offset) / 2; \
MEMCPY(buf, vname, WCHAR, numberof(vname) - 1); \
_wputenv(buf); \
} while (0)
numberof
#define numberof(array)
Definition: etc.c:649

## ◆ set_new_std_fd

#define set_new_std_fd | ( |  | newfd | ) | set_new_std_handle(newfd, (HANDLE)rb_w32_get_osfhandle(newfd))

Definition at line 6195 of file win32.c.

## ◆ set_new_std_handle

#define set_new_std_handle | ( |  | newfd,
|  |  | handle
| ) |  |

Value:
do { \
if ((unsigned)(newfd) > 2) break; \
SetStdHandle(STD_INPUT_HANDLE+(STD_OUTPUT_HANDLE-STD_INPUT_HANDLE)*(newfd), \
(handle)); \
} while (0)

Definition at line 6190 of file win32.c.

## ◆ SetBit

#define SetBit | ( |  | bits,
|  |  | i
| ) |  | ((bits)[(i) / CHAR_BIT] |= (1 << (i) % CHAR_BIT))

Definition at line 2016 of file win32.c.

## ◆ STRNDUPV

#define STRNDUPV | ( |  | ptr,
|  |  | v,
|  |  | src,
|  |  | len
| ) |  | (((char *)memcpy(((ptr) = ALLOCV((v), (len) + 1)), (src), (len)))[len] = 0)

Definition at line 1195 of file win32.c.

## ◆ SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE

#define SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE (0x2)

Definition at line 5164 of file win32.c.

## ◆ SYMBOLIC_LINK_FLAG_DIRECTORY

#define SYMBOLIC_LINK_FLAG_DIRECTORY (0x1)

Definition at line 5161 of file win32.c.

## ◆ TO_SOCKET

#define TO_SOCKET | ( |  | x | ) | _get_osfhandle(x)

Definition at line 125 of file win32.c.

## ◆ utf8_to_wstr

#define utf8_to_wstr | ( |  | str,
|  |  | plen
| ) |  | mbstr_to_wstr(CP_UTF8, str, -1, plen)

Definition at line 1325 of file win32.c.

## ◆ WSAID_WSARECVMSG

#define WSAID_WSARECVMSG {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}}

Definition at line 3652 of file win32.c.

## ◆ WSAID_WSASENDMSG

#define WSAID_WSASENDMSG {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}}

Definition at line 3655 of file win32.c.

## ◆ wstr_to_acp

#define wstr_to_acp | ( |  | str,
|  |  | plen
| ) |  | wstr_to_mbstr(CP_ACP, str, -1, plen)

Definition at line 1322 of file win32.c.

## ◆ wstr_to_filecp

#define wstr_to_filecp | ( |  | str,
|  |  | plen
| ) |  | wstr_to_mbstr(filecp(), str, -1, plen)

Definition at line 1324 of file win32.c.

## ◆ wstr_to_mbstr

#define wstr_to_mbstr rb_w32_wstr_to_mbstr

Definition at line 1320 of file win32.c.

## ◆ wstr_to_utf8

#define wstr_to_utf8 | ( |  | str,
|  |  | plen
| ) |  | wstr_to_mbstr(CP_UTF8, str, -1, plen)

Definition at line 1326 of file win32.c.

## ◆ yield_once

#define yield_once | ( |  | ) | Sleep(0)

Definition at line 6012 of file win32.c.

## ◆ yield_until

#define yield_until | ( |  | condition | ) | do yield_once(); while (!(condition))

Definition at line 6013 of file win32.c.

## Typedef Documentation

## ◆ cigl_t

typedef DWORD(WINAPI * cigl_t) (const GUID *, NET_LUID *)

Definition at line 4139 of file win32.c.

## ◆ cilnA_t

typedef DWORD(WINAPI * cilnA_t) (const NET_LUID *, char *, size_t)

Definition at line 4140 of file win32.c.

## ◆ get_final_path_func

typedef DWORD(WINAPI * get_final_path_func) (HANDLE, WCHAR *, DWORD, DWORD)

Definition at line 1976 of file win32.c.

## ◆ NtCmdLineElement

typedef struct _NtCmdLineElement NtCmdLineElement

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
constat_init |
constat_esc |
constat_seq |

Definition at line 717 of file win32.c.

## Function Documentation

## ◆ _ftol()

long _ftol | ( | double |  | ) |

Referenced by _ftol2(), and _ftol2_sse().

## ◆ _ftol2()

long _ftol2 | ( | double | d | ) |

Definition at line 7773 of file win32.c.

References _ftol().

## ◆ _ftol2_sse()

long _ftol2_sse | ( | double | d | ) |

Definition at line 7780 of file win32.c.

References _ftol().

## ◆ chown()

int chown | ( | const char * | path,
|  | int | owner,
|  | int | group
| ) |  |

Definition at line 4819 of file win32.c.

Referenced by copymeta().

## ◆ clock_getres()

int clock_getres | ( | clockid_t | clock_id,
|  | struct timespec * | sp
| ) |  |

Definition at line 4708 of file win32.c.

References CLOCK_MONOTONIC, CLOCK_REALTIME, long(), map_errno, timespec::tv_nsec, and timespec::tv_sec.

## ◆ clock_gettime()

int clock_gettime | ( | clockid_t | clock_id,
|  | struct timespec * | sp
| ) |  |

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().

## ◆ endhostent()

void endhostent | ( | void |  | ) |

Definition at line 4248 of file win32.c.

## ◆ endnetent()

void endnetent | ( | void |  | ) |

Definition at line 4249 of file win32.c.

## ◆ endprotoent()

void endprotoent | ( | void |  | ) |

Definition at line 4250 of file win32.c.

## ◆ endservent()

void endservent | ( | void |  | ) |

Definition at line 4251 of file win32.c.

## ◆ fchmod()

int fchmod | ( | int | fd,
|  | int | mode
| ) |  |

Definition at line 7713 of file win32.c.

References if(), int(), INVALID_HANDLE_VALUE, map_errno, and NULL.

## ◆ fcntl()

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

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().

## ◆ flock()

int flock | ( | int | fd,
|  | int | oper
| ) |  |

Definition at line 391 of file win32.c.

References NULL, rb_notimplement(), and rb_w32_asynchronize().

## ◆ freeifaddrs()

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().

## ◆ getegid()

rb_gid_t getegid | ( | void |  | ) |

Definition at line 2842 of file win32.c.

References ROOT_GID.

Referenced by eaccess(), and InitVM_process().

## ◆ geteuid()

rb_uid_t geteuid | ( | void |  | ) |

Definition at line 2828 of file win32.c.

References ROOT_UID.

Referenced by eaccess(), and InitVM_process().

## ◆ getgid()

rb_gid_t getgid | ( | void |  | ) |

Definition at line 2835 of file win32.c.

References ROOT_GID.

Referenced by eaccess().

## ◆ getifaddrs()

int getifaddrs | ( | struct ifaddrs ** | ifap | ) |

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().

## ◆ getlogin()

char * getlogin | ( | void |  | ) |

Definition at line 918 of file win32.c.

Referenced by rb_home_dir_of().

## ◆ getnetbyaddr()

struct netent * getnetbyaddr | ( | long | net,
|  | int | type
| ) |  |

Definition at line 4255 of file win32.c.

References NULL.

## ◆ getnetbyname()

struct netent * getnetbyname | ( | const char * | name | ) |

Definition at line 4257 of file win32.c.

References NULL.

## ◆ getnetent()

struct netent * getnetent | ( | void |  | ) |

Definition at line 4253 of file win32.c.

References NULL.

## ◆ getprotoent()

struct protoent * getprotoent | ( | void |  | ) |

Definition at line 4259 of file win32.c.

References NULL.

## ◆ getservent()

struct servent * getservent | ( | void |  | ) |

Definition at line 4261 of file win32.c.

References NULL.

## ◆ gettimeofday()

int __cdecl gettimeofday | ( | struct timeval * | tv,
|  | struct timezone * | tz
| ) |  |

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().

## ◆ getuid()

rb_uid_t getuid | ( | void |  | ) |

Definition at line 2821 of file win32.c.

References ROOT_UID.

Referenced by eaccess(), and rb_default_home_dir().

## ◆ gmtime_r()

struct tm * gmtime_r | ( | const time_t * | tp,
|  | struct tm * | rp
| ) |  |

Definition at line 7913 of file win32.c.

References error(), NULL, and rp.

## ◆ ioctl()

int ioctl | ( | int | i,
|  | int | u,
|  |  | ...
| ) |  |

Definition at line 2867 of file win32.c.

## ◆ kill()

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

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().

## ◆ lchown()

int lchown | ( | const char * | path,
|  | int | owner,
|  | int | group
| ) |  |

Definition at line 4832 of file win32.c.

## ◆ link()

int link | ( | const char * | from,
|  | const char * | to
| ) |  |

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().

## ◆ localtime_r()

struct tm * localtime_r | ( | const time_t * | tp,
|  | struct tm * | rp
| ) |  |

Definition at line 7937 of file win32.c.

References error(), NULL, and rp.

## ◆ rb_dir_getwd_ospath()

VALUE rb_dir_getwd_ospath | ( | void |  | ) |

Definition at line 4810 of file win32.c.

References NULL, and Qnil.

## ◆ rb_w32_accept()

int WSAAPI rb_w32_accept | ( | int | s,
|  | struct sockaddr * | addr,
|  | int * | addrlen
| ) |  |

Definition at line 3330 of file win32.c.

References map_errno, O_BINARY, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_access()

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

Definition at line 5890 of file win32.c.

References filecp.

## ◆ rb_w32_aspawn()

rb_pid_t rb_w32_aspawn | ( | int | mode,
|  | const char * | prog,
|  | char *const * | argv
| ) |  |

Definition at line 1600 of file win32.c.

References argv, filecp, and prog.

## ◆ rb_w32_aspawn_flags()

rb_pid_t rb_w32_aspawn_flags | ( | int | mode,
|  | const char * | prog,
|  | char *const * | argv,
|  | DWORD | flags
| ) |  |

Definition at line 1585 of file win32.c.

References argv, filecp, and prog.

## ◆ rb_w32_asynchronize()

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().

## ◆ rb_w32_bind()

int WSAAPI rb_w32_bind | ( | int | s,
|  | const struct sockaddr * | addr,
|  | int | addrlen
| ) |  |

Definition at line 3357 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_check_interrupt()

int rb_w32_check_interrupt | ( | void * |  | ) |

Referenced by rb_w32_select_with_thread().

## ◆ rb_w32_close()

int rb_w32_close | ( | int | fd | ) |

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().

## ◆ rb_w32_closedir()

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.

## ◆ rb_w32_connect()

int WSAAPI rb_w32_connect | ( | int | s,
|  | const struct sockaddr * | addr,
|  | int | addrlen
| ) |  |

Definition at line 3373 of file win32.c.

References EINPROGRESS, err, map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_conv_from_wchar()

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().

## ◆ rb_w32_conv_from_wstr()

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.

## ◆ rb_w32_dup2()

int rb_w32_dup2 | ( | int | oldfd,
|  | int | newfd
| ) |  |

Definition at line 6199 of file win32.c.

References dup2(), and set_new_std_fd.

## ◆ rb_w32_fclose()

int rb_w32_fclose | ( | FILE * | fp | ) |

Definition at line 6454 of file win32.c.

References _set_osfhnd, fileno, INVALID_HANDLE_VALUE, is_socket, LK_LEN, map_errno, and TO_SOCKET.

## ◆ rb_w32_fd_copy()

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.

## ◆ rb_w32_fd_dup()

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.

## ◆ rb_w32_fd_is_text()

char rb_w32_fd_is_text | ( | int | fd | ) |

Definition at line 7831 of file win32.c.

References _osfile, and FTEXT.

## ◆ rb_w32_fdclr()

void rb_w32_fdclr | ( | int | fd,
|  | fd_set * | set
| ) |  |

Definition at line 2883 of file win32.c.

References memmove(), and TO_SOCKET.

## ◆ rb_w32_fdisset()

int rb_w32_fdisset | ( | int | fd,
|  | fd_set * | set
| ) |  |

Definition at line 2901 of file win32.c.

References INVALID_HANDLE_VALUE, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_fdset()

void rb_w32_fdset | ( | int | fd,
|  | fd_set * | set
| ) |  |

Definition at line 2874 of file win32.c.

References FD_SET.

## ◆ rb_w32_file_identical_p()

VALUE rb_w32_file_identical_p | ( | VALUE | fname1,
|  | VALUE | fname2
| ) |  |

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.

## ◆ rb_w32_free_environ()

void rb_w32_free_environ | ( | char ** | env | ) |

Definition at line 6142 of file win32.c.

References env, free, and t.

## ◆ rb_w32_fstat()

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

Definition at line 5454 of file win32.c.

References fstat, L, and NULL.

## ◆ rb_w32_fstati128()

int rb_w32_fstati128 | ( | int | fd,
|  | struct stati128 * | st
| ) |  |

Definition at line 5471 of file win32.c.

References COPY_STAT, fstat, and stat.

## ◆ rb_w32_ftruncate()

int rb_w32_ftruncate | ( | int | fd,
|  | off_t | length
| ) |  |

Definition at line 5969 of file win32.c.

## ◆ rb_w32_get_environ()

char ** rb_w32_get_environ | ( | void |  | ) |

Definition at line 6105 of file win32.c.

References env, malloc, NULL, num, and wstr_to_utf8.

## ◆ rb_w32_get_osfhandle()

SOCKET rb_w32_get_osfhandle | ( | int | fh | ) |

Definition at line 1115 of file win32.c.

Referenced by rb_w32_start_process().

## ◆ rb_w32_getcwd()

char * rb_w32_getcwd | ( | char * | buffer,
|  | int | size
| ) |  |

Definition at line 4787 of file win32.c.

References filecp, and NULL.

## ◆ rb_w32_getenv()

char * rb_w32_getenv | ( | const char * | name | ) |

Definition at line 5293 of file win32.c.

References name.

## ◆ rb_w32_gethostbyaddr()

struct hostent *WSAAPI rb_w32_gethostbyaddr | ( | const char * | addr,
|  | int | len,
|  | int | type
| ) |  |

Definition at line 3887 of file win32.c.

References len, map_errno, NULL, and RUBY_CRITICAL.

## ◆ rb_w32_gethostbyname()

struct hostent *WSAAPI rb_w32_gethostbyname | ( | const char * | name | ) |

Definition at line 3902 of file win32.c.

References map_errno, name, NULL, and RUBY_CRITICAL.

## ◆ rb_w32_gethostname()

int WSAAPI rb_w32_gethostname | ( | char * | name,
|  | int | len
| ) |  |

Definition at line 3917 of file win32.c.

References len, map_errno, name, and RUBY_CRITICAL.

## ◆ rb_w32_getpeername()

int WSAAPI rb_w32_getpeername | ( | int | s,
|  | struct sockaddr * | addr,
|  | int * | addrlen
| ) |  |

Definition at line 3394 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_getpid()

rb_pid_t rb_w32_getpid | ( | void |  | ) |

Definition at line 6152 of file win32.c.

Referenced by rb_w32_pipe().

## ◆ rb_w32_getppid()

rb_pid_t rb_w32_getppid | ( | void |  | ) |

Definition at line 6160 of file win32.c.

References int(), len, long(), and NULL.

## ◆ rb_w32_getprotobyname()

struct protoent *WSAAPI rb_w32_getprotobyname | ( | const char * | name | ) |

Definition at line 3932 of file win32.c.

References map_errno, name, NULL, and RUBY_CRITICAL.

## ◆ rb_w32_getprotobynumber()

struct protoent *WSAAPI rb_w32_getprotobynumber | ( | int | num | ) |

Definition at line 3947 of file win32.c.

References map_errno, NULL, num, and RUBY_CRITICAL.

## ◆ rb_w32_getservbyname()

struct servent *WSAAPI rb_w32_getservbyname | ( | const char * | name,
|  | const char * | proto
| ) |  |

Definition at line 3962 of file win32.c.

References map_errno, name, NULL, and RUBY_CRITICAL.

## ◆ rb_w32_getservbyport()

struct servent *WSAAPI rb_w32_getservbyport | ( | int | port,
|  | const char * | proto
| ) |  |

Definition at line 3977 of file win32.c.

References map_errno, NULL, and RUBY_CRITICAL.

## ◆ rb_w32_getsockname()

int WSAAPI rb_w32_getsockname | ( | int | fd,
|  | struct sockaddr * | addr,
|  | int * | addrlen
| ) |  |

Definition at line 3409 of file win32.c.

References GET_FAMILY, map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_getsockopt()

int WSAAPI rb_w32_getsockopt | ( | int | s,
|  | int | level,
|  | int | optname,
|  | char * | optval,
|  | int * | optlen
| ) |  |

Definition at line 3439 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_home_dir()

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().

## ◆ rb_w32_inet_ntop()

const char *WSAAPI rb_w32_inet_ntop | ( | int | af,
|  | const void * | addr,
|  | char * | numaddr,
|  | size_t | numaddr_len
| ) |  |

Definition at line 7798 of file win32.c.

References in(), memcpy, NULL, and snprintf.

## ◆ rb_w32_inet_pton()

int WSAAPI rb_w32_inet_pton | ( | int | af,
|  | const char * | src,
|  | void * | dst
| ) |  |

Definition at line 7817 of file win32.c.

References int(), and NULL.

## ◆ rb_w32_io_cancelable_p()

int rb_w32_io_cancelable_p | ( | int | fd | ) |

Definition at line 2647 of file win32.c.

References is_socket, and TO_SOCKET.

## ◆ rb_w32_ioctlsocket()

int WSAAPI rb_w32_ioctlsocket | ( | int | s,
|  | long | cmd,
|  | u_long * | argp
| ) |  |

Definition at line 3454 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_is_socket()

int rb_w32_is_socket | ( | int | fd | ) |

Definition at line 2747 of file win32.c.

References is_socket, and TO_SOCKET.

## ◆ rb_w32_isatty()

int rb_w32_isatty | ( | int | fd | ) |

Definition at line 7754 of file win32.c.

References _osfhnd.

## ◆ rb_w32_listen()

int WSAAPI rb_w32_listen | ( | int | s,
|  | int | backlog
| ) |  |

Definition at line 3469 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_lseek()

off_t rb_w32_lseek | ( | int | fd,
|  | off_t | ofs,
|  | int | whence
| ) |  |

Definition at line 5863 of file win32.c.

References is_socket, and TO_SOCKET.

## ◆ rb_w32_lstati128()

int rb_w32_lstati128 | ( | const char * | path,
|  | struct stati128 * | st
| ) |  |

Definition at line 5856 of file win32.c.

References filecp, and TRUE.

## ◆ rb_w32_map_errno()

int rb_w32_map_errno | ( | DWORD | winerr | ) |

Definition at line 280 of file win32.c.

References int(), and winerr.

Referenced by rb_readlink().

## ◆ rb_w32_mbstr_to_wstr()

WCHAR * rb_w32_mbstr_to_wstr | ( | UINT | cp,
|  | const char * | str,
|  | int | clen,
|  | long * | plen
| ) |  |

Definition at line 2186 of file win32.c.

References len, malloc, NULL, ptr, and str.

Referenced by dln_load().

## ◆ rb_w32_mkdir()

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

Definition at line 7578 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_open()

int rb_w32_open | ( | const char * | file,
|  | int | oflag,
|  |  | ...
| ) |  |

Definition at line 6246 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_opendir()

DIR * rb_w32_opendir | ( | const char * | filename | ) |

Definition at line 2203 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_osver()

DWORD rb_w32_osver | ( | void |  | ) |

Definition at line 326 of file win32.c.

## ◆ rb_w32_pipe()

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

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.

## ◆ rb_w32_read()

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().

## ◆ rb_w32_read_reparse_point()

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().

## ◆ rb_w32_readdir()

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().

## ◆ rb_w32_recv()

int WSAAPI rb_w32_recv | ( | int | fd,
|  | char * | buf,
|  | int | len,
|  | int | flags
| ) |  |

Definition at line 3611 of file win32.c.

References len, NULL, and TRUE.

Referenced by rb_w32_read().

## ◆ rb_w32_recvfrom()

int WSAAPI rb_w32_recvfrom | ( | int | fd,
|  | char * | buf,
|  | int | len,
|  | int | flags,
|  | struct sockaddr * | from,
|  | int * | fromlen
| ) |  |

Definition at line 3618 of file win32.c.

References len, and TRUE.

## ◆ rb_w32_rename()

int rb_w32_rename | ( | const char * | from,
|  | const char * | to
| ) |  |

Definition at line 5389 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_reparse_symlink_p()

int rb_w32_reparse_symlink_p | ( | const WCHAR * | path | ) |

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.

## ◆ rb_w32_rewinddir()

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().

## ◆ rb_w32_rmdir()

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

Definition at line 7613 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_seekdir()

void rb_w32_seekdir | ( | DIR * | dirp,
|  | long | loc
| ) |  |

Definition at line 2414 of file win32.c.

References DIR::curr, DIR::loc, and rb_w32_rewinddir().

## ◆ rb_w32_select()

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().

## ◆ 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().

## ◆ rb_w32_send()

int WSAAPI rb_w32_send | ( | int | fd,
|  | const char * | buf,
|  | int | len,
|  | int | flags
| ) |  |

Definition at line 3626 of file win32.c.

References FALSE, len, and NULL.

Referenced by rb_w32_write().

## ◆ rb_w32_sendto()

int WSAAPI rb_w32_sendto | ( | int | fd,
|  | const char * | buf,
|  | int | len,
|  | int | flags,
|  | const struct sockaddr * | to,
|  | int | tolen
| ) |  |

Definition at line 3633 of file win32.c.

References FALSE, and len.

## ◆ rb_w32_set_nonblock()

int rb_w32_set_nonblock | ( | int | fd | ) |

Definition at line 4446 of file win32.c.

References rb_w32_set_nonblock2(), and TRUE.

## ◆ rb_w32_set_nonblock2()

int rb_w32_set_nonblock2 | ( | int | fd,
|  | int | nonblock
| ) |  |

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().

## ◆ rb_w32_set_thread_description()

int rb_w32_set_thread_description | ( | HANDLE | th,
|  | const WCHAR * | name
| ) |  |

Definition at line 8134 of file win32.c.

References FALSE, HRESULT(), name, and NULL.

Referenced by rb_w32_set_thread_description_str().

## ◆ rb_w32_set_thread_description_str()

int rb_w32_set_thread_description_str | ( | HANDLE | th,
|  | VALUE | name
| ) |  |

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.

## ◆ rb_w32_setsockopt()

int WSAAPI rb_w32_setsockopt | ( | int | s,
|  | int | level,
|  | int | optname,
|  | const char * | optval,
|  | int | optlen
| ) |  |

Definition at line 3781 of file win32.c.

References map_errno, RUBY_CRITICAL, and TO_SOCKET.

## ◆ rb_w32_shutdown()

int WSAAPI rb_w32_shutdown | ( | int | s,
|  | int | how
| ) |  |

Definition at line 3796 of file win32.c.

References map_errno, RUBY_CRITICAL, shutdown, and TO_SOCKET.

## ◆ rb_w32_socket()

int WSAAPI rb_w32_socket | ( | int | af,
|  | int | type,
|  | int | protocol
| ) |  |

Definition at line 3861 of file win32.c.

References MAKE_SOCKDATA, map_errno, O_BINARY, and RUBY_CRITICAL.

## ◆ rb_w32_spawn()

rb_pid_t rb_w32_spawn | ( | int | mode,
|  | const char * | cmd,
|  | const char * | prog
| ) |  |

Definition at line 1497 of file win32.c.

References filecp, and prog.

## ◆ rb_w32_special_folder()

VALUE rb_w32_special_folder | ( | int | type | ) |

Definition at line 506 of file win32.c.

References numberof, PATH_MAX, Qnil, rb_filesystem_encoding(), and rb_w32_conv_from_wchar().

## ◆ rb_w32_start_process()

HANDLE rb_w32_start_process | ( | const char * | abspath,
|  | char *const * | argv,
|  | int | out_fd
| ) |  |

Definition at line 1330 of file win32.c.

References alloca, argv, FALSE, filecp, free, len, mbstr_to_wstr, NULL, and rb_w32_get_osfhandle().

## ◆ rb_w32_stat()

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

Definition at line 5753 of file win32.c.

References COPY_STAT, FALSE, and filecp.

## ◆ rb_w32_stati128()

int rb_w32_stati128 | ( | const char * | path,
|  | struct stati128 * | st
| ) |  |

Definition at line 5828 of file win32.c.

References FALSE, and filecp.

## ◆ rb_w32_strerror()

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.

## ◆ rb_w32_sysinit()

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().

## ◆ rb_w32_system_tmpdir()

UINT rb_w32_system_tmpdir | ( | WCHAR * | path,
|  | UINT | len
| ) |  |

Definition at line 522 of file win32.c.

References CSIDL_LOCAL_APPDATA, L, len, memcpy, and numberof.

## ◆ rb_w32_telldir()

long rb_w32_telldir | ( | DIR * | dirp | ) |

Definition at line 2403 of file win32.c.

References DIR::loc.

## ◆ rb_w32_time_subtract()

int rb_w32_time_subtract | ( | struct timeval * | rest,
|  | const struct timeval * | wait
| ) |  |

Definition at line 3130 of file win32.c.

References timeval::tv_sec, timeval::tv_usec, and wait().

Referenced by rb_w32_select_with_thread().

## ◆ rb_w32_times()

int rb_w32_times | ( | struct tms * | tmbuf | ) |

Definition at line 5991 of file win32.c.

References tms::tms_cstime, tms::tms_cutime, tms::tms_stime, and tms::tms_utime.

## ◆ rb_w32_truncate()

int rb_w32_truncate | ( | const char * | path,
|  | off_t | length
| ) |  |

Definition at line 5962 of file win32.c.

References filecp.

## ◆ rb_w32_uaccess()

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

Definition at line 5897 of file win32.c.

## ◆ rb_w32_uaspawn()

rb_pid_t rb_w32_uaspawn | ( | int | mode,
|  | const char * | prog,
|  | char *const * | argv
| ) |  |

Definition at line 1607 of file win32.c.

References argv, prog, and rb_w32_uaspawn_flags().

## ◆ rb_w32_uaspawn_flags()

rb_pid_t rb_w32_uaspawn_flags | ( | int | mode,
|  | const char * | prog,
|  | char *const * | argv,
|  | DWORD | flags
| ) |  |

Definition at line 1593 of file win32.c.

References argv, and prog.

Referenced by rb_w32_uaspawn().

## ◆ rb_w32_uchdir()

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

Definition at line 7530 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_uchmod()

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

Definition at line 7699 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_uchown()

int rb_w32_uchown | ( | const char * | path,
|  | int | owner,
|  | int | group
| ) |  |

Definition at line 4826 of file win32.c.

## ◆ rb_w32_ugetcwd()

char * rb_w32_ugetcwd | ( | char * | buffer,
|  | int | size
| ) |  |

Definition at line 4794 of file win32.c.

References NULL.

## ◆ rb_w32_ugetenv()

char * rb_w32_ugetenv | ( | const char * | name | ) |

Definition at line 5286 of file win32.c.

References name.

## ◆ rb_w32_ulchown()

int rb_w32_ulchown | ( | const char * | path,
|  | int | owner,
|  | int | group
| ) |  |

Definition at line 4838 of file win32.c.

## ◆ rb_w32_ulink()

int rb_w32_ulink | ( | const char * | from,
|  | const char * | to
| ) |  |

Definition at line 4967 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_ulstati128()

int rb_w32_ulstati128 | ( | const char * | path,
|  | struct stati128 * | st
| ) |  |

Definition at line 5849 of file win32.c.

References TRUE.

## ◆ rb_w32_umkdir()

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

Definition at line 7564 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_unlink()

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

Definition at line 7685 of file win32.c.

References filecp_to_wstr, free, and NULL.

## ◆ rb_w32_unwrap_io_handle()

int rb_w32_unwrap_io_handle | ( | int | fd | ) |

Definition at line 7983 of file win32.c.

References _set_osfhnd, INVALID_HANDLE_VALUE, is_socket, LK_LEN, NULL, and TO_SOCKET.

## ◆ rb_w32_uopen()

int rb_w32_uopen | ( | const char * | file,
|  | int | oflag,
|  |  | ...
| ) |  |

Definition at line 6212 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_uopendir()

DIR * rb_w32_uopendir | ( | const char * | filename | ) |

Definition at line 2216 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_ureaddir()

struct direct * rb_w32_ureaddir | ( | DIR * | dirp | ) |

Definition at line 2391 of file win32.c.

## ◆ rb_w32_ureadlink()

ssize_t rb_w32_ureadlink | ( | const char * | path,
|  | char * | buf,
|  | size_t | bufsize
| ) |  |

Definition at line 5148 of file win32.c.

## ◆ rb_w32_urename()

int rb_w32_urename | ( | const char * | from,
|  | const char * | to
| ) |  |

Definition at line 5370 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_urmdir()

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

Definition at line 7627 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_uspawn()

rb_pid_t rb_w32_uspawn | ( | int | mode,
|  | const char * | cmd,
|  | const char * | prog
| ) |  |

Definition at line 1505 of file win32.c.

References prog.

## ◆ rb_w32_ustati128()

int rb_w32_ustati128 | ( | const char * | path,
|  | struct stati128 * | st
| ) |  |

Definition at line 5821 of file win32.c.

References FALSE.

## ◆ rb_w32_usymlink()

int rb_w32_usymlink | ( | const char * | src,
|  | const char * | link
| ) |  |

Definition at line 5231 of file win32.c.

References link().

## ◆ rb_w32_utime()

int rb_w32_utime | ( | const char * | path,
|  | const struct utimbuf * | times
| ) |  |

Definition at line 7477 of file win32.c.

References utimbuf::actime, AT_FDCWD, filecp, utimbuf::modtime, timespec::tv_nsec, and timespec::tv_sec.

## ◆ rb_w32_utimensat()

int rb_w32_utimensat | ( | int | dirfd,
|  | const char * | path,
|  | const struct timespec * | times,
|  | int | flags
| ) |  |

Definition at line 7523 of file win32.c.

References filecp.

## ◆ rb_w32_utimes()

int rb_w32_utimes | ( | const char * | path,
|  | const struct timeval * | times
| ) |  |

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.

## ◆ rb_w32_utruncate()

int rb_w32_utruncate | ( | const char * | path,
|  | off_t | length
| ) |  |

Definition at line 5955 of file win32.c.

## ◆ rb_w32_uunlink()

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

Definition at line 7671 of file win32.c.

References free, NULL, and utf8_to_wstr.

## ◆ rb_w32_uutime()

int rb_w32_uutime | ( | const char * | path,
|  | const struct utimbuf * | times
| ) |  |

Definition at line 7464 of file win32.c.

References utimbuf::actime, AT_FDCWD, utimbuf::modtime, timespec::tv_nsec, and timespec::tv_sec.

## ◆ rb_w32_uutimensat()

int rb_w32_uutimensat | ( | int | dirfd,
|  | const char * | path,
|  | const struct timespec * | times,
|  | int | flags
| ) |  |

Definition at line 7516 of file win32.c.

## ◆ rb_w32_uutimes()

int rb_w32_uutimes | ( | const char * | path,
|  | const struct timeval * | times
| ) |  |

Definition at line 7490 of file win32.c.

References AT_FDCWD, timespec::tv_nsec, timeval::tv_sec, timespec::tv_sec, and timeval::tv_usec.

## ◆ rb_w32_wait_events()

int rb_w32_wait_events | ( | HANDLE * | events,
|  | int | num,
|  | DWORD | timeout
| ) |  |

## ◆ rb_w32_wopen()

int rb_w32_wopen | ( | const WCHAR * | file,
|  | int | oflag,
|  |  | ...
| ) |  |

Definition at line 6266 of file win32.c.

## ◆ rb_w32_wrap_io_handle()

int rb_w32_wrap_io_handle | ( | HANDLE | h,
|  | int | flags
| ) |  |

Definition at line 7961 of file win32.c.

References f, len, and O_NONBLOCK.

## ◆ rb_w32_write()

ssize_t rb_w32_write | ( | int | fd,
|  | const void * | buf,
|  | size_t | size
| ) |  |

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().

## ◆ rb_w32_write_console()

long rb_w32_write_console | ( | uintptr_t | strarg,
|  | int | fd
| ) |  |

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().

## ◆ rb_w32_wstr_to_mbstr()

char * rb_w32_wstr_to_mbstr | ( | UINT | cp,
|  | const WCHAR * | wstr,
|  | int | clen,
|  | long * | plen
| ) |  |

Definition at line 2170 of file win32.c.

References len, malloc, NULL, and ptr.

## ◆ readlink()

ssize_t readlink | ( | const char * | path,
|  | char * | buf,
|  | size_t | bufsize
| ) |  |

Definition at line 5155 of file win32.c.

References filecp.

## ◆ recvmsg()

int recvmsg | ( | int | fd,
|  | struct msghdr * | msg,
|  | int | flags
| ) |  |

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.

## ◆ ruby_brace_glob_with_enc()

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().

## ◆ sendmsg()

int sendmsg | ( | int | fd,
|  | const struct msghdr * | msg,
|  | int | flags
| ) |  |

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.

## ◆ setgid()

int setgid | ( | rb_gid_t | gid | ) |

Definition at line 2856 of file win32.c.

References ROOT_GID.

Referenced by rb_execarg_run_options().

## ◆ sethostent()

void sethostent | ( | int | stayopen | ) |

Definition at line 4263 of file win32.c.

## ◆ setnetent()

void setnetent | ( | int | stayopen | ) |

Definition at line 4265 of file win32.c.

## ◆ setprotoent()

void setprotoent | ( | int | stayopen | ) |

Definition at line 4267 of file win32.c.

## ◆ setservent()

void setservent | ( | int | stayopen | ) |

Definition at line 4269 of file win32.c.

## ◆ setuid()

int setuid | ( | rb_uid_t | uid | ) |

Definition at line 2849 of file win32.c.

References ROOT_UID.

Referenced by rb_execarg_run_options().

## ◆ signbit()

int signbit | ( | double | x | ) |

Definition at line 7789 of file win32.c.

References CHAR_BIT, and long().

Referenced by lgamma_r().

## ◆ socketpair()

int socketpair | ( | int | af,
|  | int | type,
|  | int | protocol,
|  | int * | sv
| ) |  |

Definition at line 4078 of file win32.c.

References MAKE_SOCKDATA, O_BINARY, and rb_w32_close().

## ◆ STATIC_ASSERT()

STATIC_ASSERT | ( | std_handle | ,
|  | (STD_OUTPUT_HANDLE-STD_INPUT_HANDLE) | = `=(STD_ERROR_HANDLE-STD_OUTPUT_HANDLE)`
| ) |  |

## ◆ symlink()

int symlink | ( | const char * | src,
|  | const char * | link
| ) |  |

Definition at line 5238 of file win32.c.

References filecp, and link().

## ◆ wait()

int wait | ( | int * | status | ) |

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().

## ◆ waitpid()

rb_pid_t waitpid | ( | rb_pid_t | pid,
|  | int * | stat_loc,
|  | int | options
| ) |  |

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().

## Variable Documentation

## ◆ __pioinfo

EXTERN_C _CRTIMP ioinfo* __pioinfo[]

Definition at line 2523 of file win32.c.

## ◆ err

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().

## ◆ rb_f_notimplement_

VALUE(*const rb_f_notimplement_) (int, const VALUE *, VALUE, VALUE) | ( | int | ,
|  | const VALUE * | ,
|  | VALUE | ,
|  | VALUE |
| ) |  | = rb_f_notimplement

Definition at line 8174 of file win32.c.

## ◆ winerr

DWORD winerr

Definition at line 141 of file win32.c.

Referenced by rb_w32_map_errno(), and rb_w32_strerror().