Make some macros correct when used within IF clauses without brackets
[akaros.git] / kern / include / elf.h
index 6afb703..ed0515c 100644 (file)
@@ -1,5 +1,4 @@
-#ifndef ROS_INC_ELF_H
-#define ROS_INC_ELF_H
+#pragma once
 
 #include <process.h>
 #include <ros/common.h>
 #  error I know not my endianness!
 #endif
 
+#define ELF_PROT_READ                  0x04
+#define ELF_PROT_WRITE                 0x02
+#define ELF_PROT_EXEC                  0x01
+
 typedef struct Elf32 {
        uint32_t e_magic;       // must equal ELF_MAGIC
        uint8_t e_ident[12];
@@ -144,6 +147,9 @@ typedef long elf_aux_t[2];
 #define ELF_HWCAP_SPARC_FLUSH  1
 
 struct file;
-int load_elf(struct proc* p, struct file* f);
-
-#endif /* !ROS_INC_ELF_H */
+bool is_valid_elf(struct file *f);
+int load_elf(struct proc* p, struct file* f,
+             int argc, char *argv[], int envc, char *envp[]);
+ssize_t get_startup_argc(struct proc *p);
+char *get_startup_argv(struct proc *p, size_t idx, char *argp,
+                                          size_t max_size);