Commit Graph

62 Commits

Author SHA1 Message Date
Giacomo Tesio 2f850291d5 rename libc to libjehanne; improve libposix
This is to avoid conflicts between standards' assumptions and Jehanne's choices
2020-09-17 23:48:27 +02:00
Giacomo Tesio 3c7dc6eb8b posix.h: correctly wrap apw/errno.h inclusion (should we invert this dependency?) 2020-09-17 23:48:03 +02:00
Giacomo Tesio 4067cb45cb libc: refactoring 2020-09-17 23:47:39 +02:00
Giacomo Tesio f104c46858 purge syscall macros 2020-09-17 23:45:23 +02:00
Giacomo Tesio 361a06f284 libc: move read and write to jehanne_ namespace (where they actually belong) 2020-09-17 23:43:56 +02:00
Giacomo Tesio e9e5e59740 libposix: rename function argument 2020-09-17 23:43:54 +02:00
Giacomo Tesio a15c1111b8 libposix: POSIX_rmdir 2019-11-20 00:19:59 +01:00
Giacomo Tesio 49da4de25c posix: POSIX_sysconf 2019-11-18 00:53:09 +01:00
Giacomo Tesio ea21d3cd2d libposix: add support for O_NONBLOCK
We keep a list of non blocking fds and use awake to
make them not block on read, write, pread and pwrite.
2018-01-15 22:37:27 +01:00
Giacomo Tesio c7d0f621c9 Clarify Forsyth's and 9front's copyrights
I'm very grateful to Charles Forsyth for creating most of Jehanne's kernel
and to 9front's guys for all the code and ideas they freely share.

Here I make their copyrights explicit as they had been erroneusly omitted
or messed up before. Sorry.
2018-01-05 02:30:45 +01:00
Giacomo Tesio 001069aa7b libposix: deep refactor; add sys/posixly command
With these changes, libposix (and newlib) can run MirBSD Korn Shell.
2017-12-18 23:02:36 +01:00
Giacomo Tesio 8c5dff6c0b libc: add pexec() to execute a command in $PATH 2017-12-15 02:58:09 +01:00
Giacomo Tesio 0c63c7dc91 libc: removed unused tos.h 2017-12-15 02:58:09 +01:00
Giacomo Tesio 9202b04504 rc: use some uppercase variables (PATH, USER...) 2017-10-22 13:22:37 +02:00
Giacomo Tesio d6d65887b2 libc: rename $apid to $APID 2017-10-20 02:05:13 +02:00
Giacomo Tesio fab9c1d80f libc: introduce <envvars.h>
The new header envvars.h contains the names of commonly used
environment variables, such as $user, $ifs, $path and so on.

These defines are useful for Jehanne core applications that
use them to comunicate some values.

They are not strictly required, but having such defines we
can easily change the naming convention (from lowercase to uppercase).
2017-10-20 01:22:48 +02:00
Giacomo Tesio d3c2605d57 libc: set ERRMAX to 128 (to match genbuf in the kernel's Proc structure) 2017-10-18 01:40:40 +02:00
Giacomo Tesio e206015f7f libposix: add getpgid 2017-09-07 23:27:33 +02:00
Giacomo Tesio e3ff5b1004 libposix: add getpgrp; draft setsid, getsid and setpgid 2017-09-07 00:10:34 +02:00
Giacomo Tesio e168dcb7fa libposix: add umask 2017-09-06 22:59:05 +02:00
Giacomo Tesio 14edc758f4 libposix: add get/set functions for uid, gid, euid, egid, pgid, sid, reuid... 2017-09-05 00:15:37 +02:00
Giacomo Tesio c5aaa72bbb libposix: add dup, dup2, getrusage, fstat and lstat 2017-09-03 17:51:44 +02:00
Giacomo Tesio 0bc2e60c72 libposix: stub chown family (always returning 0)
I do not expect chown, fchownat and lchown to be much used in
UNIX softwares that we care to port.

We stub the functions in libposix so that we can refer them from
standard C libaries (such as newlib).

We will implement them (parsing /cfg/users to determinate uid and gid)
when it will be actually needed from a software ported to Jehanne.
2017-08-31 00:50:31 +02:00
Giacomo Tesio b78613615d libposix: add access 2017-08-28 23:04:12 +02:00
Giacomo Tesio bfb95a3d3e libposix: drafted chdir, fchdir and mkdir 2017-08-23 04:05:31 +02:00
Giacomo Tesio 4de95c9bc0 libposix: make AT_FDCWD value configurable 2017-08-23 02:57:41 +02:00
Giacomo Tesio 61c4849bd7 libposix: add POSIX_chmod and POSIX_fchmodat to posix.h 2017-08-23 02:05:34 +02:00
Giacomo Tesio 004dd6bff1 libposix: specify PosixOpenTranslator's behaviour on various flags 2017-08-22 02:12:26 +02:00
Giacomo Tesio 9947978c05 libposix: implemented libposix_getdents 2017-08-22 01:42:33 +02:00
Giacomo Tesio f7c3a41b11 libposix: drafted getdents 2017-08-21 01:05:40 +02:00
Giacomo Tesio 3916b222b5 libposix: fix typo 2017-08-21 00:52:57 +02:00
Giacomo Tesio ea6b68588c libposix: implemented getcwd, getlogin, getlogin_r, getpass, pread and pwrite 2017-08-21 00:20:12 +02:00
Giacomo Tesio 6ce619a2e0 libc: sleep's argument must be unsigned 2017-08-16 00:58:21 +02:00
Giacomo Tesio 93dde48355 kernel: deep refactoring and cleanup
This large commit address several issues
- removed 386 directory: Jehanne is 64bit only
- simplified kernel options management
- rewritten boot process
- ported memory related stuff from 9front's 9/pc64
- removed devacpi
- removed old code
- deep refactor of awake syscall
- removed MCACHE support for mount
- fix libc's setjmp/longjmp
2017-08-11 03:18:32 +02:00
Giacomo Tesio c13d386ab5 libaml: import 9front's improvements 2017-07-21 01:34:34 +02:00
Giacomo Tesio d1e285f721 libposix: honor SIG_IGN by doing nothing (DRAFT) 2017-05-29 02:04:48 +02:00
Giacomo Tesio 40ccb89835 libc: simplify Waitmsg 2017-05-26 01:55:09 +02:00
Giacomo Tesio e0610f6b71 libposix: drafted SIGCHLD management 2017-05-23 00:27:50 +02:00
Giacomo Tesio 79f8204766 kern: move tsemaquire to userspace (given a generalized awake) 2017-05-12 11:13:19 +02:00
Giacomo Tesio da0381a213 libposix: big refactor of signal handling 2017-05-05 19:01:18 +02:00
Giacomo Tesio bd5063666f libposix: introduce POSIX_signal_execute and PosixSignalDisposition enum 2017-05-03 01:14:53 +02:00
Giacomo Tesio cf974abe0e libposix: (almost working) waitpid 2017-05-02 00:57:18 +02:00
Giacomo Tesio 8c33c921b4 libposix: draft waitpid (still broken) 2017-05-01 23:57:05 +02:00
Giacomo Tesio 14934ee51f libposix: sleep and pipe 2017-04-30 16:49:50 +02:00
Giacomo Tesio c2204d83a5 libposix: getppid 2017-04-22 00:40:39 +02:00
Giacomo Tesio a1b4085b7b libc: keep __libc_init weak definition private 2017-04-21 23:58:06 +02:00
Giacomo Tesio 4142b70d32 libposix: allow custom translations of exit status 2017-04-21 23:56:43 +02:00
Giacomo Tesio 188a07782d libposix: initial draft 2017-04-19 23:48:54 +02:00
Giacomo Tesio e70feee4a3 libc: introduce "jehanne_" namespace
With this commit all functions declared in libc.h have been renamed
with the "jehanne_" prefix. This is done for several reason:

- it removes conflicts during symbol resolution when linking
  standard C libraries like newlib or musl
- it allows programs depending on a standard C library to directly
  link to a library depending on our non standard libc (eg libsec).

To ease transiction two files are provided:

- sys/include/lib9.h that can be included instead of <libc.h> to use
  the old names (via a simple set of macros)
- sys/src/lib/c/lib9.c that can be compiled with a program where the
  macro provided by lib9.h are too dumb (see for example rc or grep).

In the kernel port/lib.h has been modified accordingly and some of
the functions it directly provides has been renamed too (eg malloc
in qmalloc.c and print in devcons.c).
2017-04-19 23:48:21 +02:00
Giacomo Tesio 64466d840e libc.h: simplify ARGBEGIN macro
Should fix CID 155592 since the idiom:

	argv0 = nil;
	ARGBEGIN{
		...
	}ARGEND

would not produce logically dead code.
2017-02-08 00:19:22 +01:00