~ubuntu-branches/ubuntu/quantal/linux-lowlatency/quantal-proposed

« back to all changes in this revision

Viewing changes to fs/partitions/karma.c

  • Committer: Package Import Robot
  • Author(s): Andy Whitcroft, Andy Whitcroft
  • Date: 2012-06-21 09:16:38 UTC
  • Revision ID: package-import@ubuntu.com-20120621091638-gubhv4nox8xez1ct
Tags: 3.5.0-1.1
[ Andy Whitcroft]

* Rebuild lowlatency against Ubuntu-3.5.0-1.1
* All new configuration system to allow configuration deltas to be
  exposed via debian.lowlatency/config-delta

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
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)
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_part_sector(state, 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
 
        strlcat(state->pp_buf, "\n", PAGE_SIZE);
54
 
        put_dev_sector(sect);
55
 
        return 1;
56
 
}
57