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

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [fs/] [partitions/] [karma.c] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 *  fs/partitions/karma.c
3
 *  Rio Karma partition info.
4
 *
5
 *  Copyright (C) 2006 Bob Copeland (me@bobcopeland.com)
6
 *  based on osf.c
7
 */
8
 
9
#include "check.h"
10
#include "karma.h"
11
 
12
int karma_partition(struct parsed_partitions *state, struct block_device *bdev)
13
{
14
        int i;
15
        int slot = 1;
16
        Sector sect;
17
        unsigned char *data;
18
        struct disklabel {
19
                u8 d_reserved[270];
20
                struct d_partition {
21
                        __le32 p_res;
22
                        u8 p_fstype;
23
                        u8 p_res2[3];
24
                        __le32 p_offset;
25
                        __le32 p_size;
26
                } d_partitions[2];
27
                u8 d_blank[208];
28
                __le16 d_magic;
29
        } __attribute__((packed)) *label;
30
        struct d_partition *p;
31
 
32
        data = read_dev_sector(bdev, 0, &sect);
33
        if (!data)
34
                return -1;
35
 
36
        label = (struct disklabel *)data;
37
        if (le16_to_cpu(label->d_magic) != KARMA_LABEL_MAGIC) {
38
                put_dev_sector(sect);
39
                return 0;
40
        }
41
 
42
        p = label->d_partitions;
43
        for (i = 0 ; i < 2; i++, p++) {
44
                if (slot == state->limit)
45
                        break;
46
 
47
                if (p->p_fstype == 0x4d && le32_to_cpu(p->p_size)) {
48
                        put_partition(state, slot, le32_to_cpu(p->p_offset),
49
                                le32_to_cpu(p->p_size));
50
                }
51
                slot++;
52
        }
53
        printk("\n");
54
        put_dev_sector(sect);
55
        return 1;
56
}
57
 

powered by: WebSVN 2.1.0

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