mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-12-11 18:12:53 +00:00
Merge 57518d4375 into 1289671227
This commit is contained in:
commit
de3cc34f82
|
|
@ -463,27 +463,8 @@ fd_determine_type_rights(os_file_handle fd, __wasi_filetype_t *type,
|
||||||
__wasi_rights_t *rights_inheriting)
|
__wasi_rights_t *rights_inheriting)
|
||||||
{
|
{
|
||||||
struct __wasi_filestat_t buf;
|
struct __wasi_filestat_t buf;
|
||||||
__wasi_errno_t error;
|
__wasi_errno_t error = os_fstat(fd, &buf);
|
||||||
|
|
||||||
if (os_is_stdin_handle(fd)) {
|
|
||||||
*rights_base = RIGHTS_STDIN;
|
|
||||||
*rights_inheriting = RIGHTS_STDIN;
|
|
||||||
return __WASI_ESUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (os_is_stdout_handle(fd)) {
|
|
||||||
*rights_base = RIGHTS_STDOUT;
|
|
||||||
*rights_inheriting = RIGHTS_STDOUT;
|
|
||||||
return __WASI_ESUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (os_is_stderr_handle(fd)) {
|
|
||||||
*rights_base = RIGHTS_STDERR;
|
|
||||||
*rights_inheriting = RIGHTS_STDERR;
|
|
||||||
return __WASI_ESUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
error = os_fstat(fd, &buf);
|
|
||||||
if (error != __WASI_ESUCCESS)
|
if (error != __WASI_ESUCCESS)
|
||||||
return error;
|
return error;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,19 +47,6 @@
|
||||||
#define RIGHTS_CHARACTER_DEVICE_BASE RIGHTS_ALL
|
#define RIGHTS_CHARACTER_DEVICE_BASE RIGHTS_ALL
|
||||||
#define RIGHTS_CHARACTER_DEVICE_INHERITING RIGHTS_ALL
|
#define RIGHTS_CHARACTER_DEVICE_INHERITING RIGHTS_ALL
|
||||||
|
|
||||||
#define RIGHTS_STDIN \
|
|
||||||
(__WASI_RIGHT_FD_ADVISE | __WASI_RIGHT_FD_FILESTAT_GET | \
|
|
||||||
__WASI_RIGHT_FD_READ | __WASI_RIGHT_FD_WRITE | \
|
|
||||||
__WASI_RIGHT_POLL_FD_READWRITE)
|
|
||||||
|
|
||||||
#define RIGHTS_STDOUT \
|
|
||||||
(__WASI_RIGHT_FD_ADVISE | __WASI_RIGHT_FD_DATASYNC | \
|
|
||||||
__WASI_RIGHT_FD_FILESTAT_GET | __WASI_RIGHT_FD_SYNC | \
|
|
||||||
__WASI_RIGHT_FD_READ | __WASI_RIGHT_FD_WRITE | \
|
|
||||||
__WASI_RIGHT_POLL_FD_READWRITE)
|
|
||||||
|
|
||||||
#define RIGHTS_STDERR RIGHTS_STDOUT
|
|
||||||
|
|
||||||
// Only allow directory operations on directories. Directories can only
|
// Only allow directory operations on directories. Directories can only
|
||||||
// yield file descriptors to other directories and files.
|
// yield file descriptors to other directories and files.
|
||||||
#define RIGHTS_DIRECTORY_BASE \
|
#define RIGHTS_DIRECTORY_BASE \
|
||||||
|
|
|
||||||
|
|
@ -54,18 +54,6 @@
|
||||||
#define CONFIG_HAS_O_SYNC
|
#define CONFIG_HAS_O_SYNC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef STDIN_FILENO
|
|
||||||
#define STDIN_FILENO 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDOUT_FILENO
|
|
||||||
#define STDOUT_FILENO 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDERR_FILENO
|
|
||||||
#define STDERR_FILENO 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Converts a POSIX timespec to a WASI timestamp.
|
// Converts a POSIX timespec to a WASI timestamp.
|
||||||
static __wasi_timestamp_t
|
static __wasi_timestamp_t
|
||||||
convert_timespec(const struct timespec *ts)
|
convert_timespec(const struct timespec *ts)
|
||||||
|
|
@ -870,39 +858,30 @@ os_isatty(os_file_handle handle)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdin_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDIN_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdout_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDOUT_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stderr_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDERR_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
||||||
{
|
{
|
||||||
|
#ifndef STDIN_FILENO
|
||||||
|
#define STDIN_FILENO 0
|
||||||
|
#endif
|
||||||
return raw_stdin >= 0 ? raw_stdin : STDIN_FILENO;
|
return raw_stdin >= 0 ? raw_stdin : STDIN_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stdout_handle(os_raw_file_handle raw_stdout)
|
os_convert_stdout_handle(os_raw_file_handle raw_stdout)
|
||||||
{
|
{
|
||||||
|
#ifndef STDOUT_FILENO
|
||||||
|
#define STDOUT_FILENO 1
|
||||||
|
#endif
|
||||||
return raw_stdout >= 0 ? raw_stdout : STDOUT_FILENO;
|
return raw_stdout >= 0 ? raw_stdout : STDOUT_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stderr_handle(os_raw_file_handle raw_stderr)
|
os_convert_stderr_handle(os_raw_file_handle raw_stderr)
|
||||||
{
|
{
|
||||||
|
#ifndef STDERR_FILENO
|
||||||
|
#define STDERR_FILENO 2
|
||||||
|
#endif
|
||||||
return raw_stderr >= 0 ? raw_stderr : STDERR_FILENO;
|
return raw_stderr >= 0 ? raw_stderr : STDERR_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,18 +54,6 @@
|
||||||
#define CONFIG_HAS_O_SYNC
|
#define CONFIG_HAS_O_SYNC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef STDIN_FILENO
|
|
||||||
#define STDIN_FILENO 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDOUT_FILENO
|
|
||||||
#define STDOUT_FILENO 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDERR_FILENO
|
|
||||||
#define STDERR_FILENO 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Converts a POSIX timespec to a WASI timestamp.
|
// Converts a POSIX timespec to a WASI timestamp.
|
||||||
static __wasi_timestamp_t
|
static __wasi_timestamp_t
|
||||||
convert_timespec(const struct timespec *ts)
|
convert_timespec(const struct timespec *ts)
|
||||||
|
|
@ -870,39 +858,30 @@ os_isatty(os_file_handle handle)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdin_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDIN_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdout_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDOUT_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stderr_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd == STDERR_FILENO;
|
|
||||||
}
|
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
||||||
{
|
{
|
||||||
|
#ifndef STDIN_FILENO
|
||||||
|
#define STDIN_FILENO 0
|
||||||
|
#endif
|
||||||
return raw_stdin >= 0 ? raw_stdin : STDIN_FILENO;
|
return raw_stdin >= 0 ? raw_stdin : STDIN_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stdout_handle(os_raw_file_handle raw_stdout)
|
os_convert_stdout_handle(os_raw_file_handle raw_stdout)
|
||||||
{
|
{
|
||||||
|
#ifndef STDOUT_FILENO
|
||||||
|
#define STDOUT_FILENO 1
|
||||||
|
#endif
|
||||||
return raw_stdout >= 0 ? raw_stdout : STDOUT_FILENO;
|
return raw_stdout >= 0 ? raw_stdout : STDOUT_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stderr_handle(os_raw_file_handle raw_stderr)
|
os_convert_stderr_handle(os_raw_file_handle raw_stderr)
|
||||||
{
|
{
|
||||||
|
#ifndef STDERR_FILENO
|
||||||
|
#define STDERR_FILENO 2
|
||||||
|
#endif
|
||||||
return raw_stderr >= 0 ? raw_stderr : STDERR_FILENO;
|
return raw_stderr >= 0 ? raw_stderr : STDERR_FILENO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1503,33 +1503,6 @@ os_convert_stdout_handle(os_raw_file_handle raw_stdout);
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stderr_handle(os_raw_file_handle raw_stderr);
|
os_convert_stderr_handle(os_raw_file_handle raw_stderr);
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fd a file handle
|
|
||||||
*
|
|
||||||
* @return true if it is stdin
|
|
||||||
*/
|
|
||||||
bool
|
|
||||||
os_is_stdin_handle(os_file_handle fd);
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fd a file handle
|
|
||||||
*
|
|
||||||
* @return true if it is stdout
|
|
||||||
*/
|
|
||||||
bool
|
|
||||||
os_is_stdout_handle(os_file_handle fd);
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param fd a file handle
|
|
||||||
*
|
|
||||||
* @return true if it is stderr
|
|
||||||
*/
|
|
||||||
bool
|
|
||||||
os_is_stderr_handle(os_file_handle fd);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Open a directory stream for the provided directory handle. The returned
|
* Open a directory stream for the provided directory handle. The returned
|
||||||
* directory stream will be positioned at the first entry in the directory.
|
* directory stream will be positioned at the first entry in the directory.
|
||||||
|
|
|
||||||
|
|
@ -1540,24 +1540,6 @@ create_stdio_handle(HANDLE raw_stdio_handle, DWORD stdio)
|
||||||
return stdio_handle;
|
return stdio_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdin_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd->raw.handle == GetStdHandle(STD_INPUT_HANDLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stdout_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd->raw.handle == GetStdHandle(STD_OUTPUT_HANDLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
os_is_stderr_handle(os_file_handle fd)
|
|
||||||
{
|
|
||||||
return fd->raw.handle == GetStdHandle(STD_ERROR_HANDLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
os_file_handle
|
os_file_handle
|
||||||
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
os_convert_stdin_handle(os_raw_file_handle raw_stdin)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user