Commit Graph

132 Commits

Author SHA1 Message Date
Lephenixnoir d50e44c563
C++ __restrict__, update STATUS, minor formatting 2022-03-31 10:12:01 +01:00
Lephenixnoir 94faa6cbea Merge pull request 'Add getline(3) & getdelim(3)' (#2) from Alice/fxlibc:dev into dev
Reviewed-on: https://gitea.planet-casio.com/Vhex-Kernel-Core/fxlibc/pulls/2
2022-03-31 11:11:26 +02:00
Alice Rozengarden 3f5989ceab Add getline(3) & getdelim(3) 2022-03-30 23:49:44 +02:00
Lephenixnoir 3c29639988
string: fix a bug in SuperH memset 2022-03-26 15:19:15 +00:00
Lephenixnoir 4d464bde01
bump version to 1.4.0 2022-03-19 19:29:17 +00:00
Lephenixnoir 809238e5b8
errno: add EINTR and EAGAIN 2022-02-24 12:48:51 +01:00
Yann MAGNIN fa4adc5620 add PIC option + vxsdk support 2022-01-26 16:34:16 +01:00
Lephenixnoir 71866ed769
stdio: stdin/stdout/stderr, perror, final adjustments
Support for <stdio.h> will stop here for now.
2022-01-14 18:38:48 +01:00
Lephenixnoir ed873a652e
stdio: fgetc(), fgets(), tests for fputc() and fputs() (DONE) 2022-01-14 17:16:04 +01:00
Lephenixnoir 294fda9731
stdio: share the FILE implementation between all versions 2022-01-13 21:28:19 +01:00
Lephenixnoir f1512125d0
stdio: initial versions of fputc() and fputs() (TEST) 2022-01-13 21:21:23 +01:00
Lephenixnoir 6ec0c24e2d
stdio: ungetc(), update (+) and append (a) modes (DONE) 2022-01-12 10:20:30 +01:00
Lephenixnoir 06b66252c9
stdio: line buffering, test fgetpos and fsetpos (DONE) 2022-01-10 21:32:24 +01:00
Lephenixnoir 0c2f81e5bb
string: add and test a naive memrchr (DONE) 2022-01-10 21:21:03 +01:00
Lephenixnoir 909c7df815
stdio: fixes for initial fread() et fwrite() (TEST) 2022-01-10 17:10:49 +01:00
Lephenixnoir 4461bdb96a
stdio: basic fread/fwrite (WIP) 2022-01-05 21:26:06 +01:00
Lephenixnoir b6dbdf321d
stdio: error handling and positioning functions (WIP) 2022-01-02 22:09:06 +01:00
Lephenixnoir a12b84f1ef
stdio: opening primitives for FILE (WIP) 2022-01-02 19:22:43 +01:00
Lephenixnoir 51528170bb
stdio: FILE barebones with buffering model (WIP) 2022-01-02 19:22:42 +01:00
Lephenixnoir b53078776d
stdio: enable dprintf() and vdprintf() 2022-01-02 19:22:42 +01:00
Lephenixnoir 3046304497
stdlib: set errno=ENOMEM after failed malloc() 2022-01-02 19:22:42 +01:00
Lephenixnoir f7b85f18bd
time: do not depend on gint headers
They're usually not installed yet
2021-12-31 19:48:43 +01:00
Lephenixnoir bd0dd3a8d2
bump version to 1.3.0 2021-12-31 10:42:44 +01:00
Lephenixnoir dbfefe5172
errno: add ENOTEMPTY for rmdir() 2021-12-30 18:18:54 +01:00
Lephenixnoir 937b7bfb63
stat: definitions required to support stat(2) 2021-12-23 23:50:48 +01:00
Lephenixnoir e479393a9c
unistd, dirent: definitions for directory functions 2021-12-21 18:55:23 +01:00
Lephenixnoir c2feb94710
fcntl, unistd: declarations for the Unix file API 2021-12-13 18:37:04 +01:00
Lephenixnoir 92ccd8b1db
time: add support for C99 <time.h> (DONE) 2021-12-04 22:02:23 +01:00
Lephenixnoir e71f9867e2
support for shared libgcc in vhex 2021-11-07 18:05:33 +01:00
Lephenixnoir 164b33b26d
cmake: initial support for shared vhex library
Using the previously-tested trick with `ld -shared`.
2021-10-10 19:34:46 +02:00
Lephenixnoir df4c13b007
stdlib: fix bad memset in calloc() 2021-09-25 15:16:24 +02:00
Lephenixnoir a0ceeefaf4
string: fix strtok detecting NUL only after separators 2021-08-17 17:30:21 +02:00
Lephenixnoir ea35c18c41
stdlib: add qsort (TEST) 2021-06-28 23:54:43 +02:00
Lephenixnoir a6dbcfb227
add C++ header guards 2021-06-28 15:49:05 +02:00
Lephenixnoir f5571e2b3d
time: add general definitions 2021-06-13 18:26:04 +02:00
Lephenixnoir 6e42995388
stdio: add general file management definitions 2021-06-13 18:18:32 +02:00
Lephenixnoir 518a866750
use __restrict__ in headers for g++ compatibility 2021-06-13 18:17:40 +02:00
Lephenixnoir 6be2a3d52e
bump version to 1.2.0 2021-06-08 10:57:34 +02:00
Lephenixnoir dcaf203f46
stdio: improve printf extension API and type size support 2021-06-08 10:32:08 +02:00
Lephenixnoir ed8134970b
add nonstandard GNU endian.h 2021-06-08 10:05:00 +02:00
Lephenixnoir 009a2eef6e
stdlib: add TinyMT-based rand, and malloc/etc for gint 2021-06-07 22:00:41 +02:00
Lephenixnoir 625a6af459
stdio: add asprintf and vasprintf 2021-06-07 19:09:55 +02:00
Lephenixnoir f52e0923bc
stdio: move the printf implementation from gint 2021-06-07 18:57:11 +02:00
Lephenixnoir 66463bfe17
assert: fix silly mistake 2021-05-30 23:16:09 +02:00
Lephenixnoir d261db447b
add some function attributes 2021-05-30 15:09:33 +02:00
Lephenixnoir cd7fe7a329
signal: simple implementation (DONE)
This version of signal (which does not rely on a notion of userland
processes and is thus excluded from Vhex) follows C99 semantics but does
not generate any signals by default.

Basically, the signal function sets up function pointers and the signal
function calls them. Termination signals call exit() while other signals
call _Exit(), which is a quicker program termination similar to abort().

C99 allows programs to long jump out of signal handlers (!) which is
unbelievably scary because it would bypass stack switching code in Vhex
as well as normal interrupt handler termination in gint.
2021-05-30 15:09:33 +02:00
Lephenixnoir 04e910441a
cmake: fix install dirs reversing at second build 2021-05-30 00:03:21 +02:00
Lephenixnoir 4b90740d3b
stdlib: add exit() based on target-provided _Exit()
This is implemented for gint only currently; on Vhex, _Exit() is likely
just going to be a syscall. For CASIOWIN, this is slightly more
difficult, as there is no native exit syscall.
2021-05-29 16:45:35 +02:00
Lephenixnoir 73d6b2eb7c
setjmp: do not disable interrupts (#1) (DONE)
SR.BL=1 could cause problems if setjmp or longjmp is loader over a page
boundary and the second page is not loaded when interrupts are masked.

SR.IMASK=15 is another option, but it seems unnecessary per #1.

Blocking interrupts in longjmp did not make too much sense because the
blocked SR was immediately replaced by the restored one.
2021-05-29 11:18:02 +02:00
Lephenixnoir 13c3390b22
setjmp: expose setjmp and longjmp to sh-generic
... instead of vhex-generic, where it doesn't really belong because Vhex
might run on other architectures.
2021-05-29 09:56:47 +02:00