OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [mm0/] [mm/] [bootdesc.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/*
2
 * Reading of bootdesc forged at build time.
3
 *
4
 * Copyright (C) 2007 - 2009 Bahadir Balban
5
 */
6
 
7
#include <bootdesc.h>
8
#include <bootm.h>
9
#include <init.h>
10
#include <linker.h>
11
#include L4LIB_INC_ARCH(syslib.h)
12
 
13
extern unsigned long pager_offset;
14
 
15
struct svc_image *bootdesc_get_image_byname(char *name)
16
{
17
        for (int i = 0; i < initdata.bootdesc->total_images; i++)
18
                if (!strncmp(initdata.bootdesc->images[i].name, name, strlen(name)))
19
                        return &initdata.bootdesc->images[i];
20
        return 0;
21
}
22
 
23
void read_boot_params()
24
{
25
        int npages = 0;
26
        struct bootdesc *bootdesc;
27
 
28
        /*
29
         * End of the executable image is where bootdesc resides
30
         */
31
        bootdesc = (struct bootdesc *)__end;
32
 
33
        /* Check if bootdesc is on an unmapped page */
34
        if (is_page_aligned(bootdesc))
35
                l4_map_helper(bootdesc - pager_offset, 1);
36
 
37
        /* Allocate bootdesc sized structure */
38
        initdata.bootdesc = alloc_bootmem(bootdesc->desc_size, 0);
39
 
40
        /* Copy bootdesc to initdata */
41
        memcpy(initdata.bootdesc, bootdesc,
42
               bootdesc->desc_size);
43
 
44
        if (npages > 0)
45
                l4_unmap_helper((void *)page_align_up(__end), npages);
46
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.