mclangc/include/io.mcl

62 lines
1.6 KiB
Plaintext
Raw Permalink Normal View History

2023-03-20 14:13:34 +00:00
// Write to a file descriptor using the SYS_write syscall
// args: [buff_size, buff_ptr, fd]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @arg fd: Int - file descriptor
2023-03-20 14:13:34 +00:00
// @ret Int
2023-04-23 14:51:05 +00:00
inline fn fwrite with int ptr int returns int then
2023-03-20 14:13:34 +00:00
SYS_write syscall3
done
2023-03-20 14:13:34 +00:00
// Write to a file descriptor using the SYS_write syscall
// args: [buff_size, buff_ptr, fd]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
// @arg fd: Int - file descriptor
// @ret Int
2023-04-23 14:51:05 +00:00
inline fn fread with int ptr int returns int then
SYS_read syscall3
done
2023-03-20 14:13:34 +00:00
2023-04-23 14:51:05 +00:00
// Write to a file descriptor using the SYS_write syscall
// args: [buff_ptr, flags, mode]
// @arg buff_ptr: Ptr - File to open
// @arg flags: Int - Flags
// @arg mode: Int - Mode
// @ret Int - Fd
inline fn fopen with int ptr int returns int then
SYS_open syscall3
done
2023-03-20 14:13:34 +00:00
// Print a string to STDOUT
// args: [str_size, str_ptr]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
2023-03-20 14:13:34 +00:00
// @ret NULL
2023-04-13 10:38:20 +00:00
inline fn puts with int ptr returns void then
2023-04-23 14:51:05 +00:00
STDOUT fwrite drop
done
2023-03-20 14:13:34 +00:00
// Print a string to STDERR
// args: [str_size, str_ptr]
// @arg buff_size: Int - number of bytes to write
// @arg buff_ptr: Ptr - pointer to the buffer to write
2023-03-20 14:13:34 +00:00
// @ret NULL
2023-04-13 10:38:20 +00:00
inline fn eputs with int ptr returns void then
2023-04-23 14:51:05 +00:00
STDOUT fwrite drop
done
2023-03-20 14:13:34 +00:00
2024-03-07 15:37:38 +00:00
// TODO: make putc, eputc, putd, and eputd after we make local mem
2023-03-20 14:13:34 +00:00
// Exit the program with exit_code
// args: [exit_code]
// @arg exit_code: Int
// @ret NULL/NEVER
2023-04-13 10:38:20 +00:00
inline fn exit with int returns void then
2023-03-20 14:13:34 +00:00
SYS_exit syscall1 drop
done
2023-03-20 14:13:34 +00:00