Request process arguments differently, mmap-style dlmalloc port, new linklist utils
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
Reference in New Issue
Block a user