Giacomo Tesio
3e533d234a
cmds: port vt from 9front
2017-08-30 23:07:07 +02:00
Giacomo Tesio
e888e52502
qa: newlib: fix 102-files so that it works with disk based roots (runDisk.sh)
2017-08-30 00:15:50 +02:00
Giacomo Tesio
713eb8843f
libc: simplify access; libposix: let access lie
...
There are a few issues with Plan 9's `access`:
- it has side effects: to test the actual access (that the file
servers can allow or deny according to complex custom rules)
it opens and then closes the file, allocating (and disposing) the fd
- it does not work on directories, since
- they cannot be opened for writing, despite the fact that to
create a file in a directory you must be granted write access on
that directory
- they cannot be opened for execution, despite the fact that to
access a file in a directory you must be granted execution access
on that directory
Despite the fact that `access` (even on UNIX) is a violation of the
"tell, don't ask" principle (the access could be forbidden just after
its successful return, making subsequent `open` fail anyway), this
fact smells of a little design error in the file interface.
So, right now we choose to let the libposix's `access` lie on directories:
it will always return 0 on AWRITE and AEXEC for them, accepting that
a successive create/mkdir may fail.
However, a cleaner file API and protocol should allow a simpler `access`
to be implemented for directories too.
2017-08-29 00:17:51 +02:00
Giacomo Tesio
1aaf8d3703
newlib: add access(2)
2017-08-28 23:04:32 +02:00
Giacomo Tesio
56287a4337
libc: better access on directories
2017-08-28 23:04:32 +02:00
Giacomo Tesio
fe173086f7
qa: improved newlib/103-files.c (testing access, mkdir, chdir and getcwd)
2017-08-28 23:04:31 +02:00
Giacomo Tesio
9bdbd9b09d
qa: improve newlib/040-gettimeofday.c
2017-08-28 23:04:31 +02:00
Giacomo Tesio
59e881c04d
libc: improve access(AWRITE) and access(AEXEC) on directories
2017-08-28 23:04:30 +02:00
Giacomo Tesio
b78613615d
libposix: add access
2017-08-28 23:04:12 +02:00
Giacomo Tesio
386cb370a6
libposix: POSIX_gettimeofday fails without proper initialization
2017-08-25 23:43:14 +02:00
Giacomo Tesio
0185e3b4a1
newlib: initialize timeval and timezone reader for libposix
2017-08-25 23:41:40 +02:00
Giacomo Tesio
44fa703f84
qa: fix test newlib/040-gettimeofday.c
2017-08-25 23:33:10 +02:00
Giacomo Tesio
bd149a18f1
libposix: implement gettimeofday
2017-08-25 00:53:10 +02:00
Giacomo Tesio
2409419ba2
qa: fix 199-files-CLEAR.runner
2017-08-24 00:14:02 +02:00
Giacomo Tesio
476cf67dc3
newlib: fix open_translator
2017-08-24 00:13:35 +02:00
Giacomo Tesio
1e9c00b5d0
newlib: define mkdir, chdir and fchdir
2017-08-23 05:51:50 +02:00
Giacomo Tesio
6158d0e166
qa: newlib test for chdir and mkdir
2017-08-23 04:25:30 +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
64d840d5ad
newlib: handle POSIX_chmod and POSIX_fchmod in default_error_translator
2017-08-23 01:08:46 +02:00
Giacomo Tesio
4455658796
libposix: drafted chmod/fchmod; TODO: configurable AT_FDCWD
2017-08-23 01:05:54 +02:00
Giacomo Tesio
6a94e587a6
libposix: fix POSIX_open's DMDIR management; fix typo in POSIX_chmod
2017-08-22 22:42:38 +02:00
Giacomo Tesio
511bbd36af
qa: newlib: better messages in 100-files
2017-08-22 02:45:49 +02:00
Giacomo Tesio
965d316ac4
libposix: return PosixENOTDIR according to O_DIRECTORY specification
2017-08-22 02:34:00 +02:00
Giacomo Tesio
004dd6bff1
libposix: specify PosixOpenTranslator's behaviour on various flags
2017-08-22 02:12:26 +02:00
Giacomo Tesio
859bde60c8
newlib: introduce libposix_getdents machinery
2017-08-22 01:47:28 +02:00
Giacomo Tesio
9947978c05
libposix: implemented libposix_getdents
2017-08-22 01:42:33 +02:00
Giacomo Tesio
97c4c2bccb
qa: add test for opendir/readdir/closedir in newlib
2017-08-22 01:41:15 +02:00
Giacomo Tesio
63b227be55
elf64ldseg: do not pprint warnings on wrong header as it could simply be an rc script
2017-08-21 23:59:40 +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
4490973b6d
newlib: several additions (posix and unix plus getcwd, getlogin, getlogin_r, getpass, pread and pwrite)
2017-08-21 00:20:25 +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
5d56943666
newlib: first try to enable posix (BROKEN)
2017-08-18 01:46:06 +02:00
Giacomo Tesio
6dd00801dc
libposix: introduce pause() (still to be integrated in newlib)
2017-08-18 00:50:07 +02:00
Giacomo Tesio
f3753df931
newlib: import upstream changes
2017-08-17 23:20:50 +02:00
Giacomo Tesio
6ce619a2e0
libc: sleep's argument must be unsigned
2017-08-16 00:58:21 +02:00
Giacomo Tesio
ef6aa99b74
qa: libc: slow note handlers cant't break sleep
2017-08-16 00:37:39 +02:00
Giacomo Tesio
b9483decb0
libmemdraw: fix typo
2017-08-15 12:10:52 +02:00
Giacomo Tesio
e0e45fba5a
kernel: removed unreachable code in fault (CID: 155701)
...
If the user process does not have a segment holding the required addr
the fault function return early.
2017-08-15 01:07:48 +02:00
Giacomo Tesio
55a8a84d8d
kernel: fix potential overflow in updatecpu (CID 155825)
2017-08-15 00:54:15 +02:00
Giacomo Tesio
d796c73e89
qa: fix broken.runner
2017-08-15 00:53:04 +02:00
Giacomo Tesio
0b8a66f877
kernel: umem: fix img_get macro
...
The img_get macro used to subtract 1 to the argument provided before
computing the porinter to the image. I can't remember why it did so.
However the expression was wrong.
Coverity found the issue:
Operands don't affect result (CONSTANT_EXPRESSION_RESULT)
CID: 155616, 155606, 155598, 155597, 155596, 155587,
155580, 155578, 155577, 155576, 155568, 155566
Simply removing the subtraction seems the obvious fix.
2017-08-15 00:38:09 +02:00
Giacomo Tesio
b056df2da6
kernel: simplify sysnotify; should fix CID 156151 (Wrong sizeof argument)
2017-08-14 19:52:22 +02:00
Giacomo Tesio
17c9087965
kernel: fix typo in sysexec (CID 156141)
2017-08-14 19:34:34 +02:00
Giacomo Tesio
180da90a06
kernel: fix args crossing page boundaries in sysexec
...
Should also fix CID 155615 (Operands don't affect result)
2017-08-14 19:25:54 +02:00
Giacomo Tesio
df8bc2ce43
qa: increase rlockt1 timeout
2017-08-14 18:46:23 +02:00
Giacomo Tesio
21b5682a43
kernel: syspread: avoid negative offsets in dir reads
...
Should also fix CID 160109: Dereference after null check
2017-08-14 18:40:25 +02:00
Giacomo Tesio
da588d69ec
kernel: fpprocfork: fix CID 174315 (Missing break in switch)
2017-08-14 15:22:51 +02:00