a5a097fa4a
Kernel/LibC: Add initial pseudo terminal support
...
This patch implements posix_openpt() and ptsname()
grantpt() and unlockpt() are left in LibC as stubs, as posix_openpt
currently does all of the needed work.
2024-08-11 01:02:59 +03:00
ad645f31d0
Kernel/LibC: Add setsid()
2024-08-11 00:58:12 +03:00
a12bfe4639
LibC: Don't crash when calling tcflush()
2024-08-09 17:03:21 +03:00
6cda639869
LibC: Add stubs for tmpfile, mktemp and fchmod
2024-08-09 17:02:49 +03:00
2797fe116f
LibC: Add stubs for some functions in {dlfcn,ftw,utime,wchar}.h
2024-08-09 17:01:41 +03:00
e768cd53fb
LibC: Add definition for SIGWINCH
...
This is actually not yet sent, but programs can install signal handlers
for it!
2024-08-09 17:00:13 +03:00
83e2ad40d6
LibC: Implement gai_strerror and add stubs for {get,free}addrinfo
2024-08-09 16:59:49 +03:00
7ebd0699e3
LibC: Add _PC* definitions to unistd.h
...
These are not used for anything yet
2024-08-09 16:58:58 +03:00
46b1d4d194
LibC: Remove cxx abi stuff from libc
...
These will cause multiple definitions when linking with libstdc++
2024-08-09 16:58:11 +03:00
f60e265397
LibC: Add ldexp to math.cpp
2024-08-09 16:57:16 +03:00
2e642327ea
LibC: Implement localeconv()
2024-08-09 16:56:48 +03:00
a87ce41030
LibC: rename fd_set internal variable
...
binutils seems to need access to the internal type and uses this name
for lookup.
2024-08-09 16:55:52 +03:00
0c8cae4cc3
LibC: Move ioctl to <sys/ioctl.h>
...
Some ports seem to be assuming that ioctl exists there and not in
stropts.h
2024-08-09 16:54:30 +03:00
6fedf06150
LibC: Implement {sig,_,}{longjmp,setjmp}
2024-08-09 15:58:56 +03:00
44f0ec601f
Kernel: Expose /proc/meminfo and fix /proc/<pid>/meminfo
...
Thread was unconditionally calling <stack>->size() without validating
that the stack actually exists
2024-08-09 15:58:56 +03:00
2a659a9d03
BuildSystem: Fix enable sse definition
...
__enable_sse was never actually defined for any targets. This also adds
__arch definition for libc (so `utsname` works).
2024-08-09 15:52:42 +03:00
3b23458ecc
LibC: Start work on locales
...
This patch adds 2 locales, POSIX locale and UTF8 locale.
functions `mbstowcs()` and `strcoll()` use locales to do convertions and
comparison respectively.
2024-08-09 15:52:42 +03:00
7afdfb150f
LibC: Rewrite sigprocmask in terms of pthread_sigmask
...
Also don't fail SYS_SIGPROCMASK if how is invalid and set is NULL.
2024-08-07 17:01:35 +03:00
fe94d6cf89
LibC: Implement dummy rename() so vim can save files
...
vim calls rename when saving a file. This patch adds dummy
implementation that only works for regular files and does a copy instead
of proper rename.
2024-08-05 20:16:05 +03:00
4d96ae56ac
LibC: Add stubs for ungetc(), tcflush() and symlink()
2024-08-05 01:48:24 +03:00
adadb10b15
LibC: Fix strsignal() and implement psignal()
2024-08-05 00:59:03 +03:00
a749b9806e
LibC: Add definition for h_errno
...
Nothing uses this yet, but linking will succeed
2024-08-05 00:58:06 +03:00
615d9d4abe
LibC: Add INADDR_LOOPBACK
...
Some port was using this. Loopback addresses are not supported, but they
will be 127.0.0.1.
2024-08-05 00:56:42 +03:00
aa03274093
LibC: Remove O_DIRECTORY from opendir()
...
opendir() did not work on symlinks after with this flag...
2024-08-05 00:55:03 +03:00
e7a06979ec
LibC: Implement usleep()
...
This is not a POSIX function, but some ports seem to be using it either
way
2024-08-05 00:54:17 +03:00
3651306f57
LibC: Implement strto{u,i}max()
2024-08-05 00:53:27 +03:00
5dce4e6aea
LibC: Implement strftime()
...
I did not test this at all, this might very well be broken
2024-08-05 00:49:44 +03:00
1d9041f2aa
LibC: make opendir() fail if path is not a directory
2024-08-01 22:57:46 +03:00
a578527012
Kernel/LibC: Implement ioctl(TIOCGWINSZ)
...
This allows ncurses to get the window size!
2024-08-01 22:56:26 +03:00
a33b63d066
Kernel/LibC: Implement alarm() and setitimer()
...
This makes vim able to start!
2024-08-01 21:09:56 +03:00
6de350ce9d
Kernel/LibC: Cleanup, fix and implement a lot of signal code
...
This patch implements sigsets and some of their usages
2024-08-01 17:01:18 +03:00
401b460d75
LibC: Implement setbuf() and setvbuf()
2024-08-01 01:30:00 +03:00
c440204fa5
LibC: Implement dummy strcoll()
2024-07-31 23:58:10 +03:00
adf50dffd8
LibC: Implement uname()
2024-07-31 23:54:26 +03:00
20d38ed28c
LibC/Shell: Implement gethostname() and shell uses it for hostname
2024-07-31 23:53:55 +03:00
edc30cd71d
LibC: Compile without exceptions
...
This allows libc to not require __gxx_personality_v0. I can maybe add
C++ back to libc... :D I don't know why I did not research earlier what
this symbols was used for
2024-07-31 23:33:41 +03:00
10ce03a1e7
LibC: Implement ctime() and asctime()
2024-07-31 23:26:10 +03:00
5fca5c774a
LibC: Implement umask()
2024-07-31 23:26:10 +03:00
fc6c39e670
LibC: Implement gettimeofday()
2024-07-31 23:26:06 +03:00
e52dac3b25
LibC: Implement tmpnam()
...
This implementation is not really spec compliant as rand() does not
guarantee TMP_MAX different outputs + seeding
2024-07-30 12:02:30 +03:00
62db9a8ef3
LibC: Implement C++ static guards
2024-07-30 12:02:05 +03:00
f0be4f86a6
LibC/Kernel: Implement access
2024-07-30 11:51:07 +03:00
e5bb843059
LibC/Kernel: Implement ttyname
2024-07-30 11:41:18 +03:00
ca774dfeb5
LibC: Implement setlocale() for C locale
2024-07-30 11:33:02 +03:00
681d8327f5
LibC/Kernel: Cleanup termios code
...
This is still not correct, but much better than it used to be
2024-07-30 11:10:43 +03:00
3ab1214012
LibC: Fix _toupper and _tolower definitions
...
They were using C++ global namespace, which of course does not exist for
C targets.
2024-07-18 01:10:51 +03:00
5b8fdbc82d
LibC: Don't expose math.h in stdlib.h
2024-07-16 12:47:38 +03:00
5dc441c4af
Kernel/userspace: Implement KD_LOADFONT and loadfont program
2024-07-03 09:02:49 +03:00
0c645ba867
LibGUI: Window now uses double buffering
...
This allows data in shared memory object be always up to date. With this
change window server can update lazily, and not necessarily on all
invalidate calls
2024-06-27 00:39:59 +03:00
af4b138094
Kernel/LibC: Implement realpath
...
realpath is implemented as a syscall. This is not really required but it
was the easiest way to get it working as there is already path
canonicalization at kernel level.
2024-06-25 19:32:40 +03:00