1#define PHASOR_FFI_BUILD_DLL
22 int fd = open(path, flags, 0666);
40 char *buf = (
char *)malloc(count + 1);
43 ssize_t r = read(fd, buf, count);
59 ssize_t r = write(fd, s, strlen(s));
109 char **args = (
char **)malloc((argcnt + 1) *
sizeof(
char *));
110 char **envs = (
char **)malloc((envcnt + 1) *
sizeof(
char *));
111 for (
size_t i = 0; i < argcnt; i++)
114 for (
size_t i = 0; i < envcnt; i++)
118 int r = execve(path, args, envs);
131 pid_t r = waitpid(pid, &status, options);
155 unsigned int r = sleep(sec);
165 int r = nanosleep(&req, &rem);
174 int r = clock_gettime((clockid_t)
phasor_to_int(argv[0]), &ts);
static bool phasor_is_string(PhasorValue val)
static const char * phasor_to_string(PhasorValue val)
static int64_t phasor_to_int(PhasorValue val)
static PhasorValue phasor_make_array(const PhasorValue *elements, size_t count)
static PhasorValue phasor_make_string(const char *s)
static bool phasor_is_int(PhasorValue val)
static bool phasor_is_array(PhasorValue val)
static PhasorValue phasor_make_int(int64_t i)
struct PhasorVM PhasorVM
Phasor Virtual Machine pointer.
#define PHASOR_FFI_EXPORT
static PhasorValue phasor_rmdir(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_read(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_close(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_nanosleep(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_execve(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_unlink(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_write(PhasorVM *vm, int argc, const PhasorValue *argv)
PHASOR_FFI_EXPORT void phasor_plugin_entry(const PhasorAPI *api, PhasorVM *vm)
The one and only entry point for a Phasor plugin.
static PhasorValue phasor_kill(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_mkdir(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_fork(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_waitpid(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_clock_gettime(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_sleep(PhasorVM *vm, int argc, const PhasorValue *argv)
static PhasorValue phasor_open(PhasorVM *vm, int argc, const PhasorValue *argv)
The collection of API functions that the Phasor host provides to the plugin.
PhasorRegisterFunction register_function
Registers a native C function with the given name.
Represents a value in the Phasor VM.
struct PhasorValue::@257106260015165034006071221344325333366100147341::@324103060207145140324203224012174236216253240107 a
const PhasorValue * elements
union PhasorValue::@257106260015165034006071221344325333366100147341 as