20#ifndef KERNEL_EXECFMT_H
21#define KERNEL_EXECFMT_H
24#include <kernel/types.h>
28#define EXECFMT_ARGS_BUFFER_SIZE (4 * PAGE_SIZE)
29#define EXECFMT_MAX_ARGS 8192
30#define EXECFMT_MAX_ARG_SIZE (PAGE_SIZE)
52 void (*entrypoint)(
void*);
64 const char *exec_path;
error_t execfmt_execute(struct exec_params *)
Execute a given executable file's content.
Definition: exec.c:252
error_t execfmt_register(struct execfmt *)
Register a new executable file format.
Definition: exec.c:21
Executable parameters.
Definition: execfmt.h:63
char *const * envp
Definition: execfmt.h:67
size_t argc
Definition: execfmt.h:66
char *const * argv
Definition: execfmt.h:65
size_t envpc
Definition: execfmt.h:68
An executable file format.
Definition: execfmt.h:36
error_t(* load)(struct executable *, void *)
Load an executable file in memory.
Definition: execfmt.h:41
const char * name
Format's name.
Definition: execfmt.h:38
bool(* match)(const void *)
Check whether an executable file is of the given format.
Definition: execfmt.h:39
Represents a loaded executable.
Definition: execfmt.h:51
Opened file description.
Definition: file.h:45
Intrusive doubly-linked list node.
Definition: linked_list.h:27