修正了部分代码的表达方式,最后可用版本,mlirlite 已基本完善
This commit is contained in:
1 parent
0d77b68cc4
commit
0f556463e7
116 files changed
+13896
-4938
No files matched your search
@@ -23,99 +23,99 @@ time_t: t.CTypedef = t.CInt64T # Calendar time seconds
|
||||
# =============================================================================
|
||||
# open() Flags
|
||||
# =============================================================================
|
||||
O_RDONLY: t.CDefine = 0
|
||||
O_WRONLY: t.CDefine = 1
|
||||
O_RDWR: t.CDefine = 2
|
||||
O_CREAT: t.CDefine = 0o100
|
||||
O_EXCL: t.CDefine = 0o200
|
||||
O_TRUNC: t.CDefine = 0o1000
|
||||
O_APPEND: t.CDefine = 0o2000
|
||||
O_NONBLOCK: t.CDefine = 0o4000
|
||||
O_CLOEXEC: t.CDefine = 0o2000000
|
||||
define O_RDONLY = 0
|
||||
define O_WRONLY = 1
|
||||
define O_RDWR = 2
|
||||
define O_CREAT = 0o100
|
||||
define O_EXCL = 0o200
|
||||
define O_TRUNC = 0o1000
|
||||
define O_APPEND = 0o2000
|
||||
define O_NONBLOCK = 0o4000
|
||||
define O_CLOEXEC = 0o2000000
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# access() Test Flags
|
||||
# =============================================================================
|
||||
F_OK: t.CDefine = 0 # File exists
|
||||
R_OK: t.CDefine = 4 # Read permission
|
||||
W_OK: t.CDefine = 2 # Write permission
|
||||
X_OK: t.CDefine = 1 # Execute permission
|
||||
define F_OK = 0 # File exists
|
||||
define R_OK = 4 # Read permission
|
||||
define W_OK = 2 # Write permission
|
||||
define X_OK = 1 # Execute permission
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# stat struct st_mode Mask and Type Bits
|
||||
# =============================================================================
|
||||
S_IFMT: t.CDefine = 0o170000 # Type mask bits
|
||||
S_IFSOCK: t.CDefine = 0o140000 # Socket
|
||||
S_IFLNK: t.CDefine = 0o120000 # Symbolic link
|
||||
S_IFREG: t.CDefine = 0o100000 # Regular file
|
||||
S_IFBLK: t.CDefine = 0o060000 # Block device
|
||||
S_IFDIR: t.CDefine = 0o040000 # Directory
|
||||
S_IFCHR: t.CDefine = 0o020000 # Character device
|
||||
S_IFIFO: t.CDefine = 0o010000 # FIFO/pipe
|
||||
define S_IFMT = 0o170000 # Type mask bits
|
||||
define S_IFSOCK = 0o140000 # Socket
|
||||
define S_IFLNK = 0o120000 # Symbolic link
|
||||
define S_IFREG = 0o100000 # Regular file
|
||||
define S_IFBLK = 0o060000 # Block device
|
||||
define S_IFDIR = 0o040000 # Directory
|
||||
define S_IFCHR = 0o020000 # Character device
|
||||
define S_IFIFO = 0o010000 # FIFO/pipe
|
||||
|
||||
# Permission Bits
|
||||
S_ISUID: t.CDefine = 0o4000 # Set-user-ID
|
||||
S_ISGID: t.CDefine = 0o2000 # Set-group-ID
|
||||
S_ISVTX: t.CDefine = 0o1000 # Sticky bit
|
||||
S_IRWXU: t.CDefine = 0o700 # Read/write/execute permission
|
||||
S_IRUSR: t.CDefine = 0o400 # User read permission
|
||||
S_IWUSR: t.CDefine = 0o200 # User write permission
|
||||
S_IXUSR: t.CDefine = 0o100 # User execute permission
|
||||
S_IRWXG: t.CDefine = 0o070 # Read/write/execute permission
|
||||
S_IRGRP: t.CDefine = 0o040 # Read permission
|
||||
S_IWGRP: t.CDefine = 0o020 # Write
|
||||
S_IXGRP: t.CDefine = 0o010 # Execute
|
||||
S_IRWXO: t.CDefine = 0o007 # Read/write/execute permission
|
||||
S_IROTH: t.CDefine = 0o004 # Other read permission
|
||||
S_IWOTH: t.CDefine = 0o002 # Other write permission
|
||||
S_IXOTH: t.CDefine = 0o001 # Other execute permission
|
||||
define S_ISUID = 0o4000 # Set-user-ID
|
||||
define S_ISGID = 0o2000 # Set-group-ID
|
||||
define S_ISVTX = 0o1000 # Sticky bit
|
||||
define S_IRWXU = 0o700 # Read/write/execute permission
|
||||
define S_IRUSR = 0o400 # User read permission
|
||||
define S_IWUSR = 0o200 # User write permission
|
||||
define S_IXUSR = 0o100 # User execute permission
|
||||
define S_IRWXG = 0o070 # Read/write/execute permission
|
||||
define S_IRGRP = 0o040 # Read permission
|
||||
define S_IWGRP = 0o020 # Write
|
||||
define S_IXGRP = 0o010 # Execute
|
||||
define S_IRWXO = 0o007 # Read/write/execute permission
|
||||
define S_IROTH = 0o004 # Other read permission
|
||||
define S_IWOTH = 0o002 # Other write permission
|
||||
define S_IXOTH = 0o001 # Other execute permission
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# lseek() whence values
|
||||
# =============================================================================
|
||||
SEEK_SET: t.CDefine = 0
|
||||
SEEK_CUR: t.CDefine = 1
|
||||
SEEK_END: t.CDefine = 2
|
||||
define SEEK_SET = 0
|
||||
define SEEK_CUR = 1
|
||||
define SEEK_END = 2
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# Path/name length limits
|
||||
# =============================================================================
|
||||
PATH_MAX: t.CDefine = 4096
|
||||
NAME_MAX: t.CDefine = 255
|
||||
define PATH_MAX = 4096
|
||||
define NAME_MAX = 255
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# sysconf() parameters
|
||||
# =============================================================================
|
||||
_SC_NPROCESSORS_ONLN: t.CDefine = 84
|
||||
_SC_PAGESIZE: t.CDefine = 30
|
||||
_SC_CLK_TCK: t.CDefine = 2
|
||||
define _SC_NPROCESSORS_ONLN = 84
|
||||
define _SC_PAGESIZE = 30
|
||||
define _SC_CLK_TCK = 2
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# dirent struct d_type values
|
||||
# =============================================================================
|
||||
DT_UNKNOWN: t.CDefine = 0
|
||||
DT_FIFO: t.CDefine = 1
|
||||
DT_CHR: t.CDefine = 2
|
||||
DT_DIR: t.CDefine = 4
|
||||
DT_BLK: t.CDefine = 6
|
||||
DT_REG: t.CDefine = 8
|
||||
DT_LNK: t.CDefine = 10
|
||||
DT_SOCK: t.CDefine = 12
|
||||
DT_WHT: t.CDefine = 14
|
||||
define DT_UNKNOWN = 0
|
||||
define DT_FIFO = 1
|
||||
define DT_CHR = 2
|
||||
define DT_DIR = 4
|
||||
define DT_BLK = 6
|
||||
define DT_REG = 8
|
||||
define DT_LNK = 10
|
||||
define DT_SOCK = 12
|
||||
define DT_WHT = 14
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# waitpid() options
|
||||
# =============================================================================
|
||||
WNOHANG: t.CDefine = 1
|
||||
WUNTRACED: t.CDefine = 2
|
||||
WCONTINUED: t.CDefine = 8
|
||||
define WNOHANG = 1
|
||||
define WUNTRACED = 2
|
||||
define WCONTINUED = 8
|
||||
|
||||
|
||||
# =============================================================================
|
||||
@@ -125,7 +125,7 @@ WCONTINUED: t.CDefine = 8
|
||||
# struct stat (144 bytes, Linux x86_64 glibc layout)
|
||||
# Note: st_atim/st_mtim/st_ctim in C are struct timespec { tv_sec; tv_nsec; }
|
||||
# Here split into _sec/_nsec two LONGLONG fields to maintain binary compatibility
|
||||
class Stat():
|
||||
class Stat:
|
||||
st_dev: dev_t # @ 0
|
||||
st_ino: ino_t # @ 8
|
||||
st_nlink: nlink_t # @ 16
|
||||
@@ -164,8 +164,8 @@ class Dirent():
|
||||
# =============================================================================
|
||||
extern def open(path: t.CConst | str, oflag: INT, *args) -> INT
|
||||
extern def close(fd: INT) -> INT
|
||||
extern def read(fd: INT, buf: bytes, count: t.CSizeT) -> ssize_t
|
||||
extern def write(fd: INT, buf: t.CConst | bytes, count: t.CSizeT) -> ssize_t
|
||||
extern def read(fd: INT, buf: bytes, count: sizet) -> ssize_t
|
||||
extern def write(fd: INT, buf: t.CConst | bytes, count: sizet) -> ssize_t
|
||||
extern def lseek(fd: INT, offset: off_t, whence: INT) -> off_t
|
||||
extern def unlink(path: t.CConst | str) -> INT
|
||||
extern def access(path: t.CConst | str, amode: INT) -> INT
|
||||
@@ -188,7 +188,7 @@ extern def readdir(dirp: DIR) -> Dirent | t.CPtr
|
||||
extern def closedir(dirp: DIR) -> INT
|
||||
extern def mkdir(path: t.CConst | str, mode: mode_t) -> INT
|
||||
extern def rmdir(path: t.CConst | str) -> INT
|
||||
extern def getcwd(buf: CHARPTR, size: t.CSizeT) -> CHARPTR
|
||||
extern def getcwd(buf: CHARPTR, size: sizet) -> CHARPTR
|
||||
extern def chdir(path: t.CConst | str) -> INT
|
||||
|
||||
|
||||
@@ -219,46 +219,16 @@ extern def isatty(fd: INT) -> INT
|
||||
# =============================================================================
|
||||
|
||||
# st_mode type determination
|
||||
def S_ISREG(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFREG
|
||||
|
||||
|
||||
def S_ISDIR(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFDIR
|
||||
|
||||
|
||||
def S_ISLNK(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFLNK
|
||||
|
||||
|
||||
def S_ISCHR(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFCHR
|
||||
|
||||
|
||||
def S_ISBLK(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFBLK
|
||||
|
||||
|
||||
def S_ISFIFO(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFIFO
|
||||
|
||||
|
||||
def S_ISSOCK(mode: mode_t) -> bool:
|
||||
return (mode & S_IFMT) == S_IFSOCK
|
||||
|
||||
def S_ISREG(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFREG
|
||||
def S_ISDIR(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFDIR
|
||||
def S_ISLNK(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFLNK
|
||||
def S_ISCHR(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFCHR
|
||||
def S_ISBLK(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFBLK
|
||||
def S_ISFIFO(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFIFO
|
||||
def S_ISSOCK(mode: mode_t) -> bool: return (mode & S_IFMT) == S_IFSOCK
|
||||
|
||||
# waitpid status parsing
|
||||
def WIFEXITED(status: INT) -> bool:
|
||||
return (status & 0x7F) == 0
|
||||
|
||||
|
||||
def WEXITSTATUS(status: INT) -> INT:
|
||||
return (status >> 8) & 0xFF
|
||||
|
||||
|
||||
def WIFSIGNALED(status: INT) -> bool:
|
||||
return ((status & 0x7F) != 0) and ((status & 0x7F) != 0x7F)
|
||||
|
||||
|
||||
def WTERMSIG(status: INT) -> INT:
|
||||
return status & 0x7F
|
||||
def WIFEXITED(status: INT) -> bool: return (status & 0x7F) == 0
|
||||
def WEXITSTATUS(status: INT) -> INT: return (status >> 8) & 0xFF
|
||||
def WIFSIGNALED(status: INT) -> bool: return ((status & 0x7F) != 0) and ((status & 0x7F) != 0x7F)
|
||||
def WTERMSIG(status: INT) -> INT: return status & 0x7F
|
||||
Reference in new issue
Block a user