1#define PHASOR_FFI_BUILD_DLL
20 int fd = open(path, flags, 0666);
34 char* buf = (
char*)malloc(count + 1);
36 ssize_t r = read(fd, buf, count);
37 if (r >= 0) buf[r] =
'\0';
48 ssize_t r = write(fd, s, strlen(s));
89 char** args = (
char**)malloc((argcnt + 1) *
sizeof(
char*));
90 char** envs = (
char**)malloc((envcnt + 1) *
sizeof(
char*));
91 for (
size_t i = 0; i < argcnt; i++) args[i] = (
char*)
phasor_to_string(argarr[i]);
93 for (
size_t i = 0; i < envcnt; i++) envs[i] = (
char*)
phasor_to_string(envarr[i]);
96 int r = execve(path, args, envs);
107 pid_t r = waitpid(pid, &status, options);
127 unsigned int r = sleep(sec);
135 int r = nanosleep(&req, &rem);
142 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)
#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)
PhasorRegisterFunction register_function
struct PhasorValue::@257106260015165034006071221344325333366100147341::@324103060207145140324203224012174236216253240107 a
const PhasorValue * elements
union PhasorValue::@257106260015165034006071221344325333366100147341 as