aboutsummaryrefslogtreecommitdiff
path: root/source/sys/posix
diff options
context:
space:
mode:
Diffstat (limited to 'source/sys/posix')
-rw-r--r--source/sys/posix/cctype.elna24
-rw-r--r--source/sys/posix/cstdio.elna59
-rw-r--r--source/sys/posix/cstdlib.elna24
-rw-r--r--source/sys/posix/cstring.elna30
4 files changed, 137 insertions, 0 deletions
diff --git a/source/sys/posix/cctype.elna b/source/sys/posix/cctype.elna
new file mode 100644
index 0000000..19c3491
--- /dev/null
+++ b/source/sys/posix/cctype.elna
@@ -0,0 +1,24 @@
+(* This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. *)
+module
+
+proc isdigit*(c: Int ) -> Int
+extern
+
+proc isalnum*(c: Int) -> Int
+extern
+
+proc isalpha*(c: Int) -> Int
+extern
+
+proc isspace*(c: Int) -> Int
+extern
+
+proc tolower*(c: Int) -> Int
+extern
+
+proc toupper*(c: Int) -> Int
+extern
+
+end.
diff --git a/source/sys/posix/cstdio.elna b/source/sys/posix/cstdio.elna
new file mode 100644
index 0000000..928c7e1
--- /dev/null
+++ b/source/sys/posix/cstdio.elna
@@ -0,0 +1,59 @@
+(* This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. *)
+module
+
+type
+ FILE* = extern
+
+var
+ stdin*: ^FILE := extern
+ stdout*: ^FILE := extern
+ stderr*: ^FILE := extern
+
+proc fopen*(pathname, mode: ^const Word8) -> ^FILE
+extern
+
+proc fclose*(stream: ^FILE) -> Int
+extern
+
+proc fseek*(stream: ^FILE; off: Int; whence: Int) -> Int
+extern
+
+proc rewind*(stream: ^FILE)
+extern
+
+proc ftell*(stream: ^FILE) -> Int
+extern
+
+proc fflush*(stream: ^FILE) -> Int
+extern
+
+proc fread*#[T](ptr: ^T; size: Word; nmemb: Word; stream: ^FILE) -> Word
+extern
+
+proc fwrite*#[T](ptr: ^const T; size: Word; nitems: Word; stream: ^FILE) -> Word
+extern
+
+proc fputc*(c: Int; stream: ^FILE) -> Word
+extern
+
+proc perror*(s: ^const Word8)
+extern
+
+proc puts*(s: ^const Word8) -> Int
+extern
+
+proc putchar*(c: Int) -> Int
+extern
+
+proc sprintf*(str: ^Word8; format: ^const Word8) #{varargs} -> Int
+extern
+
+proc fprintf*(stream: ^FILE; format: ^const Word8) #{varargs} -> Int
+extern
+
+proc fdopen*(fildes: Int; mode: ^const Word8) -> ^FILE
+extern
+
+end.
diff --git a/source/sys/posix/cstdlib.elna b/source/sys/posix/cstdlib.elna
new file mode 100644
index 0000000..10a4d80
--- /dev/null
+++ b/source/sys/posix/cstdlib.elna
@@ -0,0 +1,24 @@
+(* This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. *)
+module
+
+proc malloc*#[T](size: Word) -> ^T
+extern
+
+proc free*#[T](ptr: ^T)
+extern
+
+proc calloc*#[T](nmemb: Word; size: Word) -> ^T
+extern
+
+proc realloc*#[T](ptr: ^T; size: Word) -> ^T
+extern
+
+proc atoi*(str: ^Word8) -> Int
+extern
+
+proc exit*(code: Int) #{noreturn}
+extern
+
+end.
diff --git a/source/sys/posix/cstring.elna b/source/sys/posix/cstring.elna
new file mode 100644
index 0000000..3973573
--- /dev/null
+++ b/source/sys/posix/cstring.elna
@@ -0,0 +1,30 @@
+(* This Source Code Form is subject to the terms of the Mozilla Public License,
+ v. 2.0. If a copy of the MPL was not distributed with this file, You can
+ obtain one at https://mozilla.org/MPL/2.0/. *)
+module
+
+proc memset*#[T](ptr: ^T; c: Int; n: Word) -> ^Word8
+extern
+
+proc memcpy*#[T](dst: ^T; src: ^const T; n: Word)
+extern
+
+proc memcmp*#[T](s1, s2: ^const T; n: Word) -> Int
+extern
+
+proc strcmp*(s1: ^const Word8; s2: ^const Word8) -> Int
+extern
+
+proc strncmp*(s1: ^const Word8; s2: ^const Word8; n: Word) -> Int
+extern
+
+proc strncpy*(dst: ^Word8; src: ^const Word8; dsize: Word) -> ^Word8
+extern
+
+proc strcpy*(dst: ^Word8; src: ^const Word8) -> ^Word8
+extern
+
+proc strlen*(ptr: ^const Word8) -> Word
+extern
+
+end.