3 * \brief Startup prototypes.
7 * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
10 * This file is distributed under the terms in the attached LICENSE file.
11 * If you do not find this file, copies can be found by writing to:
12 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
15 #ifndef __KERNEL_STARTUP_H
16 #define __KERNEL_STARTUP_H
25 struct cte *taskcn, *segcn,*supercn0,*supercn1, *physaddrcn, *modulecn,
27 *slot_alloc_cn0, *slot_alloc_cn1, *slot_alloc_cn2;
29 /// Next slot in each cnode
30 cslot_t segcn_slot, supercn0_slot, supercn1_slot, physaddrcn_slot, modulecn_slot;
32 /// Address of arguments page
36 errval_t create_caps_to_cnode(lpaddr_t base_addr, size_t size,
37 enum region_type type,
38 struct spawn_state *st, struct bootinfo *bootinfo);
41 * \brief Linear physical memory allocator callback function.
43 * This function allocates a linear region of addresses of size 'size' from
46 * \param size Number of bytes to allocate.
48 * \return Base physical address of memory region.
50 typedef lpaddr_t (*alloc_phys_func)(size_t size);
52 struct dcb *spawn_module(struct spawn_state *st,
53 const char *name, int argc, const char** argv,
54 lpaddr_t bootinfo, lvaddr_t args_base,
55 alloc_phys_func alloc_phys, lvaddr_t *retparamaddr);
57 #endif // __KERNEL_STARTUP_H