Merge branch 'master' into gfs2
[pandora-kernel.git] / arch / um / include / os.h
index b6c5249..120ca21 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
  * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
  * Licensed under the GPL
  */
 #include "skas/mm_id.h"
 #include "irq_user.h"
 #include "sysdep/tls.h"
+#include "sysdep/archsetjmp.h"
 
-#define OS_TYPE_FILE 1 
-#define OS_TYPE_DIR 2 
-#define OS_TYPE_SYMLINK 3 
+#define OS_TYPE_FILE 1
+#define OS_TYPE_DIR 2
+#define OS_TYPE_SYMLINK 3
 #define OS_TYPE_CHARDEV 4
 #define OS_TYPE_BLOCKDEV 5
 #define OS_TYPE_FIFO 6
@@ -61,68 +62,68 @@ struct openflags {
 };
 
 #define OPENFLAGS() ((struct openflags) { .r = 0, .w = 0, .s = 0, .c = 0, \
-                                         .t = 0, .a = 0, .e = 0, .cl = 0 })
+                                         .t = 0, .a = 0, .e = 0, .cl = 0 })
 
 static inline struct openflags of_read(struct openflags flags)
 {
-       flags.r = 1; 
-       return(flags);
+       flags.r = 1;
+       return flags;
 }
 
 static inline struct openflags of_write(struct openflags flags)
 {
-       flags.w = 1; 
-       return(flags); 
+       flags.w = 1;
+       return flags;
 }
 
 static inline struct openflags of_rdwr(struct openflags flags)
 {
-       return(of_read(of_write(flags)));
+       return of_read(of_write(flags));
 }
 
 static inline struct openflags of_set_rw(struct openflags flags, int r, int w)
 {
        flags.r = r;
        flags.w = w;
-       return(flags);
+       return flags;
 }
 
 static inline struct openflags of_sync(struct openflags flags)
-{ 
-       flags.s = 1; 
-       return(flags); 
+{
+       flags.s = 1;
+       return flags;
 }
 
 static inline struct openflags of_create(struct openflags flags)
-{ 
-       flags.c = 1; 
-       return(flags); 
+{
+       flags.c = 1;
+       return flags;
 }
+
 static inline struct openflags of_trunc(struct openflags flags)
-{ 
-       flags.t = 1; 
-       return(flags); 
+{
+       flags.t = 1;
+       return flags;
 }
+
 static inline struct openflags of_append(struct openflags flags)
-{ 
-       flags.a = 1; 
-       return(flags); 
+{
+       flags.a = 1;
+       return flags;
 }
+
 static inline struct openflags of_excl(struct openflags flags)
-{ 
-       flags.e = 1; 
-       return(flags); 
+{
+       flags.e = 1;
+       return flags;
 }
 
 static inline struct openflags of_cloexec(struct openflags flags)
-{ 
-       flags.cl = 1; 
-       return(flags); 
+{
+       flags.cl = 1;
+       return flags;
 }
-  
+
 /* file.c */
 extern int os_stat_file(const char *file_name, struct uml_stat *buf);
 extern int os_stat_fd(const int fd, struct uml_stat *buf);
@@ -198,13 +199,15 @@ extern long os_ptrace_ldt(long pid, long addr, long data);
 extern int os_getpid(void);
 extern int os_getpgrp(void);
 
+#ifdef UML_CONFIG_MODE_TT
 extern void init_new_thread_stack(void *sig_stack, void (*usr1_handler)(int));
+#endif
 extern void init_new_thread_signals(void);
 extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr);
 
 extern int os_map_memory(void *virt, int fd, unsigned long long off,
                         unsigned long len, int r, int w, int x);
-extern int os_protect_memory(void *addr, unsigned long len, 
+extern int os_protect_memory(void *addr, unsigned long len,
                             int r, int w, int x);
 extern int os_unmap_memory(void *addr, int len);
 extern int os_drop_memory(void *addr, int length);
@@ -216,7 +219,6 @@ extern void os_flush_stdout(void);
  */
 extern void forward_ipi(int fd, int pid);
 extern void kill_child_dead(int pid);
-extern void stop(void);
 extern int wait_for_stop(int pid, int sig, int cont_type, void *relay);
 extern int protect_memory(unsigned long addr, unsigned long len,
                          int r, int w, int x, int must_succeed);
@@ -276,9 +278,11 @@ extern int setjmp_wrapper(void (*proc)(void *, void *), ...);
 
 extern void switch_timers(int to_real);
 extern void idle_sleep(int secs);
+extern int set_interval(int is_virtual);
+#ifdef CONFIG_MODE_TT
 extern void enable_timer(void);
+#endif
 extern void disable_timer(void);
-extern void user_time_init(void);
 extern void uml_idle_timer(void);
 extern unsigned long long os_nsecs(void);
 
@@ -305,12 +309,9 @@ extern int copy_context_skas0(unsigned long stack, int pid);
 extern void userspace(union uml_pt_regs *regs);
 extern void map_stub_pages(int fd, unsigned long code,
                           unsigned long data, unsigned long stack);
-extern void new_thread(void *stack, void **switch_buf_ptr,
-                        void **fork_buf_ptr, void (*handler)(int));
-extern void thread_wait(void *sw, void *fb);
-extern void switch_threads(void *me, void *next);
-extern int start_idle_thread(void *stack, void *switch_buf_ptr,
-                            void **fork_buf_ptr);
+extern void new_thread(void *stack, jmp_buf *buf, void (*handler)(void));
+extern void switch_threads(jmp_buf *me, jmp_buf *you);
+extern int start_idle_thread(void *stack, jmp_buf *switch_buf);
 extern void initial_thread_cb_skas(void (*proc)(void *),
                                 void *arg);
 extern void halt_skas(void);
@@ -329,6 +330,7 @@ extern void os_set_ioignore(void);
 extern void init_irq_signals(int on_sigstack);
 
 /* sigio.c */
+extern int add_sigio_fd(int fd);
 extern int ignore_sigio_fd(int fd);
 extern void maybe_sigio_broken(int fd, int read);