LAPIC memory mapping
[akaros.git] / inc / lib.h
1 // Main public header file for our user-land support library,
2 // whose code lives in the lib directory.
3 // This library is roughly our OS's version of a standard C library,
4 // and is intended to be linked into all user-mode applications
5 // (NOT the kernel or boot loader).
6
7 #ifndef JOS_INC_LIB_H
8 #define JOS_INC_LIB_H 1
9
10 #include <inc/types.h>
11 #include <inc/stdio.h>
12 #include <inc/stdarg.h>
13 #include <inc/string.h>
14 #include <inc/error.h>
15 #include <inc/assert.h>
16 #include <inc/env.h>
17 #include <inc/memlayout.h>
18 #include <inc/syscall.h>
19
20 #define USED(x)         (void)(x)
21
22 // libos.c or entry.S
23 extern char *binaryname;
24 extern volatile struct Env *env;
25 extern volatile struct Env envs[NENV];
26 extern volatile struct Page pages[];
27 void    exit(void);
28
29 // readline.c
30 char*   readline(const char *buf);
31
32 // syscall.c
33 void    sys_cputs(const char *string, size_t len);
34 int     sys_cgetc(void);
35 envid_t sys_getenvid(void);
36 int     sys_env_destroy(envid_t);
37
38
39
40 /* File open modes */
41 #define O_RDONLY        0x0000          /* open for reading only */
42 #define O_WRONLY        0x0001          /* open for writing only */
43 #define O_RDWR          0x0002          /* open for reading and writing */
44 #define O_ACCMODE       0x0003          /* mask for above modes */
45
46 #define O_CREAT         0x0100          /* create if nonexistent */
47 #define O_TRUNC         0x0200          /* truncate to zero length */
48 #define O_EXCL          0x0400          /* error if already exists */
49 #define O_MKDIR         0x0800          /* create directory, not regular file */
50
51 #endif  // !JOS_INC_LIB_H