mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-07 12:18:11 +00:00
109 lines
5.1 KiB
C++
109 lines
5.1 KiB
C++
#ifndef SRC_NODE_WASI_H_
|
|
#define SRC_NODE_WASI_H_
|
|
|
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#include "base_object.h"
|
|
#include "node_mem.h"
|
|
#include "uvwasi.h"
|
|
|
|
namespace node {
|
|
namespace wasi {
|
|
|
|
|
|
class WASI : public BaseObject,
|
|
public mem::NgLibMemoryManager<WASI, uvwasi_mem_t> {
|
|
public:
|
|
WASI(Environment* env,
|
|
v8::Local<v8::Object> object,
|
|
uvwasi_options_t* options);
|
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
|
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
SET_MEMORY_INFO_NAME(WASI)
|
|
SET_SELF_SIZE(WASI)
|
|
|
|
static void ArgsGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void ArgsSizesGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void ClockResGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void ClockTimeGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void EnvironGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void EnvironSizesGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdAdvise(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdAllocate(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdClose(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdDatasync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFdstatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFdstatSetFlags(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFdstatSetRights(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFilestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFilestatSetSize(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdFilestatSetTimes(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdPread(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdPrestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdPrestatDirName(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdPwrite(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdRead(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdReaddir(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdRenumber(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdSeek(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdSync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdTell(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void FdWrite(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathCreateDirectory(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathFilestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathFilestatSetTimes(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathLink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathOpen(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathReadlink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathRemoveDirectory(
|
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathRename(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathSymlink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PathUnlinkFile(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void PollOneoff(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void ProcExit(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void ProcRaise(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void RandomGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void SchedYield(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void SockRecv(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void SockSend(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
static void SockShutdown(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
|
static void _SetMemory(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
|
|
// Implementation for mem::NgLibMemoryManager
|
|
void CheckAllocatedSize(size_t previous_size) const;
|
|
void IncreaseAllocatedSize(size_t size);
|
|
void DecreaseAllocatedSize(size_t size);
|
|
|
|
private:
|
|
~WASI() override;
|
|
inline void readUInt8(char* memory, uint8_t* value, uint32_t offset);
|
|
inline void readUInt16(char* memory, uint16_t* value, uint32_t offset);
|
|
inline void readUInt32(char* memory, uint32_t* value, uint32_t offset);
|
|
inline void readUInt64(char* memory, uint64_t* value, uint32_t offset);
|
|
inline void writeUInt8(char* memory, uint8_t value, uint32_t offset);
|
|
inline void writeUInt16(char* memory, uint16_t value, uint32_t offset);
|
|
inline void writeUInt32(char* memory, uint32_t value, uint32_t offset);
|
|
inline void writeUInt64(char* memory, uint64_t value, uint32_t offset);
|
|
uvwasi_errno_t backingStore(char** store, size_t* byte_length);
|
|
uvwasi_t uvw_;
|
|
v8::Global<v8::Object> memory_;
|
|
uvwasi_mem_t alloc_info_;
|
|
size_t current_uvwasi_memory_ = 0;
|
|
};
|
|
|
|
|
|
} // namespace wasi
|
|
} // namespace node
|
|
|
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#endif // SRC_NODE_WASI_H_
|