commited some changes and added README
[meinos.git] / apps / init / init.h
blob23115263e7df22fd73c7c5eb985f0af946ee19d0
1 /*
2 meinOS - A unix-like x86 microkernel operating system
3 Copyright (C) 2008 Janosch Gräf <janosch.graef@gmx.net>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef _INIT_H_
20 #define _INIT_H_
22 #include <sys/types.h>
24 #include "exe_elf.h"
26 // Executables
28 typedef struct {
29 void *data;
30 enum {
31 EXE_ELF
32 } type;
33 } exe_t;
35 exe_t *exe_create(const char *file);
36 void *exe_load(exe_t *exe,pid_t pid);
37 void exe_destroy(exe_t *exe);
39 // Grub modules
41 pid_t *init_get_grub_modules();
42 int init_run_grub_modules(pid_t *modules);
43 void init_sort_grub_modules(pid_t *modules);
45 // Proc
47 int proc_exec(const char *file,int var);
48 pid_t proc_fork(void *child_entry);
50 // ProcFS
51 int procfs_init(pid_t *grub_modules);
52 int procfs_run(void);
53 int procfs_proc_new(pid_t pid,const char *name,const char *exe);
54 int procfs_proc_update(pid_t pid,const char *name,const char *exe);
56 #endif /* _INIT_H_ */