From 288727f09a1b3458c268497d111349e608c3f9fa Mon Sep 17 00:00:00 2001 From: "bozo.kopic" Date: Tue, 2 Aug 2022 01:20:12 +0200 Subject: init --- src_c/arch/posix.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src_c/arch/posix.c (limited to 'src_c/arch/posix.c') diff --git a/src_c/arch/posix.c b/src_c/arch/posix.c new file mode 100644 index 0000000..19e33a1 --- /dev/null +++ b/src_c/arch/posix.c @@ -0,0 +1,54 @@ +#include "posix.h" +#include +#include + +#define MEM_SIZE 0x4000 + + +static lsp_int16_t posix_getchar(lsp_in_stream_t *s) { + int c = getchar(); + if (c == EOF) + return LSP_EOF; + return c; +} + + +static lsp_int16_t posix_putchar(lsp_out_stream_t *s, lsp_int16_t c) { + return putchar(c); +} + + +void lsp_arch_posix_init() {} + + +lsp_mem_t *lsp_arch_posix_create_mem() { + lsp_mem_t *m = malloc(sizeof(lsp_mem_t) + sizeof(lsp_cell_t) * MEM_SIZE); + if (lsp_mem_init(m, MEM_SIZE) != LSP_SUCCESS) { + free(m); + return NULL; + } + return m; +} + + +void lsp_arch_posix_free_mem(lsp_mem_t *m) { free(m); } + + +lsp_in_stream_t *lsp_arch_posix_create_in_stream() { + lsp_in_stream_t *s = malloc(sizeof(lsp_in_stream_t)); + lsp_in_stream_init(s, posix_getchar); + return s; +} + + +void lsp_arch_posix_free_in_stream(lsp_in_stream_t *s) { free(s); } + + +lsp_out_stream_t *lsp_arch_posix_create_out_stream() { + lsp_out_stream_t *s = malloc(sizeof(lsp_out_stream_t)); + lsp_out_stream_init(s, posix_putchar); + return s; +} + + +void lsp_arch_posix_free_out_stream(lsp_out_stream_t *s) { free(s); } -- cgit v1.2.3-70-g09d2