aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-06-09 13:26:30 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-06-09 13:26:30 +0100
commitc68ffdc4fa75f9ed29ccdea16c9a910442e2fc20 (patch)
treeec2dc82b665f6046a46a4c90b5397fe51f17fac4 /extras/mini-os/include
parent0ba222a6fd5c72bda66eb3678c44fe3e43bbc6c0 (diff)
downloadxen-c68ffdc4fa75f9ed29ccdea16c9a910442e2fc20.tar.gz
xen-c68ffdc4fa75f9ed29ccdea16c9a910442e2fc20.tar.bz2
xen-c68ffdc4fa75f9ed29ccdea16c9a910442e2fc20.zip
minios: add proper shutdown facilities
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/include')
-rw-r--r--extras/mini-os/include/console.h1
-rw-r--r--extras/mini-os/include/events.h1
-rw-r--r--extras/mini-os/include/gnttab.h1
-rw-r--r--extras/mini-os/include/ia64/os.h3
-rw-r--r--extras/mini-os/include/ia64/traps.h4
-rw-r--r--extras/mini-os/include/kernel.h7
-rw-r--r--extras/mini-os/include/mm.h1
-rw-r--r--extras/mini-os/include/netfront.h1
-rw-r--r--extras/mini-os/include/time.h1
-rw-r--r--extras/mini-os/include/x86/os.h4
-rw-r--r--extras/mini-os/include/xenbus.h3
11 files changed, 25 insertions, 2 deletions
diff --git a/extras/mini-os/include/console.h b/extras/mini-os/include/console.h
index ac9cb53e7b..4a61f1aaa0 100644
--- a/extras/mini-os/include/console.h
+++ b/extras/mini-os/include/console.h
@@ -51,6 +51,7 @@ void xencons_tx(void);
void init_console(void);
void console_print(char *data, int length);
+void fini_console(void);
/* Low level functions defined in xencons_ring.c */
extern struct wait_queue_head console_queue;
diff --git a/extras/mini-os/include/events.h b/extras/mini-os/include/events.h
index ff202e38fe..9ffb35d320 100644
--- a/extras/mini-os/include/events.h
+++ b/extras/mini-os/include/events.h
@@ -45,5 +45,6 @@ static inline int notify_remote_via_evtchn(evtchn_port_t port)
return HYPERVISOR_event_channel_op(EVTCHNOP_send, &op);
}
+void fini_events(void);
#endif /* _EVENTS_H_ */
diff --git a/extras/mini-os/include/gnttab.h b/extras/mini-os/include/gnttab.h
index f952442955..acd6c39f8c 100644
--- a/extras/mini-os/include/gnttab.h
+++ b/extras/mini-os/include/gnttab.h
@@ -11,5 +11,6 @@ grant_ref_t gnttab_grant_transfer(domid_t domid, unsigned long pfn);
unsigned long gnttab_end_transfer(grant_ref_t gref);
int gnttab_end_access(grant_ref_t ref);
const char *gnttabop_error(int16_t status);
+void fini_gnttab(void);
#endif /* !__GNTTAB_H__ */
diff --git a/extras/mini-os/include/ia64/os.h b/extras/mini-os/include/ia64/os.h
index 2ae5331393..bf3785fc82 100644
--- a/extras/mini-os/include/ia64/os.h
+++ b/extras/mini-os/include/ia64/os.h
@@ -35,6 +35,7 @@
#include "sal.h"
#include "pal.h"
#include "hypervisor.h"
+#include <kernel.h>
typedef uint64_t paddr_t; /* Physical address. */
@@ -46,9 +47,9 @@ typedef uint64_t caddr_t; /* rr7/kernel memory address. */
#include "mm.h"
-void do_exit(void) __attribute__((noreturn));
void arch_init(start_info_t *si); /* in common.c */
void arch_print_info(void); /* in common.c */
+void arch_fini(void);
/* Size of xen_ia64_boot_param.command_line */
diff --git a/extras/mini-os/include/ia64/traps.h b/extras/mini-os/include/ia64/traps.h
index 4c5e7be527..e79a952aec 100644
--- a/extras/mini-os/include/ia64/traps.h
+++ b/extras/mini-os/include/ia64/traps.h
@@ -38,6 +38,10 @@ inline static void trap_init(void)
{
//printk("trap_init() until now not needed!\n");
}
+inline static void trap_fini(void)
+{
+ //printk("trap_fini() until now not needed!\n");
+}
#endif /* !defined(__ASSEMBLY__) */
diff --git a/extras/mini-os/include/kernel.h b/extras/mini-os/include/kernel.h
new file mode 100644
index 0000000000..b36f172ed8
--- /dev/null
+++ b/extras/mini-os/include/kernel.h
@@ -0,0 +1,7 @@
+#ifndef _KERNEL_H_
+#define _KERNEL_H_
+
+extern void do_exit(void) __attribute__((noreturn));
+extern void stop_kernel(void);
+
+#endif /* _KERNEL_H_ */
diff --git a/extras/mini-os/include/mm.h b/extras/mini-os/include/mm.h
index 28fb727f9f..7c8588ccf8 100644
--- a/extras/mini-os/include/mm.h
+++ b/extras/mini-os/include/mm.h
@@ -75,5 +75,6 @@ extern unsigned long heap, brk, heap_mapped, heap_end;
#endif
int free_physical_pages(xen_pfn_t *mfns, int n);
+void fini_mm(void);
#endif /* _MM_H_ */
diff --git a/extras/mini-os/include/netfront.h b/extras/mini-os/include/netfront.h
index 526dc94b5c..681ebf2c0f 100644
--- a/extras/mini-os/include/netfront.h
+++ b/extras/mini-os/include/netfront.h
@@ -18,6 +18,7 @@ extern struct wait_queue_head netfront_queue;
* N.B. _must_ be called from a thread; it's not safe to call this from
* app_main(). */
void start_networking(void);
+void stop_networking(void);
void networking_set_addr(struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw);
#endif
diff --git a/extras/mini-os/include/time.h b/extras/mini-os/include/time.h
index e28bf171d7..250af5c5cf 100644
--- a/extras/mini-os/include/time.h
+++ b/extras/mini-os/include/time.h
@@ -54,6 +54,7 @@ typedef long suseconds_t;
/* prototypes */
void init_time(void);
+void fini_time(void);
s_time_t get_s_time(void);
s_time_t get_v_time(void);
u64 monotonic_clock(void);
diff --git a/extras/mini-os/include/x86/os.h b/extras/mini-os/include/x86/os.h
index 1cab0a73db..39faa0395d 100644
--- a/extras/mini-os/include/x86/os.h
+++ b/extras/mini-os/include/x86/os.h
@@ -18,10 +18,10 @@
#ifndef __ASSEMBLY__
#include <types.h>
#include <hypervisor.h>
+#include <kernel.h>
#define USED __attribute__ ((used))
-extern void do_exit(void) __attribute__((noreturn));
#define BUG do_exit
#endif
@@ -61,9 +61,11 @@ extern void do_exit(void) __attribute__((noreturn));
extern shared_info_t *HYPERVISOR_shared_info;
void trap_init(void);
+void trap_fini(void);
void arch_init(start_info_t *si);
void arch_print_info(void);
+void arch_fini(void);
diff --git a/extras/mini-os/include/xenbus.h b/extras/mini-os/include/xenbus.h
index 2ed370f252..f1585c9f70 100644
--- a/extras/mini-os/include/xenbus.h
+++ b/extras/mini-os/include/xenbus.h
@@ -90,4 +90,7 @@ char* xenbus_printf(xenbus_transaction_t xbt,
char* node, char* path,
char* fmt, ...);
+/* Reset the XenBus system. */
+void fini_xenbus(void);
+
#endif /* XENBUS_H__ */