Es gibt quasi die Ordner
-
Code: Alles auswählen
kernel
-
Code: Alles auswählen
mm
-
Code: Alles auswählen
fs
-
Code: Alles auswählen
h
-
Code: Alles auswählen
kernel
-
Code: Alles auswählen
mm
-
Code: Alles auswählen
fs
-
Code: Alles auswählen
const.h
- bis auf in h/
Code: Alles auswählen
main.c
-
Code: Alles auswählen
h/const.h
-
Code: Alles auswählen
kernel/const.h
-
Code: Alles auswählen
mm/const.h
-
Code: Alles auswählen
fs/const.h
Code: Alles auswählen
h/type.h
Code: Alles auswählen
struct mem_map {
vir_clicks mem_vir;
phys_clicks mem_phys;
vir_clicks mem_len;
};
Code: Alles auswählen
kernel/const.h
#define ES_REG 7
#define DS_REG 8
#define CS_REG 9
#define SS_REG 10
Code: Alles auswählen
kernel/proc.h
EXTERN struct proc {
int p_reg [NR_REGS];
...
struct mem_map p_map [NR_SEGS];
...
} proc[NR_TASKS+NR_PROCS]
Code: Alles auswählen
EXTERN struct proc {
int p_reg [NR_REGS];
...
int p_id;
...
struct mem_map p_map [NR_SEGS];
...
} proc[NR_TASKS+NR_PROCS]
Code: Alles auswählen
kernel/mpx88.s
kernel/klib88.s
Code: Alles auswählen
mm/main.c
mm/forkexit.c
mm/exec.c
mm/break.c
mm/signal.c
mm/alloc.c
Die Funktionen in alloc.c
Code: Alles auswählen
alloc_mem
free_mem
del_slot
merge
max_hole
Die verwendeten Datenstrukturen:
Code: Alles auswählen
PRIVATE struct hole {
phys_clicks h_base;
phys_clicks h_len;
struct hole *h_next;
} hole [NR_HOLES];
Code: Alles auswählen
PRIVATE struct hole *hole_head;
PRIVATE struct hole *free_slots;
Code: Alles auswählen
register struct hole *hp;
register struct hole *prev_ptr;
register struct hole *new_ptr;
phys_clicks old_base;
Code: Alles auswählen
#define NR_HOLES 128
#define NIL_HOLE (struct hole *)0
Code: Alles auswählen
#define NR_TASKS 8
#define NR_PROCS 16
#define NR_SEGS 3
#define T 0 // Text
#define D 1 // Daten
#define S 2 // Stack
Code: Alles auswählen
struct proc
struct mem_map
int p_reg [NR_REGS] // Für die Register
Code: Alles auswählen
EXTERN struct mproc {
struct mem_map mp_seg [NR_SEGS];
...
int mp_pid;
...
uid mp_realuid;
uid mp_effuid;
uid mp_realgid;
uid mp_effuid;
} mproc [N_PROCS];
Code: Alles auswählen
h/type.h
typedef unsigned vir_bytes;
typedef unsigned vir_clicks;
typedef long phys_bytes;
typedef unsigned phys_clicks;
typedef int signed_clicks;
Code: Alles auswählen
NR_REGS
NR_SEGS
N_PROCS
NR_HOLES