62 Commits

Author SHA1 Message Date
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
3c7dc6eb8b posix.h: correctly wrap apw/errno.h inclusion (should we invert this dependency?) 2020-09-17 23:48:03 +02:00
4067cb45cb libc: refactoring 2020-09-17 23:47:39 +02:00
f104c46858 purge syscall macros 2020-09-17 23:45:23 +02:00
361a06f284 libc: move read and write to jehanne_ namespace (where they actually belong) 2020-09-17 23:43:56 +02:00
e9e5e59740 libposix: rename function argument 2020-09-17 23:43:54 +02:00
a15c1111b8 libposix: POSIX_rmdir 2019-11-20 00:19:59 +01:00
49da4de25c posix: POSIX_sysconf 2019-11-18 00:53:09 +01:00
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
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
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
8c5dff6c0b libc: add pexec() to execute a command in $PATH 2017-12-15 02:58:09 +01:00
0c63c7dc91 libc: removed unused tos.h 2017-12-15 02:58:09 +01:00
9202b04504 rc: use some uppercase variables (PATH, USER...) 2017-10-22 13:22:37 +02:00
d6d65887b2 libc: rename $apid to $APID 2017-10-20 02:05:13 +02:00
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
d3c2605d57 libc: set ERRMAX to 128 (to match genbuf in the kernel's Proc structure) 2017-10-18 01:40:40 +02:00
e206015f7f libposix: add getpgid 2017-09-07 23:27:33 +02:00
e3ff5b1004 libposix: add getpgrp; draft setsid, getsid and setpgid 2017-09-07 00:10:34 +02:00
e168dcb7fa libposix: add umask 2017-09-06 22:59:05 +02:00
14edc758f4 libposix: add get/set functions for uid, gid, euid, egid, pgid, sid, reuid... 2017-09-05 00:15:37 +02:00
c5aaa72bbb libposix: add dup, dup2, getrusage, fstat and lstat 2017-09-03 17:51:44 +02:00
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
b78613615d libposix: add access 2017-08-28 23:04:12 +02:00
bfb95a3d3e libposix: drafted chdir, fchdir and mkdir 2017-08-23 04:05:31 +02:00
4de95c9bc0 libposix: make AT_FDCWD value configurable 2017-08-23 02:57:41 +02:00
61c4849bd7 libposix: add POSIX_chmod and POSIX_fchmodat to posix.h 2017-08-23 02:05:34 +02:00
004dd6bff1 libposix: specify PosixOpenTranslator's behaviour on various flags 2017-08-22 02:12:26 +02:00
9947978c05 libposix: implemented libposix_getdents 2017-08-22 01:42:33 +02:00
f7c3a41b11 libposix: drafted getdents 2017-08-21 01:05:40 +02:00
3916b222b5 libposix: fix typo 2017-08-21 00:52:57 +02:00
ea6b68588c libposix: implemented getcwd, getlogin, getlogin_r, getpass, pread and pwrite 2017-08-21 00:20:12 +02:00
6ce619a2e0 libc: sleep's argument must be unsigned 2017-08-16 00:58:21 +02:00
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
c13d386ab5 libaml: import 9front's improvements 2017-07-21 01:34:34 +02:00
d1e285f721 libposix: honor SIG_IGN by doing nothing (DRAFT) 2017-05-29 02:04:48 +02:00
40ccb89835 libc: simplify Waitmsg 2017-05-26 01:55:09 +02:00
e0610f6b71 libposix: drafted SIGCHLD management 2017-05-23 00:27:50 +02:00
79f8204766 kern: move tsemaquire to userspace (given a generalized awake) 2017-05-12 11:13:19 +02:00
da0381a213 libposix: big refactor of signal handling 2017-05-05 19:01:18 +02:00
bd5063666f libposix: introduce POSIX_signal_execute and PosixSignalDisposition enum 2017-05-03 01:14:53 +02:00
cf974abe0e libposix: (almost working) waitpid 2017-05-02 00:57:18 +02:00
8c33c921b4 libposix: draft waitpid (still broken) 2017-05-01 23:57:05 +02:00
14934ee51f libposix: sleep and pipe 2017-04-30 16:49:50 +02:00
c2204d83a5 libposix: getppid 2017-04-22 00:40:39 +02:00
a1b4085b7b libc: keep __libc_init weak definition private 2017-04-21 23:58:06 +02:00
4142b70d32 libposix: allow custom translations of exit status 2017-04-21 23:56:43 +02:00
188a07782d libposix: initial draft 2017-04-19 23:48:54 +02:00
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
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