MySQL 8.3.0
Source Code Documentation
my_io.h File Reference

Common #defines and includes for file and socket I/O. More...

Go to the source code of this file.

Macros

#define MY_FOPEN_BINARY   0 /* Ignore on non-Windows */
 
#define FN_LEN   256 /* Max file name len */
 
#define FN_HEADLEN   253 /* Max length of filepart of file name */
 
#define FN_EXTLEN   20 /* Max length of extension (part of FN_LEN) */
 
#define FN_REFLEN   512 /* Max length of full path-name */
 
#define FN_REFLEN_SE   4000 /* Max length of full path-name in SE */
 
#define FN_EXTCHAR   '.'
 
#define FN_HOMELIB   '~' /* ~/ is used as abbrev for home dir */
 
#define FN_CURLIB   '.' /* ./ is used as abbrev for current dir */
 
#define FN_PARENTDIR   ".." /* Parent directory; Must be a string */
 
#define FN_LIBCHAR   '/'
 
#define FN_DIRSEP   "/" /* Valid directory separators */
 
#define FN_EXEEXT   ""
 
#define FN_SOEXT   ".so"
 
#define FN_ROOTDIR   "/"
 
#define MY_FILE_MIN   0
 
#define MY_NFILE   64
 
#define OS_FILE_LIMIT   UINT_MAX
 
#define socket_errno   errno
 
#define closesocket(A)   close(A)
 
#define SOCKET_EINTR   EINTR
 
#define SOCKET_EAGAIN   EAGAIN
 
#define SOCKET_EWOULDBLOCK   EWOULDBLOCK
 
#define SOCKET_EADDRINUSE   EADDRINUSE
 
#define SOCKET_ETIMEDOUT   ETIMEDOUT
 
#define SOCKET_ECONNRESET   ECONNRESET
 
#define SOCKET_ENFILE   ENFILE
 
#define SOCKET_EMFILE   EMFILE
 
#define INVALID_SOCKET   -1
 
#define USER_READ   (1L << 0)
 
#define USER_WRITE   (1L << 1)
 
#define USER_EXECUTE   (1L << 2)
 
#define GROUP_READ   (1L << 3)
 
#define GROUP_WRITE   (1L << 4)
 
#define GROUP_EXECUTE   (1L << 5)
 
#define OTHERS_READ   (1L << 6)
 
#define OTHERS_WRITE   (1L << 7)
 
#define OTHERS_EXECUTE   (1L << 8)
 
#define USER_RWX   USER_READ | USER_WRITE | USER_EXECUTE
 
#define GROUP_RWX   GROUP_READ | GROUP_WRITE | GROUP_EXECUTE
 
#define OTHERS_RWX   OTHERS_READ | OTHERS_WRITE | OTHERS_EXECUTE
 

Functions

static int is_directory_separator (char c)
 

Variables

constexpr const size_t IO_SIZE {4096}
 
constexpr const unsigned int READ_RECORD_BUFFER {IO_SIZE * 8}
 
constexpr const unsigned int DISK_BUFFER_SIZE {IO_SIZE * 16}
 

Detailed Description

Common #defines and includes for file and socket I/O.

Macro Definition Documentation

◆ closesocket

#define closesocket (   A)    close(A)

◆ FN_CURLIB

#define FN_CURLIB   '.' /* ./ is used as abbrev for current dir */

◆ FN_DIRSEP

#define FN_DIRSEP   "/" /* Valid directory separators */

◆ FN_EXEEXT

#define FN_EXEEXT   ""

◆ FN_EXTCHAR

#define FN_EXTCHAR   '.'

◆ FN_EXTLEN

#define FN_EXTLEN   20 /* Max length of extension (part of FN_LEN) */

◆ FN_HEADLEN

#define FN_HEADLEN   253 /* Max length of filepart of file name */

◆ FN_HOMELIB

#define FN_HOMELIB   '~' /* ~/ is used as abbrev for home dir */

◆ FN_LEN

#define FN_LEN   256 /* Max file name len */

◆ FN_LIBCHAR

#define FN_LIBCHAR   '/'

◆ FN_PARENTDIR

#define FN_PARENTDIR   ".." /* Parent directory; Must be a string */

◆ FN_REFLEN

#define FN_REFLEN   512 /* Max length of full path-name */

◆ FN_REFLEN_SE

#define FN_REFLEN_SE   4000 /* Max length of full path-name in SE */

◆ FN_ROOTDIR

#define FN_ROOTDIR   "/"

◆ FN_SOEXT

#define FN_SOEXT   ".so"

◆ GROUP_EXECUTE

#define GROUP_EXECUTE   (1L << 5)

◆ GROUP_READ

#define GROUP_READ   (1L << 3)

◆ GROUP_RWX

#define GROUP_RWX   GROUP_READ | GROUP_WRITE | GROUP_EXECUTE

◆ GROUP_WRITE

#define GROUP_WRITE   (1L << 4)

◆ INVALID_SOCKET

#define INVALID_SOCKET   -1

◆ MY_FILE_MIN

#define MY_FILE_MIN   0

◆ MY_FOPEN_BINARY

#define MY_FOPEN_BINARY   0 /* Ignore on non-Windows */

◆ MY_NFILE

#define MY_NFILE   64

◆ OS_FILE_LIMIT

#define OS_FILE_LIMIT   UINT_MAX

◆ OTHERS_EXECUTE

#define OTHERS_EXECUTE   (1L << 8)

◆ OTHERS_READ

#define OTHERS_READ   (1L << 6)

◆ OTHERS_RWX

#define OTHERS_RWX   OTHERS_READ | OTHERS_WRITE | OTHERS_EXECUTE

◆ OTHERS_WRITE

#define OTHERS_WRITE   (1L << 7)

◆ SOCKET_EADDRINUSE

#define SOCKET_EADDRINUSE   EADDRINUSE

◆ SOCKET_EAGAIN

#define SOCKET_EAGAIN   EAGAIN

◆ SOCKET_ECONNRESET

#define SOCKET_ECONNRESET   ECONNRESET

◆ SOCKET_EINTR

#define SOCKET_EINTR   EINTR

◆ SOCKET_EMFILE

#define SOCKET_EMFILE   EMFILE

◆ SOCKET_ENFILE

#define SOCKET_ENFILE   ENFILE

◆ socket_errno

#define socket_errno   errno

◆ SOCKET_ETIMEDOUT

#define SOCKET_ETIMEDOUT   ETIMEDOUT

◆ SOCKET_EWOULDBLOCK

#define SOCKET_EWOULDBLOCK   EWOULDBLOCK

◆ USER_EXECUTE

#define USER_EXECUTE   (1L << 2)

◆ USER_READ

#define USER_READ   (1L << 0)

◆ USER_RWX

#define USER_RWX   USER_READ | USER_WRITE | USER_EXECUTE

◆ USER_WRITE

#define USER_WRITE   (1L << 1)

Function Documentation

◆ is_directory_separator()

static int is_directory_separator ( char  c)
inlinestatic

Variable Documentation

◆ DISK_BUFFER_SIZE

constexpr const unsigned int DISK_BUFFER_SIZE {IO_SIZE * 16}
constexpr

◆ IO_SIZE

constexpr const size_t IO_SIZE {4096}
constexpr

◆ READ_RECORD_BUFFER

constexpr const unsigned int READ_RECORD_BUFFER {IO_SIZE * 8}
constexpr