Bare support for dispatching parallel processes
[akaros.git] / kern / include / kfs.h
1 /*
2  * Copyright (c) 2009 The Regents of the University of California
3  * Barret Rhoden <brho@cs.berkeley.edu>
4  * See LICENSE for details.
5  *
6  * KFS (Kernel File System)
7  *
8  * This gives runtime access to the binary blobs (usually userspace programs)
9  * linked at the end of the kernel.  Extremely rudimentary.
10  * Also allows for process creation from file (can consider moving this).
11  *
12  * Add the files you want in KFS in kfs.c.
13  */
14
15 #ifndef ROS_KERN_KFS_H
16 #define ROS_KERN_KFS_H
17
18 #include <arch/types.h>
19 #include <process.h>
20
21 // zra : putting nodeputy in header files makes life difficult.
22 //#pragma nodeputy
23
24 struct kfs_entry {
25         char (NT name)[256];
26         uint8_t *COUNT(size) start;
27         size_t size;
28 };
29
30 #define MAX_KFS_FILES 20
31 extern struct kfs_entry kfs[MAX_KFS_FILES];
32
33 ssize_t kfs_lookup_path(char*NTS path);
34 struct proc *kfs_proc_create(int kfs_inode);
35
36 #endif // !ROS_KERN_KFS_H