mirror of
https://github.com/carp-lang/Carp.git
synced 2024-09-11 05:25:28 +03:00
Co-authored-by: Tim Dévé <timdeve@users.noreply.github.com> Co-authored-by: Tim Dévé <timdeve@users.noreply.github.com>
53 lines
2.2 KiB
Plaintext
53 lines
2.2 KiB
Plaintext
(system-include "carp_system.h")
|
|
(system-include "errno.h")
|
|
|
|
(defmodule System
|
|
(doc carp-init-globals "Initializes all global variables (in correct order, based on interdependencies). Called automatically by `main` if the project is compiled as an executable. Client code needs to call this function manually when using a library written in Carp.")
|
|
(register carp-init-globals (Fn [Int (Ptr (Ptr CChar))] ()) "carp_init_globals")
|
|
(doc time "Gets the current system time as an integer.")
|
|
(register time (Fn [] Int))
|
|
(doc nanotime "Gets the current system time in nanoseconds as a long.")
|
|
(register nanotime (Fn [] Long))
|
|
(doc sleep-seconds "Sleeps for a specified number of seconds.")
|
|
(register sleep-seconds (Fn [Int] ()))
|
|
(doc sleep-seconds "Sleeps for a specified number of microseconds.")
|
|
(register sleep-micros (Fn [Int] ()))
|
|
(doc system "Performs a system command.")
|
|
(register system (Fn [&String] Int))
|
|
(doc args "Represents the command line arguments.")
|
|
(register args (StaticArray String))
|
|
(register fork (Fn [] Int) "fork")
|
|
(register wait (Fn [(Ptr Int)] Int) "wait")
|
|
(register get-exit-status (Fn [Int] Int) "WEXITSTATUS")
|
|
(register signal (Fn [Int (Fn [Int] ())] ()) "signal")
|
|
(register signal-abort Int "SIGABRT")
|
|
(register signal-fpe Int "SIGFPE")
|
|
(register signal-ill Int "SIGILL")
|
|
(register signal-int Int "SIGINT")
|
|
(register signal-segv Int "SIGSEGV")
|
|
(register signal-term Int "SIGTERM")
|
|
(register abort (Fn [] ()) "abort")
|
|
|
|
(register errno Int "errno")
|
|
(register EACCES Int "EACCES")
|
|
(register EEXIST Int "EEXIST")
|
|
(register EINVAL Int "EINVAL")
|
|
(register EIO Int "EIO")
|
|
(register EISDIR Int "EISDIR")
|
|
(register ELOOP Int "ELOOP")
|
|
(register EMFILE Int "EMFILE")
|
|
(register ENAMETOOLONG Int "ENAMETOOLONG")
|
|
(register ENOENT Int "ENOENT")
|
|
(register ENOMEM Int "EINVAL")
|
|
(register ENOSPC Int "ENOSPC")
|
|
(register ENOSR Int "ENOSR")
|
|
(register ENOTDIR Int "ENOTDIR")
|
|
(register ENXIO Int "ENXIO")
|
|
(register EOVERFLOW Int "EOVERFLOW")
|
|
(register EROFS Int "EROFS")
|
|
(register EINTR Int "EINTR")
|
|
|
|
(doc exit "exits the program.")
|
|
(deftemplate exit (Fn [Int] a) "$a $NAME(int code)" "$DECL { exit(code); }")
|
|
)
|