Ruby 2.0.0p353(2013-11-22revision43784)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
win32.c File Reference
`#include "ruby/ruby.h"`
`#include "ruby/encoding.h"`
`#include "dln.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 "ruby/win32.h"`
`#include "win32/dir.h"`
`#include <sys/timeb.h>`
Include dependency graph for win32.c:

Go to the source code of this file.

## Data Structures
struct | constat
struct | ChildRecord
struct | _NtCmdLineElement
struct | ioinfo
struct | WSAMSG
struct | asynchronous_arg_t

## Macros
#define | isdirsep(x) ((x) == '/' || (x) == '\\')
#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(expr) do { expr; } while (0)
#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 | numberof(array) (sizeof(array) / sizeof(*array))
#define | env wk.val
#define | set_env_val(vname)
#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 | MAXPATHLEN 512
#define | STRNDUPV(ptr, v, src, len) (((char *)memcpy(((ptr) = ALLOCV((v), (len) + 1)), (src), (len)))[len] = 0)
#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 | PATHLEN 1024
#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 | MTHREAD_ONLY(x)
#define | STHREAD_ONLY(x) x
#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 | _pipech(i) (_pioinfo(i)->pipech)
#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 | 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 | COPY_STAT(src, dest, size_cast)
#define | yield_once() Sleep(0)
#define | yield_until(condition) do yield_once(); while (!(condition))
#define | FILE_COUNT _cnt
#define | FILE_READPTR _ptr
#define | FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)
#define | BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED)
#define | COMMON_LVB_UNDERSCORE 0x8000
#define | INVALID_SET_FILE_POINTER ((DWORD)-1)

## Typedefs
typedef BOOL(WINAPI * | cancel_io_t )(HANDLE)
typedef struct _NtCmdLineElement | NtCmdLineElement

## Enumerations
enum | { constat_init = -2, constat_esc = -1, constat_seq = 0 }

## Functions
static struct ChildRecord * | CreateChild (const WCHAR *, const WCHAR *, SECURITY_ATTRIBUTES *, HANDLE, HANDLE, HANDLE, DWORD)
static int | has_redirection (const char *)
int | rb_w32_wait_events (HANDLE *events, int num, DWORD timeout)
static int | rb_w32_open_osfhandle (intptr_t osfhandle, int flags)
static int | wstati64 (const WCHAR *path, struct stati64 *st)
VALUE | rb_w32_conv_from_wchar (const WCHAR *wstr, rb_encoding *enc)
int | rb_w32_map_errno (DWORD winerr)
static void | get_version (void)
DWORD | rb_w32_osver (void)
static uintptr_t | flock_winnt (uintptr_t self, int argc, uintptr_t *argv)
int | flock (int fd, int oper)
static WCHAR * | translate_wchar (WCHAR *p, int from, int to)
static char * | translate_char (char *p, int from, int to)
static BOOL | get_special_folder (int n, WCHAR *env)
static void | regulate_path (WCHAR *path)
static FARPROC | get_proc_address (const char *module, const char *func, HANDLE *mh)
static UINT | get_system_directory (WCHAR *path, UINT len)
VALUE | rb_w32_special_folder (int type)
UINT | rb_w32_system_tmpdir (WCHAR *path, UINT len)
static void | init_env (void)
static void | init_func (void)
static void | init_stdhandle (void)
static int | free_conlist (st_data_t key, st_data_t val, st_data_t arg)
static void | constat_delete (HANDLE h)
static void | exit_handler (void)
static void | StartSockets (void)
static int | socklist_insert (SOCKET sock, int flag)
static int | socklist_lookup (SOCKET sock, int *flagp)
static int | socklist_delete (SOCKET *sockp, int *flagp)
void | rb_w32_sysinit (int *argc, char ***argv)
char * | getlogin (void)
static struct ChildRecord * | FindChildSlot (rb_pid_t pid)
static struct ChildRecord * | FindChildSlotByHandle (HANDLE h)
static void | CloseChildHandle (struct ChildRecord *child)
static struct ChildRecord * | FindFreeChildSlot (void)
static int | internal_match (const void *key, const void *elem)
static int | is_command_com (const char *interp)
static int | internal_cmd_match (const char *cmdname, int nt)
static int | is_internal_cmd (const char *cmd, int nt)
SOCKET | rb_w32_get_osfhandle (int fh)
static int | join_argv (char *cmd, char *const *argv, BOOL escape)
static int | check_spawn_mode (int mode)
static rb_pid_t | child_result (struct ChildRecord *child, int mode)
static int | is_batch (const char *cmd)
static UINT | filecp (void)
static WCHAR * | mbstr_to_wstr (UINT, const char *, int, long *)
static char * | wstr_to_mbstr (UINT, const WCHAR *, int, long *)
rb_pid_t | rb_w32_spawn (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_aspawn (int mode, const char *prog, char *const *argv)
static int | insert (const char *path, VALUE vinfo, void *enc)
static NtCmdLineElement ** | cmdglob (NtCmdLineElement *patt, NtCmdLineElement **tail)
static char * | skipspace (char *ptr)
int | rb_w32_cmdvector (const char *cmd, char ***vec)
static HANDLE | open_dir_handle (const WCHAR *filename, WIN32_FIND_DATAW *fd)
static DIR * | opendir_internal (WCHAR *wpath, const char *filename)
DIR * | rb_w32_opendir (const char *filename)
DIR * | rb_w32_uopendir (const char *filename)
static void | move_to_next_entry (DIR *dirp)
static BOOL | win32_direct_conv (const WCHAR *file, struct direct *entry, rb_encoding *dummy)
char * | rb_w32_conv_from_wstr (const WCHAR *wstr, long *lenp, rb_encoding *enc)
static BOOL | ruby_direct_conv (const WCHAR *file, struct direct *entry, rb_encoding *enc)
static struct direct * | readdir_internal (DIR *dirp, BOOL(*conv)(const WCHAR *, struct direct *, rb_encoding *), rb_encoding *enc)
struct direct * | rb_w32_readdir (DIR *dirp, rb_encoding *enc)
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)
static ioinfo * | _pioinfo (int)
static int | is_socket (SOCKET)
static int | is_console (SOCKET)
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)
static int | extract_fd (rb_fdset_t *dst, fd_set *src, int(*func)(SOCKET))
static int | copy_fd (fd_set *dst, fd_set *src)
static int | is_not_socket (SOCKET sock)
static int | is_pipe (SOCKET sock)
static int | is_readable_pipe (SOCKET sock)
static int | is_readable_console (SOCKET sock)
static int | is_invalid_handle (SOCKET sock)
static int | do_select (int nfds, fd_set *rd, fd_set *wr, fd_set *ex, struct timeval *timeout)
int | rb_w32_time_subtract (struct timeval *rest, const struct timeval *wait)
static int | compare (const struct timeval *t1, const struct timeval *t2)
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)
static FARPROC | get_wsa_extension_function (SOCKET s, GUID *guid)
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)
static int | finish_overlapped_socket (BOOL input, SOCKET s, WSAOVERLAPPED *wol, int result, DWORD *len, DWORD size)
static int | overlapped_socket_io (BOOL input, int fd, char *buf, int len, int flags, struct sockaddr *addr, int *addrlen)
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)
static SOCKET | open_ifs_socket (int af, int type, int protocol)
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)
static int | socketpair_internal (int af, int type, int protocol, SOCKET *sv)
int | rb_w32_socketpair (int af, int type, int protocol, int *sv)
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)
static int | setfl (SOCKET sock, int arg)
static int | dupfd (HANDLE hDup, char flags, int minfd)
int | fcntl (int fd, int cmd,...)
static rb_pid_t | poll_child_status (struct ChildRecord *child, int *stat_loc)
rb_pid_t | waitpid (rb_pid_t pid, int *stat_loc, int options)
static int | filetime_to_timeval (const FILETIME *ft, struct timeval *tv)
int _cdecl | gettimeofday (struct timeval *tv, struct timezone *tz)
char * | rb_w32_getcwd (char *buffer, int size)
int | chown (const char *path, int owner, int group)
int | rb_w32_uchown (const char *path, int owner, int group)
int | kill (int pid, int sig)
static int | wlink (const WCHAR *from, const WCHAR *to)
int | rb_w32_ulink (const char *from, const char *to)
int | link (const char *from, const char *to)
int | wait (int *status)
char * | rb_w32_ugetenv (const char *name)
char * | rb_w32_getenv (const char *name)
static int | wrename (const WCHAR *oldpath, const WCHAR *newpath)
int | rb_w32_urename (const char *from, const char *to)
int | rb_w32_rename (const char *from, const char *to)
static int | isUNCRoot (const WCHAR *path)
static time_t | filetime_to_unixtime (const FILETIME *ft)
int | rb_w32_fstat (int fd, struct stat *st)
int | rb_w32_fstati64 (int fd, struct stati64 *st)
static unsigned | fileattr_to_unixmode (DWORD attr, const WCHAR *path)
static int | check_valid_dir (const WCHAR *path)
static int | winnt_stat (const WCHAR *path, struct stati64 *st)
int | rb_w32_stat (const char *path, struct stat *st)
int | rb_w32_ustati64 (const char *path, struct stati64 *st)
int | rb_w32_stati64 (const char *path, struct stati64 *st)
int | rb_w32_access (const char *path, int mode)
int | rb_w32_uaccess (const char *path, int mode)
static int | rb_chsize (HANDLE h, off_t size)
int | rb_w32_truncate (const char *path, off_t length)
int | rb_w32_ftruncate (int fd, off_t length)
int | fseeko (FILE *stream, off_t offset, int whence)
off_t | rb_w32_ftello (FILE *stream)
static long | filetime_to_clock (FILETIME *ft)
int | rb_w32_times (struct tms *tmbuf)
static void | catch_interrupt (void)
int | rb_w32_getc (FILE *stream)
int | rb_w32_putc (int c, FILE *stream)
static DWORD WINAPI | call_asynchronous (PVOID argp)
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)
int | rb_w32_uopen (const char *file, int oflag,...)
static int | check_if_wdir (const WCHAR *wfile)
static int | check_if_dir (const char *file)
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])
static struct constat * | constat_handle (HANDLE h)
static void | constat_reset (HANDLE h)
static DWORD | constat_attr (int count, const int *seq, DWORD attr, DWORD default_attr)
static void | constat_apply (HANDLE handle, struct constat *s, WCHAR w)
static long | constat_parse (HANDLE h, struct constat *s, const WCHAR **ptrp, long *lenp)
int | rb_w32_close (int fd)
static int | setup_overlapped (OVERLAPPED *ol, int fd)
static void | finish_overlapped (OVERLAPPED *ol, int fd, DWORD size)
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)
static int | unixtime_to_filetime (time_t time, FILETIME *ft)
static int | wutime (const WCHAR *path, const struct utimbuf *times)
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_uchdir (const char *path)
static int | wmkdir (const WCHAR *wpath, int mode)
int | rb_w32_umkdir (const char *path, int mode)
int | rb_w32_mkdir (const char *path, int mode)
static int | wrmdir (const WCHAR *wpath)
int | rb_w32_rmdir (const char *path)
int | rb_w32_urmdir (const char *path)
static int | wunlink (const WCHAR *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 | rb_w32_isatty (int fd)
int | signbit (double x)
const char *WSAAPI | rb_w32_inet_ntop (int af, const void *addr, char *numaddr, size_t numaddr_len)
char | rb_w32_fd_is_text (int fd)
static int | unixtime_to_systemtime (const time_t t, SYSTEMTIME *st)
static void | systemtime_to_tm (const SYSTEMTIME *st, struct tm *t)
static int | systemtime_to_localtime (TIME_ZONE_INFORMATION *tz, SYSTEMTIME *gst, SYSTEMTIME *lst)
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)

## Variables
struct {
DWORD winerr
int err
} | errmap []
static const char * | NTLoginName
static OSVERSIONINFO | osver
static cancel_io_t | cancel_io = NULL
static CRITICAL_SECTION | select_mutex
static int | NtSocketsInitialized = 0
static st_table * | socklist = NULL
static st_table * | conlist = NULL
static char * | envarea
static char * | uenvarea
static struct ChildRecord | ChildRecord [MAXCHILDNUM]
static const char *const | szInternalCmds []
EXTERN_C _CRTIMP ioinfo * | __pioinfo []

## Macro Definition Documentation

#define _CRTIMP __declspec(dllimport)

Definition at line 2132 of file win32.c.

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

Definition at line 2141 of file win32.c.

Referenced by dupfd(), finish_overlapped(), rb_w32_isatty(), rb_w32_read(), rb_w32_write(), rb_w32_write_console(), and setup_overlapped().

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

Definition at line 2142 of file win32.c.

Referenced by fcntl(), finish_overlapped(), rb_w32_fd_is_text(), rb_w32_read(), rb_w32_wopen(), rb_w32_write(), and setup_overlapped().

#define _pipech | ( |  | i | ) | (_pioinfo(i)->pipech)

Definition at line 2143 of file win32.c.

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

Definition at line 2179 of file win32.c.

Referenced by rb_w32_accept(), rb_w32_close(), rb_w32_fclose(), rb_w32_open_osfhandle(), rb_w32_pipe(), rb_w32_unwrap_io_handle(), and rb_w32_wopen().

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

Definition at line 2180 of file win32.c.

Referenced by rb_w32_open_osfhandle(), rb_w32_pipe(), rb_w32_read(), and rb_w32_wopen().

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

Definition at line 1171 of file win32.c.

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

#define BACKGROUND_MASK (BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED)

Referenced by constat_attr().

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

Definition at line 1740 of file win32.c.

Referenced by opendir_internal(), and readdir_internal().

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

Definition at line 1741 of file win32.c.

Referenced by opendir_internal(), and readdir_internal().

#define COMMON_LVB_UNDERSCORE 0x8000

Referenced by constat_attr().

#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)
src
VALUE src
Definition: tcltklib.c:7953

Definition at line 4422 of file win32.c.

Referenced by rb_w32_fstati64(), and rb_w32_stat().

#define CSIDL_COMMON_APPDATA 35

Definition at line 370 of file win32.c.

Referenced by etc_sysconfdir().

#define CSIDL_LOCAL_APPDATA 28

Definition at line 367 of file win32.c.

Referenced by rb_w32_system_tmpdir().

#define CSIDL_PROFILE 40

Definition at line 379 of file win32.c.

Referenced by init_env().

#define CSIDL_SYSTEM 37

Definition at line 376 of file win32.c.

#define CSIDL_WINDOWS 36

Definition at line 373 of file win32.c.

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

Definition at line 70 of file win32.c.

Referenced by rb_w32_asynchronize().

#define DIRENT_PER_CHAR (CHAR_BIT / 2)

Definition at line 1742 of file win32.c.

Referenced by opendir_internal().

#define END_FOREACH_CHILD } while (0)

Definition at line 779 of file win32.c.

Referenced by FindChildSlot(), FindChildSlotByHandle(), FindFreeChildSlot(), and waitpid().

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

Definition at line 63 of file win32.c.

Referenced by rb_w32_getc().

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

Definition at line 64 of file win32.c.

Referenced by rb_w32_putc().

#define env wk.val

Referenced by check_env_value(), check_exec_env_i(), env_alloc(), env_each_pair(), env_empty_p(), env_fetch(), env_free(), env_has_value(), env_inspect(), env_key(), env_keys(), env_mark(), env_memsize(), env_rassoc(), env_replace(), env_select(), env_shift(), env_size(), env_to_a(), env_to_hash(), env_update(), env_values(), envix(), eval_string_with_cref(), i_apply_case_fold(), init_env(), parse_exp(), rb_check_exec_env(), rb_env_size(), rb_exec_fillarg(), rb_execarg_init(), rb_execarg_setenv(), rb_f_getenv(), rb_io_s_popen(), rb_vmdebug_proc_dump_raw(), rb_w32_free_environ(), rb_w32_get_environ(), rb_w32_getenv(), rb_w32_ugetenv(), save_env(), set_optimize_info_from_tree(), toplevel_context(), vm_collect_local_variables_in_heap(), vm_make_env_each(), and vm_set_main_stack().

#define ERROR_PIPE_LOCAL 229L

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

Definition at line 2186 of file win32.c.

Referenced by rb_w32_open_osfhandle(), rb_w32_wopen(), and setup_overlapped().

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

Definition at line 2187 of file win32.c.

Referenced by finish_overlapped(), rb_w32_open_osfhandle(), rb_w32_wopen(), rb_w32_write(), and setup_overlapped().

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

Definition at line 2183 of file win32.c.

Referenced by rb_w32_read(), and rb_w32_write().

#define FILE_COUNT _cnt

Definition at line 4947 of file win32.c.

#define FILE_READPTR _ptr

Definition at line 4948 of file win32.c.

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

Definition at line 1173 of file win32.c.

Referenced by check_if_dir(), link(), rb_w32_mkdir(), rb_w32_open(), rb_w32_opendir(), rb_w32_rename(), rb_w32_rmdir(), rb_w32_stati64(), rb_w32_unlink(), and rb_w32_utime().

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

Definition at line 2185 of file win32.c.

Referenced by fcntl(), rb_w32_open_osfhandle(), rb_w32_pipe(), and rb_w32_wopen().

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

Definition at line 2182 of file win32.c.

Referenced by dupfd(), rb_w32_open_osfhandle(), rb_w32_pipe(), and rb_w32_wopen().

#define FOREACH_CHILD | ( |  | v | ) |

Value:
do { \
struct ChildRecord* v; \
for (v = ChildRecord; v < ChildRecord + sizeof(ChildRecord) / sizeof(ChildRecord[0]); ++v)
ChildRecord
static struct ChildRecord ChildRecord[MAXCHILDNUM]
for
for(v/=shifter=1)
Definition: bigdecimal.c:5677
ChildRecord
Definition: win32.c:770
v
BDIGIT v
Definition: bigdecimal.c:5656

Definition at line 776 of file win32.c.

Referenced by FindChildSlot(), FindChildSlotByHandle(), FindFreeChildSlot(), and waitpid().

#define FOREGROUND_MASK (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)

Referenced by constat_attr().

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

Definition at line 2184 of file win32.c.

Referenced by finish_overlapped(), rb_w32_pipe(), rb_w32_wopen(), rb_w32_write(), and setup_overlapped().

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

Definition at line 2188 of file win32.c.

Referenced by rb_w32_fd_is_text(), rb_w32_open_osfhandle(), rb_w32_read(), and rb_w32_write().

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

Definition at line 667 of file win32.c.

Referenced by rb_w32_getsockname(), and setfl().

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

Definition at line 668 of file win32.c.

Referenced by overlapped_socket_io(), recvmsg(), sendmsg(), and setfl().

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

Definition at line 1737 of file win32.c.

Referenced by readdir_internal().

#define INVALID_SET_FILE_POINTER ((DWORD)-1)

Referenced by setup_overlapped().

#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E)

Definition at line 2140 of file win32.c.

Referenced by _pioinfo().

#define IOINFO_L2E 5

Definition at line 2139 of file win32.c.

Referenced by _pioinfo().

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

Definition at line 50 of file win32.c.

Referenced by is_command_com().

#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)
i
ssize_t i
Definition: bigdecimal.c:5655
DWORD
IUnknown DWORD
Definition: win32ole.c:149
err
int err
Definition: win32.c:87
errno
int errno
else
else
Definition: bigdecimal.c:1192
f
#define f
if
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1186
EWOULDBLOCK
#define EWOULDBLOCK
Definition: rubysocket.h:90
map_errno
#define map_errno
Definition: win32.c:243

Definition at line 277 of file win32.c.

Referenced by flock_winnt().

#define LK_LEN ULONG_MAX

Definition at line 291 of file win32.c.

Referenced by flock_winnt(), rb_w32_close(), rb_w32_fclose(), and rb_w32_unwrap_io_handle().

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

Definition at line 666 of file win32.c.

Referenced by rb_w32_socket(), rb_w32_socketpair(), and setfl().

#define map_errno rb_w32_map_errno

Definition at line 243 of file win32.c.

Referenced by check_valid_dir(), CreateChild(), do_select(), fcntl(), finish_overlapped_socket(), kill(), open_dir_handle(), overlapped_socket_io(), poll_child_status(), rb_chsize(), rb_w32_accept(), rb_w32_bind(), rb_w32_close(), rb_w32_connect(), rb_w32_fclose(), rb_w32_getcwd(), rb_w32_getenv(), rb_w32_gethostbyaddr(), rb_w32_gethostbyname(), rb_w32_gethostname(), rb_w32_getpeername(), rb_w32_getprotobyname(), rb_w32_getprotobynumber(), rb_w32_getservbyname(), rb_w32_getservbyport(), rb_w32_getsockname(), rb_w32_getsockopt(), rb_w32_ioctlsocket(), rb_w32_listen(), rb_w32_pipe(), rb_w32_read(), rb_w32_setsockopt(), rb_w32_shutdown(), rb_w32_socket(), rb_w32_truncate(), rb_w32_ugetenv(), rb_w32_wopen(), rb_w32_write(), recvmsg(), sendmsg(), setfl(), setup_overlapped(), socketpair_internal(), waitpid(), winnt_stat(), wlink(), wmkdir(), wrename(), wrmdir(), wunlink(), and wutime().

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

Definition at line 767 of file win32.c.

Referenced by waitpid().

#define MAXPATHLEN 512

Definition at line 1035 of file win32.c.

Referenced by cmdglob(), rb_w32_aspawn_flags(), and rb_w32_spawn().

#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)
int
VP_EXPORT int
Definition: bigdecimal.c:5050
i
ssize_t i
Definition: bigdecimal.c:5655
buf
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4308
for
for(v/=shifter=1)
Definition: bigdecimal.c:5677
ALLOCA_N
#define ALLOCA_N(type, n)
msg
volatile VALUE msg
Definition: tcltklib.c:3100
name
const char * name
Definition: nkf.c:208
len
size_t len
Definition: tcltklib.c:3568

Definition at line 3261 of file win32.c.

Referenced by recvmsg(), and sendmsg().

#define MTHREAD_ONLY | ( |  | x | ) |

Definition at line 2111 of file win32.c.

Referenced by rb_w32_accept(), rb_w32_open_osfhandle(), rb_w32_pipe(), rb_w32_read(), rb_w32_wopen(), and rb_w32_write().

#define NTGLOB 0x1

Definition at line 1374 of file win32.c.

#define NTMALLOC 0x2

Definition at line 1375 of file win32.c.

Referenced by cmdglob(), insert(), and rb_w32_cmdvector().

#define NTSTRING 0x4

Definition at line 1376 of file win32.c.

#define numberof | ( |  | array | ) | (sizeof(array) / sizeof(*array))

Definition at line 445 of file win32.c.

Referenced by constat_parse(), dupfd(), init_env(), and rb_w32_system_tmpdir().

#define open_null | ( |  | fd | ) |

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

Referenced by init_stdhandle().

#define PATHLEN 1024

Definition at line 1728 of file win32.c.

#define pioinfo_extra 0

Definition at line 2168 of file win32.c.

#define ROOT_GID 0

Definition at line 2388 of file win32.c.

Referenced by getegid(), getgid(), and setgid().

#define ROOT_UID 0

Definition at line 2387 of file win32.c.

Referenced by geteuid(), getuid(), and setuid().

#define RUBY_CRITICAL | ( |  | expr | ) | do { expr; } while (0)

Definition at line 82 of file win32.c.

Referenced by catch_interrupt(), CreateChild(), do_select(), finish_overlapped_socket(), is_console(), is_pipe(), is_readable_console(), is_readable_pipe(), kill(), overlapped_socket_io(), rb_w32_accept(), rb_w32_asynchronize(), rb_w32_bind(), rb_w32_connect(), rb_w32_fdisset(), rb_w32_gethostbyaddr(), rb_w32_gethostbyname(), rb_w32_gethostname(), rb_w32_getpeername(), rb_w32_getprotobyname(), rb_w32_getprotobynumber(), rb_w32_getservbyname(), rb_w32_getservbyport(), rb_w32_getsockname(), rb_w32_getsockopt(), rb_w32_ioctlsocket(), rb_w32_listen(), rb_w32_pipe(), rb_w32_setsockopt(), rb_w32_shutdown(), rb_w32_socket(), rb_w32_wopen(), recvmsg(), sendmsg(), setfl(), socketpair_internal(), wmkdir(), wrename(), wrmdir(), wunlink(), and wutime().

#define set_env_val | ( |  | vname | ) |

Value:
do { \
typedef char namesizecheck[numberof(wk.name) < numberof(vname) - 1 ? -1 : 1]; \
WCHAR *const buf = wk.name + numberof(wk.name) - numberof(vname) + 1; \
MEMCPY(buf, vname, WCHAR, numberof(vname) - 1); \
_wputenv(buf); \
} while (0)
buf
unsigned char buf[MIME_BUF_SIZE]
Definition: nkf.c:4308
MEMCPY
#define MEMCPY(p1, p2, type, n)
numberof
#define numberof(array)
Definition: win32.c:445

Referenced by init_env().

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

Definition at line 1738 of file win32.c.

Referenced by opendir_internal().

#define STHREAD_ONLY | ( |  | x | ) | x

Definition at line 2112 of file win32.c.

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

Definition at line 1039 of file win32.c.

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

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

Definition at line 73 of file win32.c.

Referenced by fcntl(), overlapped_socket_io(), rb_w32_accept(), rb_w32_bind(), rb_w32_close(), rb_w32_connect(), rb_w32_fclose(), rb_w32_fdclr(), rb_w32_fdisset(), rb_w32_getpeername(), rb_w32_getsockname(), rb_w32_getsockopt(), rb_w32_io_cancelable_p(), rb_w32_ioctlsocket(), rb_w32_is_socket(), rb_w32_listen(), rb_w32_read(), rb_w32_setsockopt(), rb_w32_shutdown(), rb_w32_unwrap_io_handle(), rb_w32_write(), recvmsg(), and sendmsg().

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

Definition at line 1175 of file win32.c.

Referenced by rb_w32_uchdir(), rb_w32_uchmod(), rb_w32_ulink(), rb_w32_umkdir(), rb_w32_uopen(), rb_w32_uopendir(), rb_w32_urename(), rb_w32_urmdir(), rb_w32_ustati64(), rb_w32_uunlink(), and rb_w32_uutime().

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

Definition at line 3254 of file win32.c.

Referenced by recvmsg().

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

Definition at line 3257 of file win32.c.

Referenced by sendmsg().

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

Definition at line 1172 of file win32.c.

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

Definition at line 1174 of file win32.c.

Referenced by rb_w32_conv_from_wstr(), and win32_direct_conv().

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

Definition at line 1176 of file win32.c.

Referenced by rb_w32_get_environ().

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

Definition at line 4919 of file win32.c.

Referenced by catch_interrupt(), and rb_w32_asynchronize().

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

Definition at line 4920 of file win32.c.

Referenced by rb_w32_asynchronize().

## Typedef Documentation

typedef BOOL(WINAPI * cancel_io_t)(HANDLE)

Definition at line 539 of file win32.c.

typedef struct _NtCmdLineElement NtCmdLineElement

## Enumeration Type Documentation

anonymous enum

Enumerator
constat_init |
constat_esc |
constat_seq |

Definition at line 595 of file win32.c.

## Function Documentation

static ioinfo * _pioinfo | ( | int | fd | ) |
| inline static

Definition at line 2172 of file win32.c.

References IOINFO_ARRAY_ELTS, and IOINFO_L2E.

Referenced by rb_w32_accept(), rb_w32_open_osfhandle(), rb_w32_pipe(), rb_w32_read(), rb_w32_wopen(), and rb_w32_write().

static DWORD WINAPI call_asynchronous | ( | PVOID | argp | ) |
| static

Definition at line 5001 of file win32.c.

References arg, asynchronous_arg_t::argc, asynchronous_arg_t::argv, errno, asynchronous_arg_t::errnum, asynchronous_arg_t::func, ret, asynchronous_arg_t::self, and asynchronous_arg_t::stackaddr.

Referenced by rb_w32_asynchronize().

static void catch_interrupt | ( | void |  | ) |
| static

Definition at line 4924 of file win32.c.

References NULL, rb_w32_wait_events(), RUBY_CRITICAL, and yield_once.

Referenced by rb_w32_getc(), and rb_w32_putc().

static int check_if_dir | ( | const char * | file | ) |
| static

Definition at line 5196 of file win32.c.

References check_if_wdir(), FALSE, filecp_to_wstr, free, NULL, and ret.

Referenced by rb_w32_open().

static int check_if_wdir | ( | const WCHAR * | wfile | ) |
| static

Definition at line 5182 of file win32.c.

References check_valid_dir(), errno, FALSE, and TRUE.

Referenced by check_if_dir(), and rb_w32_wopen().

static int check_spawn_mode | ( | int | mode | ) |
| static

Definition at line 1044 of file win32.c.

References errno, and P_NOWAIT.

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

static int check_valid_dir | ( | const WCHAR * | path | ) |
| static

Definition at line 4546 of file win32.c.

References errno, map_errno, open_dir_handle(), p, and q.

Referenced by check_if_wdir(), and winnt_stat().

static rb_pid_t child_result | ( | struct ChildRecord * | child,
|  | int | mode
| ) |  |
| static

Definition at line 1058 of file win32.c.

References CloseChildHandle(), ChildRecord::hProcess, and ChildRecord::pid.

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

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

Definition at line 4065 of file win32.c.

Referenced by argf_next_argv(), chown_internal(), get_device_once(), and rb_file_chown().

static void CloseChildHandle | ( | struct ChildRecord * | child | ) |
| static

Definition at line 809 of file win32.c.

References ChildRecord::hProcess, NULL, and ChildRecord::pid.

Referenced by child_result(), and poll_child_status().

static NtCmdLineElement** cmdglob | ( | NtCmdLineElement * | patt,
|  | NtCmdLineElement ** | tail
| ) |  |
| static

Definition at line 1400 of file win32.c.

References buf, CharNext, _NtCmdLineElement::flags, free, insert(), last, _NtCmdLineElement::len, malloc(), MAXPATHLEN, NTMALLOC, p, ruby_brace_glob(), status, _NtCmdLineElement::str, strlcpy(), and tail.

Referenced by rb_w32_cmdvector().

static int compare | ( | const struct timeval * | t1,
|  | const struct timeval * | t2
| ) |  |
| inline static

Definition at line 2723 of file win32.c.

References timeval::tv_sec, and timeval::tv_usec.

Referenced by rb_w32_select_with_thread().

static void constat_apply | ( | HANDLE | handle,
|  | struct constat * | s,
|  | WCHAR | w
| ) |  |
| static

Definition at line 5657 of file win32.c.

References constat::attr, constat_attr(), count, FALSE, constat::saved, constat::seq, constat::state, TRUE, and constat::vt100.

Referenced by constat_parse().

static DWORD constat_attr | ( | int | count,
|  | const int * | seq,
|  | DWORD | attr,
|  | DWORD | default_attr
| ) |  |
| static

Definition at line 5561 of file win32.c.

References constat::attr, BACKGROUND_MASK, COMMON_LVB_UNDERSCORE, and FOREGROUND_MASK.

Referenced by constat_apply().

static void constat_delete | ( | HANDLE | h | ) |
| static

Definition at line 607 of file win32.c.

References key, st_delete(), val, and xfree.

Referenced by rb_w32_close(), and rb_w32_unwrap_io_handle().

static struct constat* constat_handle | ( | HANDLE | h | ) |
| static

Definition at line 5523 of file win32.c.

References ALLOC, constat::attr, constat_init, data, p, constat::saved, st_init_numtable(), st_insert(), st_lookup(), constat::state, and constat::vt100.

Referenced by rb_w32_write_console().

static long constat_parse | ( | HANDLE | h,
|  | struct constat * | s,
|  | const WCHAR ** | ptrp,
|  | long * | lenp
| ) |  |
| static

Definition at line 5782 of file win32.c.

References constat_apply(), constat_esc, constat_init, constat_seq, int, len, numberof, ptr, constat::seq, constat::state, and constat::vt100.

Referenced by rb_w32_write_console().

static void constat_reset | ( | HANDLE | h | ) |
| static

Definition at line 5549 of file win32.c.

References constat_init, data, p, st_lookup(), constat::state, and constat::vt100.

Referenced by rb_w32_read().

static int copy_fd | ( | fd_set * | dst,
|  | fd_set * | src
| ) |  |
| static

Definition at line 2563 of file win32.c.

References d, and s.

Referenced by rb_w32_select_with_thread().

static struct ChildRecord * CreateChild | ( | const WCHAR * | cmd,
|  | const WCHAR * | prog,
|  | SECURITY_ATTRIBUTES * | psa,
|  | HANDLE | hInput,
|  | HANDLE | hOutput,
|  | HANDLE | hError,
|  | DWORD | dwCreationFlags
| ) |  |
| static

Definition at line 1077 of file win32.c.

References errno, FindFreeChildSlot(), ChildRecord::hProcess, map_errno, memset(), NULL, ChildRecord::pid, RUBY_CRITICAL, and TRUE.

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

static int do_select | ( | int | nfds,
|  | fd_set * | rd,
|  | fd_set * | wr,
|  | fd_set * | ex,
|  | struct timeval * | timeout
| ) |  |
| static

Definition at line 2669 of file win32.c.

References errno, map_errno, r, rb_w32_sleep(), RUBY_CRITICAL, select(), StartSockets(), timeval::tv_sec, and timeval::tv_usec.

Referenced by rb_w32_select_with_thread().

static int dupfd | ( | HANDLE | hDup,
|  | char | flags,
|  | int | minfd
| ) |  |
| static

Definition at line 3801 of file win32.c.

References _osfhnd, errno, FOPEN, numberof, and ret.

Referenced by fcntl().

void endhostent | ( | void |  | ) |

Definition at line 3745 of file win32.c.

void endnetent | ( | void |  | ) |

Definition at line 3746 of file win32.c.

void endprotoent | ( | void |  | ) |

Definition at line 3747 of file win32.c.

void endservent | ( | void |  | ) |

Definition at line 3748 of file win32.c.

static void exit_handler | ( | void |  | ) |
| static

Definition at line 618 of file win32.c.

References free, free_conlist(), NULL, st_foreach(), and st_free_table().

Referenced by rb_w32_sysinit().

static int extract_fd | ( | rb_fdset_t * | dst,
|  | fd_set * | src,
|  | int(*)(SOCKET) | func
| ) |  |
| static

Definition at line 2521 of file win32.c.

References d, func, m, memmove(), s, and xrealloc.

Referenced by rb_w32_select_with_thread().

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

Definition at line 3835 of file win32.c.

References _osfile, arg, dupfd(), errno, F_DUPFD, F_SETFL, FNOINHERIT, is_socket(), map_errno, ret, setfl(), TO_SOCKET, and va_end().

Referenced by dup2(), fd_set_cloexec(), make_fd_nonblock(), rb_cloexec_fcntl_dupfd(), rb_io_initialize(), rb_io_set_nonblock(), rb_maygvl_fd_fix_cloexec(), run_exec_dup2(), and wsplit_p().

static unsigned fileattr_to_unixmode | ( | DWORD | attr,
|  | const WCHAR * | path
| ) |  |
| static

Definition at line 4504 of file win32.c.

References end, mode, and S_IWUSR.

Referenced by winnt_stat().

static UINT filecp | ( | void |  | ) |
| inline static

Definition at line 1865 of file win32.c.

References cp.

static long filetime_to_clock | ( | FILETIME * | ft | ) |
| static

Definition at line 4889 of file win32.c.

Referenced by rb_w32_times().

static int filetime_to_timeval | ( | const FILETIME * | ft,
|  | struct timeval * | tv
| ) |  |
| static

Definition at line 3989 of file win32.c.

References lt, tmp, timeval::tv_sec, and timeval::tv_usec.

Referenced by filetime_to_unixtime(), and gettimeofday().

static time_t filetime_to_unixtime | ( | const FILETIME * | ft | ) |
| static

Definition at line 4492 of file win32.c.

References filetime_to_timeval(), and timeval::tv_sec.

Referenced by rb_w32_fstat(), rb_w32_fstati64(), and winnt_stat().

static struct ChildRecord* FindChildSlot | ( | rb_pid_t | pid | ) |
| static

Definition at line 783 of file win32.c.

References END_FOREACH_CHILD, FOREACH_CHILD, and NULL.

Referenced by kill(), and waitpid().

static struct ChildRecord* FindChildSlotByHandle | ( | HANDLE | h | ) |
| static

Definition at line 796 of file win32.c.

References END_FOREACH_CHILD, FOREACH_CHILD, and NULL.

Referenced by waitpid().

static struct ChildRecord* FindFreeChildSlot | ( | void |  | ) |
| static

Definition at line 819 of file win32.c.

References END_FOREACH_CHILD, FOREACH_CHILD, and NULL.

Referenced by CreateChild().

static void finish_overlapped | ( | OVERLAPPED * | ol,
|  | int | fd,
|  | DWORD | size
| ) |  |
| static

Definition at line 5891 of file win32.c.

References _osfhnd, _osfile, FDEV, FPIPE, and size.

Referenced by rb_w32_read(), and rb_w32_write().

static int finish_overlapped_socket | ( | BOOL | input,
|  | SOCKET | s,
|  | WSAOVERLAPPED * | wol,
|  | int | result,
|  | DWORD * | len,
|  | DWORD | size
| ) |  |
| static

Definition at line 3093 of file win32.c.

References cancel_io, err, errno, map_errno, rb_w32_wait_events_blocking(), result, RUBY_CRITICAL, size, and TRUE.

Referenced by overlapped_socket_io(), recvmsg(), and sendmsg().

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

Definition at line 334 of file win32.c.

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

Referenced by rb_thread_flock().

static uintptr_t flock_winnt | ( | uintptr_t | self,
|  | int | argc,
|  | uintptr_t * | argv
| ) |  |
| static

Definition at line 295 of file win32.c.

References argc, errno, i, LK_ERR, LK_LEN, LOCK_EX, LOCK_NB, LOCK_SH, LOCK_UN, and memset().

Referenced by flock().

static int free_conlist | ( | st_data_t | key,
|  | st_data_t | val,
|  | st_data_t | arg
| ) |  |
| static

Definition at line 599 of file win32.c.

References ST_DELETE, and xfree.

Referenced by exit_handler().

int fseeko | ( | FILE * | stream,
|  | off_t | offset,
|  | int | whence
| ) |  |

Definition at line 4857 of file win32.c.

References fileno, off_t, SEEK_CUR, and SEEK_END.

static FARPROC get_proc_address | ( | const char * | module,
|  | const char * | func,
|  | HANDLE * | mh
| ) |  |
| static

Definition at line 411 of file win32.c.

References NULL, and ptr.

Referenced by get_system_directory(), init_func(), rb_w32_getppid(), rb_w32_inet_ntop(), and wlink().

static BOOL get_special_folder | ( | int | n,
|  | WCHAR * | env
| ) |  |
| static

Definition at line 384 of file win32.c.

References f, FALSE, and NULL.

Referenced by init_env(), rb_w32_special_folder(), and rb_w32_system_tmpdir().

static UINT get_system_directory | ( | WCHAR * | path,
|  | UINT | len
| ) |  |
| static

Definition at line 435 of file win32.c.

References get_proc_address(), len, NULL, path, and ptr.

Referenced by rb_w32_system_tmpdir().

static void get_version | ( | void |  | ) |
| static

Definition at line 251 of file win32.c.

References memset(), and osver.

Referenced by rb_w32_sysinit().

static FARPROC get_wsa_extension_function | ( | SOCKET | s,
|  | GUID * | guid
| ) |  |
| static

Definition at line 2890 of file win32.c.

References errno, NULL, and ptr.

Referenced by recvmsg(), and sendmsg().

rb_gid_t getegid | ( | void |  | ) |

Definition at line 2413 of file win32.c.

References ROOT_GID.

Referenced by init_ids(), Init_process(), p_gid_change_privilege(), p_gid_exchange(), p_gid_switch(), proc_getegid(), and rb_group_member().

rb_uid_t geteuid | ( | void |  | ) |

Definition at line 2399 of file win32.c.

References ROOT_UID.

Referenced by eaccess(), init_ids(), Init_process(), p_gid_change_privilege(), p_uid_change_privilege(), p_uid_exchange(), p_uid_switch(), proc_geteuid(), rb_file_owned_p(), rb_setegid_core(), rb_seteuid_core(), rb_stat_owned(), rb_stat_r(), rb_stat_w(), and rb_stat_x().

rb_gid_t getgid | ( | void |  | ) |

Definition at line 2406 of file win32.c.

References ROOT_GID.

Referenced by etc_getgrgid(), get_device_once(), init_ids(), p_gid_change_privilege(), p_gid_exchange(), p_gid_switch(), proc_getgid(), rb_group_member(), and rb_setegid_core().

char* getlogin | ( | void |  | ) |

Definition at line 762 of file win32.c.

References NTLoginName.

Referenced by etc_getlogin().

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

Definition at line 3752 of file win32.c.

References NULL.

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

Definition at line 3754 of file win32.c.

References NULL.

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

Definition at line 3750 of file win32.c.

References NULL.

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

Definition at line 3756 of file win32.c.

References NULL.

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

Definition at line 3758 of file win32.c.

References NULL.

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

Definition at line 4013 of file win32.c.

References filetime_to_timeval().

Referenced by datetime_s_now(), fill_random_seed(), getclockofday(), rb_w32_select_with_thread(), time_init_0(), and timeofday().

rb_uid_t getuid | ( | void |  | ) |

Definition at line 2392 of file win32.c.

References ROOT_UID.

Referenced by argf_next_argv(), chfunc(), establishShell(), etc_getpwuid(), get_device_once(), init_ids(), p_uid_change_privilege(), p_uid_exchange(), p_uid_switch(), proc_getuid(), rb_file_rowned_p(), rb_seteuid_core(), rb_stat_R(), rb_stat_rowned(), rb_stat_W(), and rb_stat_X().

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

Definition at line 6646 of file win32.c.

References e, errno, NULL, st, systemtime_to_tm(), and unixtime_to_systemtime().

static int has_redirection | ( | const char * | cmd | ) |
| static

Definition at line 1433 of file win32.c.

References CharNext, FALSE, ISALNUM, ISALPHA, ptr, and TRUE.

Referenced by rb_w32_spawn().

static void init_env | ( | void |  | ) |
| static

Definition at line 477 of file win32.c.

References CSIDL_PROFILE, env, eq(), f, FALSE, get_special_folder(), len, name, NTLoginName, numberof, rb_w32_getenv(), rb_w32_system_tmpdir(), regulate_path(), set_env_val, strdup, TRUE, and val.

Referenced by rb_w32_sysinit().

static void init_func | ( | void |  | ) |
| static

Definition at line 544 of file win32.c.

References cancel_io, get_proc_address(), and NULL.

Referenced by rb_w32_sysinit().

static void init_stdhandle | ( | void |  | ) |
| static

Definition at line 2244 of file win32.c.

References fileno, NULL, O_BINARY, and open_null.

Referenced by rb_w32_sysinit().

static int insert | ( | const char * | path,
|  | VALUE | vinfo,
|  | void * | enc
| ) |  |
| static

Definition at line 1380 of file win32.c.

References _NtCmdLineElement::flags, _NtCmdLineElement::len, malloc(), MEMZERO, _NtCmdLineElement::next, NTMALLOC, _NtCmdLineElement::str, strdup, strlen(), and tail.

Referenced by cmdglob().

static int internal_cmd_match | ( | const char * | cmdname,
|  | int | nt
| ) |  |
| static

Definition at line 943 of file win32.c.

References internal_match().

Referenced by is_internal_cmd(), and rb_w32_aspawn_flags().

static int internal_match | ( | const void * | key,
|  | const void * | elem
| ) |  |
| static

Definition at line 892 of file win32.c.

Referenced by internal_cmd_match().

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

Definition at line 2438 of file win32.c.

References errno.

Referenced by chfunc(), get_device_once(), io_nread(), io_ready_p(), io_wait_readable(), and nogvl_ioctl().

static int is_batch | ( | const char * | cmd | ) |
| static

Definition at line 1157 of file win32.c.

References len, strcasecmp, and strlen().

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

static int is_command_com | ( | const char * | interp | ) |
| static

Definition at line 899 of file win32.c.

References i, isdirsep, strcasecmp, and strlen().

Referenced by rb_w32_aspawn_flags(), and rb_w32_spawn().

static int is_console | ( | SOCKET | sock | ) |
| static

Definition at line 2624 of file win32.c.

References n, ret, and RUBY_CRITICAL.

Referenced by rb_w32_io_cancelable_p(), rb_w32_read(), and rb_w32_select_with_thread().

static int is_internal_cmd | ( | const char * | cmd,
|  | int | nt
| ) |  |
| static

Definition at line 914 of file win32.c.

References b, c, cmd, and internal_cmd_match().

Referenced by rb_w32_spawn().

static int is_invalid_handle | ( | SOCKET | sock | ) |
| static

Definition at line 2662 of file win32.c.

Referenced by rb_w32_select_with_thread().

static int is_not_socket | ( | SOCKET | sock | ) |
| static

Definition at line 2585 of file win32.c.

References is_socket().

Referenced by rb_w32_select_with_thread().

static int is_pipe | ( | SOCKET | sock | ) |
| static

Definition at line 2592 of file win32.c.

References ret, and RUBY_CRITICAL.

Referenced by rb_w32_select_with_thread().

static int is_readable_console | ( | SOCKET | sock | ) |
| static

Definition at line 2639 of file win32.c.

References n, ret, and RUBY_CRITICAL.

Referenced by rb_w32_select_with_thread().

static int is_readable_pipe | ( | SOCKET | sock | ) |
| static

Definition at line 2605 of file win32.c.

References n, NULL, ret, and RUBY_CRITICAL.

Referenced by rb_w32_select_with_thread().

static int is_socket | ( | SOCKET | sock | ) |
| static

Definition at line 2299 of file win32.c.

References FALSE, NULL, socklist_lookup(), and TRUE.

Referenced by fcntl(), is_not_socket(), rb_w32_close(), rb_w32_fclose(), rb_w32_io_cancelable_p(), rb_w32_is_socket(), rb_w32_read(), rb_w32_unwrap_io_handle(), and rb_w32_write().

static int isUNCRoot | ( | const WCHAR * | path | ) |
| static

Definition at line 4399 of file win32.c.

References p.

Referenced by wstati64().

static int join_argv | ( | char * | cmd,
|  | char *const * | argv,
|  | BOOL | escape
| ) |  |
| static

Definition at line 965 of file win32.c.

References CharNext, len, memcpy(), memset(), n, p, q, s, and t.

Referenced by rb_w32_aspawn_flags().

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

Definition at line 4079 of file win32.c.

References EPERM, err, errno, FALSE, FindChildSlot(), ChildRecord::hProcess, map_errno, NULL, ret, RUBY_CRITICAL, SIGINT, SIGKILL, and status.

Referenced by raise_from_check(), and rb_f_kill().

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

Definition at line 4235 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wlink().

Referenced by r_object0(), rb_exec_end_proc(), rb_mark_end_proc(), rb_set_end_proc(), and realpath_rec().

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

Definition at line 6670 of file win32.c.

References e, errno, NULL, systemtime_to_localtime(), systemtime_to_tm(), and unixtime_to_systemtime().

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

Definition at line 1885 of file win32.c.

References len, malloc(), NULL, and ptr.

static void move_to_next_entry | ( | DIR * | dirp | ) |
| static

Definition at line 1927 of file win32.c.

References DIR::curr, DIR::loc, NULL, DIR::size, and DIR::start.

Referenced by rb_w32_seekdir(), and readdir_internal().

static HANDLE open_dir_handle | ( | const WCHAR * | filename,
|  | WIN32_FIND_DATAW * | fd
| ) |  |
| static

Definition at line 1746 of file win32.c.

References ALLOCV_END, ALLOCV_N, errno, len, map_errno, p, and v.

Referenced by check_valid_dir(), and opendir_internal().

static SOCKET open_ifs_socket | ( | int | af,
|  | int | type,
|  | int | protocol
| ) |  |
| static

Definition at line 3423 of file win32.c.

References AF_UNSPEC, free, i, malloc(), NULL, and out.

Referenced by rb_w32_socket(), and socketpair_internal().

static DIR* opendir_internal | ( | WCHAR * | wpath,
|  | const char * | filename
| ) |  |
| static

Definition at line 1780 of file win32.c.

References BitOfIsDir, BitOfIsRep, DIR::bits, calloc, DIR::curr, DIRENT_PER_CHAR, errno, idx, ISALPHA, len, memcpy(), DIR::nfiles, NULL, open_dir_handle(), p, rb_w32_closedir(), realloc(), SetBit, DIR::size, DIR::start, tmp, and wstati64().

Referenced by rb_w32_opendir(), and rb_w32_uopendir().

static int overlapped_socket_io | ( | BOOL | input,
|  | int | fd,
|  | char * | buf,
|  | int | len,
|  | int | flags,
|  | struct sockaddr * | addr,
|  | int * | addrlen
| ) |  |
| static

Definition at line 3138 of file win32.c.

References buf, cancel_io, err, errno, FALSE, finish_overlapped_socket(), flags, GET_FLAGS, int, len, map_errno, memset(), mode, NULL, O_NONBLOCK, r, ret, RUBY_CRITICAL, s, size, socklist_lookup(), StartSockets(), TO_SOCKET, and TRUE.

Referenced by rb_w32_recv(), rb_w32_recvfrom(), rb_w32_send(), and rb_w32_sendto().

static rb_pid_t poll_child_status | ( | struct ChildRecord * | child,
|  | int * | stat_loc
| ) |  |
| static

Definition at line 3883 of file win32.c.

References CloseChildHandle(), err, errno, ChildRecord::hProcess, map_errno, ChildRecord::pid, and rb_w32_wait_events_blocking().

Referenced by waitpid().

static int rb_chsize | ( | HANDLE | h,
|  | off_t | size
| ) |  |
| static

Definition at line 4763 of file win32.c.

References e, errno, map_errno, ret, SEEK_CUR, and SEEK_SET.

Referenced by rb_w32_ftruncate(), and rb_w32_truncate().

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

Definition at line 2906 of file win32.c.

References _pioinfo(), _set_osfhnd, errno, map_errno, MTHREAD_ONLY, NULL, O_BINARY, r, rb_w32_open_osfhandle(), RUBY_CRITICAL, socklist_insert(), StartSockets(), and TO_SOCKET.

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

Definition at line 4733 of file win32.c.

References errno, and rb_w32_stati64().

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

Definition at line 1357 of file win32.c.

References rb_w32_aspawn_flags().

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

Definition at line 1287 of file win32.c.

References acp_to_wstr, ALLOCV, ALLOCV_END, argv, check_spawn_mode(), child_result(), cmd, CreateChild(), dln_find_exe_r(), e, errno, FALSE, fbuf, free, getenv(), internal_cmd_match(), is_batch(), is_command_com(), join_argv(), len, MAXPATHLEN, NULL, ret, shell, strchr(), strlcat(), strlcpy(), strlen(), STRNDUPV, translate_char(), and v.

Referenced by rb_w32_aspawn().

uintptr_t rb_w32_asynchronize | ( | asynchronous_func_t | func,
|  | uintptr_t | self,
|  | int | argc,
|  | uintptr_t * | argv,
|  | uintptr_t | intrval
| ) |  |

Definition at line 5013 of file win32.c.

References argc, asynchronous_arg_t::argc, argv, asynchronous_arg_t::argv, call_asynchronous(), Debug, errno, asynchronous_arg_t::errnum, FALSE, func, asynchronous_arg_t::func, m, memset(), NULL, rb_fatal(), rb_w32_wait_events_blocking(), RUBY_CRITICAL, asynchronous_arg_t::self, asynchronous_arg_t::stackaddr, TRUE, val, yield_once, and yield_until.

Referenced by flock().

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

Definition at line 2942 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

int rb_w32_check_interrupt | ( | void * |  | ) |

Referenced by rb_w32_select_with_thread().

int rb_w32_close | ( | int | fd | ) |

Definition at line 5840 of file win32.c.

References _set_osfhnd, constat_delete(), errno, is_socket(), LK_LEN, map_errno, NULL, socklist_delete(), and TO_SOCKET.

Referenced by rb_w32_pipe(), and rb_w32_socketpair().

void rb_w32_closedir | ( | DIR * | dirp | ) |

Definition at line 2088 of file win32.c.

References DIR::bits, direct::d_name, DIR::dirstr, free, and DIR::start.

Referenced by opendir_internal().

int rb_w32_cmdvector | ( | const char * | cmd,
|  | char *** | vec
| ) |  |

Definition at line 1491 of file win32.c.

References c, calloc, CharNext, cmdglob(), done, _NtCmdLineElement::flags, free, ISSPACE, _NtCmdLineElement::len, len, malloc(), memcpy(), _NtCmdLineElement::next, NTMALLOC, NULL, p, ptr, skipspace(), _NtCmdLineElement::str, strdup, strlcpy(), and tail.

Referenced by rb_w32_sysinit().

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

Definition at line 2961 of file win32.c.

References EINPROGRESS, err, errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

VALUE rb_w32_conv_from_wchar | ( | const WCHAR * | wstr,
|  | rb_encoding * | enc
| ) |  |

Definition at line 1953 of file win32.c.

References ECONV_UNDEF_REPLACE, NULL, Qnil, rb_ascii8bit_encoding(), rb_enc_find(), rb_enc_from_encoding(), rb_enc_str_new(), rb_str_encode(), and src.

Referenced by etc_systmpdir(), rb_w32_conv_from_wstr(), and rb_w32_special_folder().

char* rb_w32_conv_from_wstr | ( | const WCHAR * | wstr,
|  | long * | lenp,
|  | rb_encoding * | enc
| ) |  |

Definition at line 1973 of file win32.c.

References len, malloc(), memcpy(), NIL_P(), ptr, rb_w32_conv_from_wchar(), RSTRING_LEN, RSTRING_PTR, and wstr_to_filecp.

Referenced by ruby_direct_conv().

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

Definition at line 5407 of file win32.c.

References _set_osfhnd, errno, fileno, 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 2484 of file win32.c.

References memcpy(), min(), and xrealloc.

void rb_w32_fd_dup | ( | rb_fdset_t * | dst,
|  | const rb_fdset_t * | src
| ) |  |

Definition at line 2499 of file win32.c.

References memcpy(), and xrealloc.

char rb_w32_fd_is_text | ( | int | fd | ) |

Definition at line 6568 of file win32.c.

References _osfile, and FTEXT.

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

Definition at line 2454 of file win32.c.

References i, memmove(), s, and TO_SOCKET.

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

Definition at line 2472 of file win32.c.

References ret, RUBY_CRITICAL, s, and TO_SOCKET.

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

Definition at line 2445 of file win32.c.

References FD_SET.

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

Definition at line 5113 of file win32.c.

References env, free, and t.

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

Definition at line 4441 of file win32.c.

References filetime_to_unixtime(), fstat, info, ret, S_IWGRP, S_IWOTH, and S_IWUSR.

int rb_w32_fstati64 | ( | int | fd,
|  | struct stati64 * | st
| ) |  |

Definition at line 4465 of file win32.c.

References COPY_STAT, filetime_to_unixtime(), fstat, info, ret, S_IWGRP, S_IWOTH, S_IWUSR, and stat.

off_t rb_w32_ftello | ( | FILE * | stream | ) |

Definition at line 4880 of file win32.c.

References off_t.

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

Definition at line 4808 of file win32.c.

References rb_chsize().

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

Definition at line 5076 of file win32.c.

References env, malloc(), NULL, and wstr_to_utf8.

SOCKET rb_w32_get_osfhandle | ( | int | fh | ) |

Definition at line 958 of file win32.c.

Referenced by rb_cloexec_dup2(), rb_io_flush(), and rb_io_rewind().

int rb_w32_getc | ( | FILE * | stream | ) |

Definition at line 4953 of file win32.c.

References c, catch_interrupt(), clearerr, enough_to_get, EOF, and errno.

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

Definition at line 4025 of file win32.c.

References errno, free, len, malloc(), map_errno, NULL, p, and translate_char().

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

Definition at line 4300 of file win32.c.

References env, free, len, map_errno, NULL, strlen(), and strncasecmp.

Referenced by init_env().

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

Definition at line 3502 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3520 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3538 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 2985 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

rb_pid_t rb_w32_getpid | ( | void |  | ) |

Definition at line 5123 of file win32.c.

Referenced by rb_w32_pipe().

rb_pid_t rb_w32_getppid | ( | void |  | ) |

Definition at line 5131 of file win32.c.

References get_proc_address(), int, len, NULL, rb_w32_osver(), and ULONG().

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

Definition at line 3556 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3574 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3592 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3610 of file win32.c.

References errno, map_errno, NULL, r, RUBY_CRITICAL, and StartSockets().

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

Definition at line 3003 of file win32.c.

References errno, flags, GET_FAMILY, map_errno, memset(), r, RUBY_CRITICAL, socklist_lookup(), StartSockets(), and TO_SOCKET.

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

Definition at line 3036 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

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

Definition at line 6550 of file win32.c.

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

int rb_w32_io_cancelable_p | ( | int | fd | ) |

Definition at line 2195 of file win32.c.

References cancel_io, is_console(), is_socket(), NULL, and TO_SOCKET.

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

Definition at line 3054 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

int rb_w32_is_socket | ( | int | fd | ) |

Definition at line 2309 of file win32.c.

References is_socket(), and TO_SOCKET.

Referenced by rsock_init_sock().

int rb_w32_isatty | ( | int | fd | ) |

Definition at line 6449 of file win32.c.

References _osfhnd, errno, and mode.

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

Definition at line 3072 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

int rb_w32_map_errno | ( | DWORD | winerr | ) |

Definition at line 223 of file win32.c.

References errmap, i, int, and winerr.

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

Definition at line 6322 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wmkdir().

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

Definition at line 5210 of file win32.c.

References arg, check_if_dir(), errno, filecp_to_wstr, free, NULL, O_BINARY, rb_w32_wopen(), ret, and va_end().

static int rb_w32_open_osfhandle | ( | intptr_t | osfhandle,
|  | int | flags
| ) |  |
| static

Definition at line 2202 of file win32.c.

References _pioinfo(), _set_osfhnd, _set_osflags, errno, FAPPEND, FDEV, FNOINHERIT, FOPEN, FTEXT, MTHREAD_ONLY, and NULL.

Referenced by rb_w32_accept(), rb_w32_socket(), rb_w32_socketpair(), and rb_w32_wrap_io_handle().

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

Definition at line 1897 of file win32.c.

References filecp_to_wstr, free, NULL, opendir_internal(), and ret.

DWORD rb_w32_osver | ( | void |  | ) |

Definition at line 269 of file win32.c.

References osver.

Referenced by rb_w32_getppid().

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

Definition at line 5430 of file win32.c.

References _pioinfo(), _set_osfhnd, _set_osflags, cancel_io, err, errno, FALSE, FNOINHERIT, FOPEN, FPIPE, map_errno, MTHREAD_ONLY, name, NULL, p, rb_w32_close(), rb_w32_getpid(), ret, RUBY_CRITICAL, snprintf, strchr(), and strlen().

int rb_w32_putc | ( | int | c,
|  | FILE * | stream
| ) |  |

Definition at line 4974 of file win32.c.

References c, catch_interrupt(), and enough_to_put.

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

Definition at line 5907 of file win32.c.

References _osfhnd, _osfile, _pioinfo(), _set_osflags, cancel_io, constat_reset(), err, errno, FALSE, FEOFLAG, finish_overlapped(), FTEXT, is_console(), is_socket(), len, map_errno, mode, MTHREAD_ONLY, NULL, osver, rb_w32_recv(), rb_w32_wait_events_blocking(), ret, retry, setup_overlapped(), size, TO_SOCKET, TRUE, and wait.

struct direct* rb_w32_readdir | ( | DIR * | dirp,
|  | rb_encoding * | enc
| ) |  |

Definition at line 2036 of file win32.c.

References NULL, rb_ascii8bit_encoding(), readdir_internal(), ruby_direct_conv(), and win32_direct_conv().

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

Definition at line 3213 of file win32.c.

References NULL, overlapped_socket_io(), and TRUE.

Referenced by rb_w32_read().

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

Definition at line 3220 of file win32.c.

References overlapped_socket_io(), and TRUE.

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

Definition at line 4379 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wrename().

void rb_w32_rewinddir | ( | DIR * | dirp | ) |

Definition at line 2076 of file win32.c.

References DIR::curr, DIR::loc, and DIR::start.

Referenced by rb_w32_seekdir().

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

Definition at line 6357 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wrmdir().

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

Definition at line 2061 of file win32.c.

References DIR::curr, DIR::loc, move_to_next_entry(), 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 2882 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 2743 of file win32.c.

References compare(), copy_fd(), do_select(), errno, extract_fd(), gettimeofday(), if(), int, is_console(), is_invalid_handle(), is_not_socket(), is_pipe(), is_readable_console(), is_readable_pipe(), NULL, r, 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().

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

Definition at line 3228 of file win32.c.

References FALSE, NULL, and overlapped_socket_io().

Referenced by rb_w32_write().

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

Definition at line 3235 of file win32.c.

References FALSE, and overlapped_socket_io().

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

Definition at line 3389 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, StartSockets(), and TO_SOCKET.

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

Definition at line 3407 of file win32.c.

References errno, map_errno, r, RUBY_CRITICAL, shutdown, StartSockets(), and TO_SOCKET.

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

Definition at line 3473 of file win32.c.

References errno, MAKE_SOCKDATA, map_errno, O_BINARY, open_ifs_socket(), rb_w32_open_osfhandle(), RUBY_CRITICAL, s, socklist_insert(), and StartSockets().

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

Definition at line 3717 of file win32.c.

References MAKE_SOCKDATA, O_BINARY, pair, rb_w32_close(), rb_w32_open_osfhandle(), socketpair_internal(), and socklist_insert().

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

Definition at line 1180 of file win32.c.

References acp_to_wstr, ALLOCV, ALLOCV_END, CharNext, check_spawn_mode(), child_result(), cmd, CreateChild(), dln_find_exe_r(), e, errno, fbuf, free, getenv(), has_redirection(), is_batch(), is_command_com(), is_internal_cmd(), ISSPACE, len, MAXPATHLEN, memcpy(), NULL, p, ret, shell, strchr(), strlen(), STRNDUPV, tmp, translate_char(), and v.

Referenced by proc_exec_sh().

VALUE rb_w32_special_folder | ( | int | type | ) |

Definition at line 449 of file win32.c.

References get_special_folder(), path, Qnil, rb_filesystem_encoding(), rb_w32_conv_from_wchar(), and regulate_path().

Referenced by etc_sysconfdir().

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

Definition at line 4645 of file win32.c.

References COPY_STAT, and rb_w32_stati64().

int rb_w32_stati64 | ( | const char * | path,
|  | struct stati64 * | st
| ) |  |

Definition at line 4719 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wstati64().

Referenced by rb_w32_access(), and rb_w32_stat().

char* rb_w32_strerror | ( | int | e | ) |

Definition at line 2324 of file win32.c.

References EADDRINUSE, err, errmap, EWOULDBLOCK, i, int, memmove(), NULL, p, s, strerror(), strlcpy(), strlen(), sys_nerr, and winerr.

void rb_w32_sysinit | ( | int * | argc,
|  | char *** | argv
| ) |  |

Definition at line 723 of file win32.c.

References exit_handler(), get_version(), init_env(), init_func(), init_stdhandle(), rb_w32_cmdvector(), and StartSockets().

Referenced by ruby_sysinit().

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

Definition at line 460 of file win32.c.

References CSIDL_LOCAL_APPDATA, get_special_folder(), get_system_directory(), memcpy(), numberof, p, and translate_wchar().

Referenced by etc_systmpdir(), and init_env().

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

Definition at line 2050 of file win32.c.

References DIR::loc.

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

Definition at line 2704 of file win32.c.

References timeval::tv_sec, and timeval::tv_usec.

Referenced by rb_w32_select_with_thread().

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

Definition at line 4900 of file win32.c.

References filetime_to_clock(), tms::tms_cstime, tms::tms_cutime, tms::tms_stime, and tms::tms_utime.

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

Definition at line 4792 of file win32.c.

References errno, map_errno, rb_chsize(), and ret.

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

Definition at line 4748 of file win32.c.

References errno, and rb_w32_ustati64().

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

Definition at line 6274 of file win32.c.

References free, NULL, ret, and utf8_to_wstr.

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

Definition at line 6434 of file win32.c.

References free, NULL, ret, and utf8_to_wstr.

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

Definition at line 4072 of file win32.c.

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

Definition at line 4262 of file win32.c.

References env, free, len, map_errno, NULL, strlen(), strncasecmp, and wstr_to_mbstr().

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

Definition at line 4215 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wlink().

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

Definition at line 6308 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wmkdir().

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

Definition at line 6420 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wunlink().

int rb_w32_unwrap_io_handle | ( | int | fd | ) |

Definition at line 6716 of file win32.c.

References _set_osfhnd, constat_delete(), is_socket(), LK_LEN, NULL, socklist_delete(), and TO_SOCKET.

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

Definition at line 5162 of file win32.c.

References arg, free, NULL, rb_w32_wopen(), ret, utf8_to_wstr, and va_end().

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

Definition at line 1910 of file win32.c.

References free, NULL, opendir_internal(), ret, and utf8_to_wstr.

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

Definition at line 4360 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wrename().

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

Definition at line 6371 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wrmdir().

int rb_w32_ustati64 | ( | const char * | path,
|  | struct stati64 * | st
| ) |  |

Definition at line 4705 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wstati64().

Referenced by rb_w32_uaccess().

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

Definition at line 6260 of file win32.c.

References filecp_to_wstr, free, NULL, ret, and wutime().

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

Definition at line 6406 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wunlink().

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

Definition at line 6246 of file win32.c.

References free, NULL, ret, utf8_to_wstr, and wutime().

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

Referenced by catch_interrupt().

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

Definition at line 5235 of file win32.c.

References _osfile, _pioinfo(), _set_osfhnd, _set_osflags, access, arg, check_if_wdir(), errno, FALSE, FAPPEND, FDEV, FNOINHERIT, FOPEN, FPIPE, map_errno, MTHREAD_ONLY, NULL, O_BINARY, RUBY_CRITICAL, TRUE, and va_end().

Referenced by rb_w32_open(), and rb_w32_uopen().

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

Definition at line 6694 of file win32.c.

References errno, len, O_NONBLOCK, r, rb_w32_open_osfhandle(), socklist_insert(), and tmp.

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

Definition at line 6044 of file win32.c.

References _osfhnd, _osfile, _pioinfo(), cancel_io, err, errno, FDEV, FEOFLAG, fileno, finish_overlapped(), FPIPE, FTEXT, is_socket(), len, map_errno, min(), MTHREAD_ONLY, NULL, rb_w32_send(), rb_w32_wait_events_blocking(), ret, retry, setup_overlapped(), size, TO_SOCKET, TRUE, and wait.

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

Definition at line 6145 of file win32.c.

References _osfhnd, constat_handle(), constat_parse(), ECONV_INVALID_REPLACE, ECONV_UNDEF_REPLACE, len, NULL, ptr, Qnil, rb_econv_has_convpath_p(), rb_enc_find(), rb_enc_from_encoding(), rb_enc_get(), rb_enc_name, RB_GC_GUARD, rb_str_encode(), RSTRING_LEN, RSTRING_PTR, s, and TRUE.

Referenced by io_fwrite().

static struct direct* readdir_internal | ( | DIR * | dirp,
|  | BOOL(*)(const WCHAR *, struct direct *, rb_encoding *) | conv,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 1997 of file win32.c.

References BitOfIsDir, BitOfIsRep, DIR::bits, DIR::curr, direct::d_ino, direct::d_isdir, direct::d_isrep, direct::d_name, DIR::dirstr, dummy, free, GetBit, DIR::loc, move_to_next_entry(), and NULL.

Referenced by rb_w32_readdir().

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

Definition at line 3279 of file win32.c.

References cancel_io, WSAMSG::dwFlags, errno, FALSE, finish_overlapped_socket(), flags, GET_FLAGS, get_wsa_extension_function(), int, len, map_errno, memset(), mode, msghdr::msg_flags, msghdr::msg_name, msghdr::msg_namelen, msghdr_to_wsamsg, WSAMSG::name, WSAMSG::namelen, NULL, O_NONBLOCK, ret, RUBY_CRITICAL, s, size, socklist_lookup(), StartSockets(), TO_SOCKET, TRUE, and WSAID_WSARECVMSG.

static void regulate_path | ( | WCHAR * | path | ) |
| static

Definition at line 400 of file win32.c.

References p, and translate_wchar().

Referenced by init_env(), and rb_w32_special_folder().

static BOOL ruby_direct_conv | ( | const WCHAR * | file,
|  | struct direct * | entry,
|  | rb_encoding * | enc
| ) |  |
| static

Definition at line 1988 of file win32.c.

References direct::d_name, direct::d_namlen, FALSE, rb_w32_conv_from_wstr(), and TRUE.

Referenced by rb_w32_readdir().

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

Definition at line 3337 of file win32.c.

References cancel_io, errno, FALSE, finish_overlapped_socket(), GET_FLAGS, get_wsa_extension_function(), int, len, map_errno, memset(), mode, msghdr_to_wsamsg, NULL, O_NONBLOCK, ret, RUBY_CRITICAL, s, size, socklist_lookup(), StartSockets(), TO_SOCKET, TRUE, and WSAID_WSASENDMSG.

static int setfl | ( | SOCKET | sock,
|  | int | arg
| ) |  |
| static

Definition at line 3770 of file win32.c.

References errno, flag, GET_FAMILY, GET_FLAGS, MAKE_SOCKDATA, map_errno, O_NONBLOCK, ret, RUBY_CRITICAL, socklist_insert(), socklist_lookup(), and u_long.

Referenced by fcntl().

int setgid | ( | rb_gid_t | gid | ) |

Definition at line 2427 of file win32.c.

References ROOT_GID.

Referenced by p_gid_change_privilege(), rb_execarg_run_options(), and rb_setegid_core().

void sethostent | ( | int | stayopen | ) |

Definition at line 3760 of file win32.c.

void setnetent | ( | int | stayopen | ) |

Definition at line 3762 of file win32.c.

void setprotoent | ( | int | stayopen | ) |

Definition at line 3764 of file win32.c.

void setservent | ( | int | stayopen | ) |

Definition at line 3766 of file win32.c.

int setuid | ( | rb_uid_t | uid | ) |

Definition at line 2420 of file win32.c.

References ROOT_UID.

Referenced by p_uid_change_privilege(), rb_execarg_run_options(), and rb_seteuid_core().

static int setup_overlapped | ( | OVERLAPPED * | ol,
|  | int | fd
| ) |  |
| static

Definition at line 5862 of file win32.c.

References _osfhnd, _osfile, err, errno, FAPPEND, FDEV, FPIPE, INVALID_SET_FILE_POINTER, map_errno, memset(), method, NULL, and TRUE.

Referenced by rb_w32_read(), and rb_w32_write().

int signbit | ( | double | x | ) |

Definition at line 6541 of file win32.c.

References ip.

Referenced by f_signbit(), math_atan2(), math_gamma(), and math_lgamma().

static char* skipspace | ( | char * | ptr | ) |
| inline static

Definition at line 1482 of file win32.c.

References ISSPACE, and ptr.

Referenced by rb_w32_cmdvector().

static int socketpair_internal | ( | int | af,
|  | int | type,
|  | int | protocol,
|  | SOCKET * | sv
| ) |  |
| static

Definition at line 3626 of file win32.c.

References EAFNOSUPPORT, EPROTOTYPE, errno, INADDR_LOOPBACK, len, map_errno, memset(), open_ifs_socket(), PF_INET, r, ret, RUBY_CRITICAL, and StartSockets().

Referenced by rb_w32_socketpair().

static int socklist_delete | ( | SOCKET * | sockp,
|  | int * | flagp
| ) |  |
| inline static

Definition at line 697 of file win32.c.

References data, int, key, ret, and st_delete().

Referenced by rb_w32_close(), and rb_w32_unwrap_io_handle().

static int socklist_insert | ( | SOCKET | sock,
|  | int | flag
| ) |  |
| inline static

Definition at line 672 of file win32.c.

References st_init_numtable(), and st_insert().

Referenced by rb_w32_accept(), rb_w32_socket(), rb_w32_socketpair(), rb_w32_wrap_io_handle(), and setfl().

static int socklist_lookup | ( | SOCKET | sock,
|  | int * | flagp
| ) |  |
| inline static

Definition at line 681 of file win32.c.

References data, int, ret, and st_lookup().

Referenced by is_socket(), overlapped_socket_io(), rb_w32_getsockname(), recvmsg(), sendmsg(), and setfl().

static void StartSockets | ( | void |  | ) |
| static

Definition at line 646 of file win32.c.

References rb_fatal(), and version().

Referenced by do_select(), overlapped_socket_io(), rb_w32_accept(), rb_w32_bind(), rb_w32_connect(), rb_w32_gethostbyaddr(), rb_w32_gethostbyname(), rb_w32_gethostname(), rb_w32_getpeername(), rb_w32_getprotobyname(), rb_w32_getprotobynumber(), rb_w32_getservbyname(), rb_w32_getservbyport(), rb_w32_getsockname(), rb_w32_getsockopt(), rb_w32_ioctlsocket(), rb_w32_listen(), rb_w32_setsockopt(), rb_w32_shutdown(), rb_w32_socket(), rb_w32_sysinit(), recvmsg(), sendmsg(), and socketpair_internal().

static int systemtime_to_localtime | ( | TIME_ZONE_INFORMATION * | tz,
|  | SYSTEMTIME * | gst,
|  | SYSTEMTIME * | lst
| ) |  |
| static

Definition at line 6612 of file win32.c.

Referenced by localtime_r().

static void systemtime_to_tm | ( | const SYSTEMTIME * | st,
|  | struct tm * | t
| ) |  |
| static

Definition at line 6586 of file win32.c.

References d, and m.

Referenced by gmtime_r(), and localtime_r().

static char* translate_char | ( | char * | p,
|  | int | from,
|  | int | to
| ) |  |
| inline static

Definition at line 356 of file win32.c.

References CharNext, and p.

Referenced by rb_w32_aspawn_flags(), rb_w32_getcwd(), and rb_w32_spawn().

static WCHAR* translate_wchar | ( | WCHAR * | p,
|  | int | from,
|  | int | to
| ) |  |
| inline static

Definition at line 345 of file win32.c.

References p.

Referenced by rb_w32_system_tmpdir(), and regulate_path().

static int unixtime_to_filetime | ( | time_t | time,
|  | FILETIME * | ft
| ) |  |
| static

Definition at line 6184 of file win32.c.

References tmp.

Referenced by unixtime_to_systemtime(), and wutime().

static int unixtime_to_systemtime | ( | const time_t | t,
|  | SYSTEMTIME * | st
| ) |  |
| static

Definition at line 6576 of file win32.c.

References unixtime_to_filetime().

Referenced by gmtime_r(), and localtime_r().

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

Definition at line 4255 of file win32.c.

References waitpid().

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

Definition at line 3919 of file win32.c.

References count, END_FOREACH_CHILD, errno, FindChildSlot(), FindChildSlotByHandle(), FOREACH_CHILD, ChildRecord::hProcess, map_errno, MAXCHILDNUM, ChildRecord::pid, poll_child_status(), rb_w32_wait_events_blocking(), ret, and WNOHANG.

Referenced by rb_waitpid_blocking(), and wait().

static BOOL win32_direct_conv | ( | const WCHAR * | file,
|  | struct direct * | entry,
|  | rb_encoding * | dummy
| ) |  |
| static

Definition at line 1944 of file win32.c.

References direct::d_name, direct::d_namlen, FALSE, TRUE, and wstr_to_filecp.

Referenced by rb_w32_readdir().

static int winnt_stat | ( | const WCHAR * | path,
|  | struct stati64 * | st
| ) |  |
| static

Definition at line 4583 of file win32.c.

References check_valid_dir(), errno, fileattr_to_unixmode(), filetime_to_unixtime(), map_errno, memset(), p, and path.

Referenced by wstati64().

static int wlink | ( | const WCHAR * | from,
|  | const WCHAR * | to
| ) |  |
| static

Definition at line 4189 of file win32.c.

References errno, get_proc_address(), map_errno, and NULL.

Referenced by link(), and rb_w32_ulink().

static int wmkdir | ( | const WCHAR * | wpath,
|  | int | mode
| ) |  |
| static

Definition at line 6288 of file win32.c.

References errno, FALSE, map_errno, NULL, ret, and RUBY_CRITICAL.

Referenced by rb_w32_mkdir(), and rb_w32_umkdir().

static int wrename | ( | const WCHAR * | oldpath,
|  | const WCHAR * | newpath
| ) |  |
| static

Definition at line 4329 of file win32.c.

References errno, map_errno, res, and RUBY_CRITICAL.

Referenced by rb_w32_rename(), and rb_w32_urename().

static int wrmdir | ( | const WCHAR * | wpath | ) |
| static

Definition at line 6336 of file win32.c.

References errno, FALSE, map_errno, ret, and RUBY_CRITICAL.

Referenced by rb_w32_rmdir(), and rb_w32_urmdir().

static int wstati64 | ( | const WCHAR * | path,
|  | struct stati64 * | st
| ) |  |
| static

Definition at line 4656 of file win32.c.

References ALLOCV_END, ALLOCV_N, end, errno, isUNCRoot(), len, p, ret, s, S_IWGRP, S_IWOTH, size, v, and winnt_stat().

Referenced by opendir_internal(), rb_w32_stati64(), rb_w32_ustati64(), and wutime().

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

Definition at line 1873 of file win32.c.

References len, malloc(), NULL, and ptr.

Referenced by rb_w32_ugetenv().

static int wunlink | ( | const WCHAR * | path | ) |
| static

Definition at line 6385 of file win32.c.

References errno, map_errno, ret, and RUBY_CRITICAL.

Referenced by rb_w32_unlink(), and rb_w32_uunlink().

static int wutime | ( | const WCHAR * | path,
|  | const struct utimbuf * | times
| ) |  |
| static

Definition at line 6196 of file win32.c.

References utimbuf::actime, errno, map_errno, utimbuf::modtime, mtime, NULL, ret, RUBY_CRITICAL, unixtime_to_filetime(), and wstati64().

Referenced by rb_w32_utime(), and rb_w32_uutime().

## Variable Documentation

EXTERN_C _CRTIMP ioinfo* __pioinfo[]

Definition at line 2136 of file win32.c.

cancel_io_t cancel_io = NULL
| static

Definition at line 540 of file win32.c.

Referenced by finish_overlapped_socket(), init_func(), overlapped_socket_io(), rb_w32_io_cancelable_p(), rb_w32_pipe(), rb_w32_read(), rb_w32_write(), recvmsg(), and sendmsg().

struct ChildRecord ChildRecord[MAXCHILDNUM]
| static

st_table* conlist = NULL
| static

Definition at line 583 of file win32.c.

char* envarea
| static

Definition at line 584 of file win32.c.

int err

Definition at line 87 of file win32.c.

Referenced by argf_next_argv(), BSD__sprint(), cleanup_iseq_build(), clsid_from_remote(), compile_err_append(), date_strftime_with_tmx(), dlhandle_sym(), errat_getter(), errat_setter(), expand_case_fold_string(), fetch_name(), fetch_name_with_level(), fiddle_handle_sym(), finish_overlapped_socket(), foletype_s_progids(), foletypelib_s_typelibs(), fptr_finalize(), init_libraries(), init_libraries_if_necessary(), Init_syslog(), inspect_errno(), kill(), lock_func(), make_econv_exception(), Messaging_HandleMessage(), mutex_free(), node_extended_grapheme_cluster(), node_linebreak(), oletypelib_path(), oletypelib_search_registry(), oletypelib_search_registry2(), onig_compile(), onig_new(), onig_new_with_source(), ossl_exc_new(), ossl_pkcs12_initialize(), ossl_pkcs7_add_data(), ossl_raise(), ossl_x509stctx_get_err_string(), ossl_x509stctx_set_error(), overlapped_socket_io(), parse_char_class(), parse_enclose(), parse_subexp(), poll_child_status(), raise_loaderror(), rb_check_backtrace(), rb_deflate_init_copy(), rb_deflate_initialize(), rb_deflate_params(), rb_deflate_s_deflate(), rb_deflate_set_dictionary(), rb_dlhandle_initialize(), rb_enc_reg_new(), rb_f_raise(), rb_fiber_start(), rb_fiddle_handle_initialize(), rb_gzreader_initialize(), rb_gzwriter_initialize(), rb_inflate_initialize(), rb_inflate_s_inflate(), rb_inflate_set_dictionary(), rb_inflate_sync_point_p(), rb_iterate(), rb_mutex_unlock(), rb_mutex_unlock_th(), rb_reg_check_preprocess(), rb_reg_compile(), rb_reg_init_copy(), rb_reg_init_str(), rb_reg_initialize_m(), rb_reg_prepare_re(), rb_reg_preprocess_dregexp(), rb_reg_search(), rb_reg_to_s(), rb_set_errinfo(), rb_strftime_with_timespec(), rb_thread_pending_interrupt_p(), rb_threadptr_execute_interrupts(), rb_threadptr_pending_interrupt_deque(), rb_threadptr_unlock_all_locking_mutexes(), rb_w32_connect(), rb_w32_pipe(), rb_w32_read(), rb_w32_strerror(), rb_w32_write(), reg_compile_gen(), reg_enum_key(), reg_fragment_check_gen(), reg_get_val(), reg_get_val2(), ruby_cleanup(), ruby_close(), ruby_float_step_size(), ruby_getpeername(), ruby_getsockname(), ruby_shutdown(), sdbm_prep(), setup_overlapped(), syserr_initialize(), thread_create_core(), thread_fd_close_i(), thread_join(), typelib_file_from_clsid(), typelib_file_from_typelib(), vm_exec(), vm_throw(), zstream_end(), zstream_finalize(), zstream_reset(), zstream_run(), zstream_run_func(), and zstream_sync().

struct { ... } errmap[]

Referenced by rb_w32_map_errno(), and rb_w32_strerror().

const char* NTLoginName
| static

Definition at line 245 of file win32.c.

Referenced by getlogin(), and init_env().

int NtSocketsInitialized = 0
| static

Definition at line 581 of file win32.c.

OSVERSIONINFO osver
| static

Definition at line 247 of file win32.c.

Referenced by get_version(), rb_w32_osver(), and rb_w32_read().

CRITICAL_SECTION select_mutex
| static

Definition at line 580 of file win32.c.

st_table* socklist = NULL
| static

Definition at line 582 of file win32.c.

const char* const szInternalCmds[]
| static

Definition at line 838 of file win32.c.

char* uenvarea
| static

Definition at line 585 of file win32.c.

DWORD winerr

Definition at line 86 of file win32.c.

Referenced by rb_w32_map_errno(), and rb_w32_strerror().