diff options
Diffstat (limited to 'xen')
-rw-r--r-- | xen/block.c | 1 | ||||
-rw-r--r-- | xen/xen.c | 12 | ||||
-rw-r--r-- | xen/xen.h | 3 |
3 files changed, 11 insertions, 5 deletions
diff --git a/xen/block.c b/xen/block.c index 3c188bf..76119e8 100644 --- a/xen/block.c +++ b/xen/block.c @@ -213,6 +213,7 @@ void hyp_block_init(void) { panic("%s: couldn't store state (%s)", device_name, hyp_store_error); kfree((vm_offset_t) c, strlen(c)+1); } while (!hyp_store_transaction_stop(t)); + /* TODO randomly wait? */ c = hyp_store_read(0, 5, VBD_PATH, "/", vbds[n], "/", "backend"); if (!c) @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007 Samuel Thibault <samuel.thibault@ens-lyon.org> + * Copyright (C) 2007-2011 Samuel Thibault <samuel.thibault@ens-lyon.org> * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,13 +46,17 @@ void hyp_init(void) { hyp_grant_init(); hyp_store_init(); - /* these depend on the above */ - hyp_block_init(); - hyp_net_init(); evtchn_port_t port = hyp_event_channel_bind_virq(VIRQ_DEBUG, 0); hyp_evt_handler(port, hyp_debug, 0, SPL7); } +void hyp_dev_init(void) +{ + /* these depend on hyp_init() and working threads */ + hyp_block_init(); + hyp_net_init(); +} + void _hyp_halt(void) { hyp_halt(); @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006 Samuel Thibault <samuel.thibault@ens-lyon.org> + * Copyright (C) 2006-2010, 2011 Samuel Thibault <samuel.thibault@ens-lyon.org> * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #define XEN_XEN_H void hyp_init(void); +void hyp_dev_init(void); void hyp_invalidate_pte(pt_entry_t *pte); void hyp_idle(void); void hyp_p2m_init(void); |