diff options
Diffstat (limited to 'source/sys/posix')
| -rw-r--r-- | source/sys/posix/cctype.elna | 24 | ||||
| -rw-r--r-- | source/sys/posix/cstdio.elna | 59 | ||||
| -rw-r--r-- | source/sys/posix/cstdlib.elna | 24 | ||||
| -rw-r--r-- | source/sys/posix/cstring.elna | 30 |
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. |
