Changes in merged posix pager mm0 initialization.

- Moved rootfs from being embedded to mm0 image to being an independent image.
- MM0 boots up to start_init_process with updated boot convention.
This commit is contained in:
Bahadir Balban
2009-10-05 13:25:32 +03:00
parent f8bcd7a546
commit da5f4dcff3
22 changed files with 383 additions and 601 deletions

View File

@@ -15,7 +15,8 @@ struct bootdesc {
struct svc_image images[];
} __attribute__((__packed__));
struct initdata;
void read_bootdesc(struct initdata *initdata);
void read_boot_params();
struct svc_image *bootdesc_get_image_byname(char *);
#endif /* __BOOTDESC_H__ */

View File

@@ -38,7 +38,7 @@ struct capability {
extern struct cap_list capability_list;
struct initdata;
int read_kernel_capabilities(struct initdata *);
void copy_boot_capabilities(struct initdata *initdata);
int read_pager_capabilities();
void copy_boot_capabilities();
#endif /* __MM0_CAPABILITY_H__ */

View File

@@ -29,7 +29,7 @@ struct initdata {
extern struct initdata initdata;
void init_pager(void);
void init(void);
/* TODO: Remove this stuff from here. */
int init_devzero(void);

View File

@@ -31,13 +31,7 @@ SECTIONS
/* rodata is needed else your strings will link at physical! */
.rodata : AT (ADDR(.rodata) - pager_offset) { *(.rodata) }
.rodata1 : AT (ADDR(.rodata1) - pager_offset) { *(.rodata1) }
.data : AT (ADDR(.data) - pager_offset)
{
*(.data)
_start_bdev = .;
*(.data.memfs)
_end_bdev = .;
}
.data : AT (ADDR(.data) - pager_offset) { *(.data) }
.bss : AT (ADDR(.bss) - pager_offset) { *(.bss) }
. = ALIGN(4K);
. += 0x2000; /* BSS doesnt increment link counter??? */

View File

@@ -12,7 +12,7 @@
void init_mm_descriptors(struct page_bitmap *page_map,
struct bootdesc *bootdesc, struct membank *membank);
void init_physmem(struct initdata *initdata, struct membank *membank);
void init_physmem(void);
int pager_address_pool_init(void);
void *pager_new_address(int npages);

View File

@@ -31,15 +31,13 @@ struct membank {
extern struct membank membank[];
/* Describes bitmap of used/unused state for all physical pages */
extern struct page_bitmap page_map;
extern struct memdesc physmem;
/* Sets the global page map as used/unused. Aligns input when needed. */
int set_page_map(struct page_bitmap *pmap, unsigned long start,
int numpages, int val);
struct initdata;
void init_physmem_primary(struct initdata *initdata);
void init_physmem_secondary(struct initdata *initdata, struct membank *membank);
void init_physmem_primary();
void init_physmem_secondary(struct membank *membank);
#endif /* __PAGER_PHYSMEM_H__ */

View File

@@ -87,4 +87,6 @@ struct vnode *generic_vnode_lookup(struct vnode *thisnode, struct pathdata *p,
struct vnode *vfs_lookup_bypath(struct pathdata *p);
struct vnode *vfs_lookup_byvnum(struct superblock *sb, unsigned long vnum);
int vfs_init(void);
#endif /* __VFS_H__ */