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

Subversion Repositories test_project

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
2
 *  fs/partitions/ultrix.c
3
 *
4
 *  Code extracted from drivers/block/genhd.c
5
 *
6
 *  Re-organised Jul 1999 Russell King
7
 */
8
 
9
#include "check.h"
10
#include "ultrix.h"
11
 
12
int ultrix_partition(struct parsed_partitions *state, struct block_device *bdev)
13
{
14
        int i;
15
        Sector sect;
16
        unsigned char *data;
17
        struct ultrix_disklabel {
18
                s32     pt_magic;       /* magic no. indicating part. info exits */
19
                s32     pt_valid;       /* set by driver if pt is current */
20
                struct  pt_info {
21
                        s32             pi_nblocks; /* no. of sectors */
22
                        u32             pi_blkoff;  /* block offset for start */
23
                } pt_part[8];
24
        } *label;
25
 
26
#define PT_MAGIC        0x032957        /* Partition magic number */
27
#define PT_VALID        1               /* Indicates if struct is valid */
28
 
29
        data = read_dev_sector(bdev, (16384 - sizeof(*label))/512, &sect);
30
        if (!data)
31
                return -1;
32
 
33
        label = (struct ultrix_disklabel *)(data + 512 - sizeof(*label));
34
 
35
        if (label->pt_magic == PT_MAGIC && label->pt_valid == PT_VALID) {
36
                for (i=0; i<8; i++)
37
                        if (label->pt_part[i].pi_nblocks)
38
                                put_partition(state, i+1,
39
                                              label->pt_part[i].pi_blkoff,
40
                                              label->pt_part[i].pi_nblocks);
41
                put_dev_sector(sect);
42
                printk ("\n");
43
                return 1;
44
        } else {
45
                put_dev_sector(sect);
46
                return 0;
47
        }
48
}

powered by: WebSVN 2.1.0

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