Request process arguments differently, mmap-style dlmalloc port, new linklist utils

This commit is contained in:
2025-09-21 22:51:38 +02:00
parent 397379bca3
commit 5c7fb3e1cf
4 changed files with 96 additions and 53 deletions

View File

@ -22,7 +22,7 @@ char **_args;
size_t _argslen;
char **args(void) {
return (char **)_args;
return _args;
}
size_t argslen(void) {
@ -33,19 +33,13 @@ size_t argslen(void) {
void _premain(void) {
clearbss();
_argslen = processctl(-1, PCTL_ARGLEN, 0, 0, 0);
_args = dlmalloc(_argslen * sizeof(*_args));
if (_args == NULL) {
return;
}
for (size_t i = 0; i < _argslen; i++) {
#define MAX_ARGS 30
_args = (char **)dlmalloc(MAX_ARGS * sizeof(char *));
for (size_t i = 0; i < MAX_ARGS; i++) {
_args[i] = dlmalloc(PROC_ARG_MAX);
if (_args[i] == NULL) {
return;
}
}
processctl(-1, PCTL_ARGV, (uint64_t)_args, _argslen, 0);
processctl(-1, PCTL_ARGV, (uint64_t)&_argslen, (uint64_t)_args, MAX_ARGS);
main();
}