Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/util-linux/volume_id/unused_minix.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 816 - (hide annotations) (download)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 1972 byte(s)
-updated to busybox-1.13.4
1 niro 816 /*
2     * volume_id - reads filesystem label and uuid
3     *
4     * Copyright (C) 2005 Kay Sievers <kay.sievers@vrfy.org>
5     *
6     * This library is free software; you can redistribute it and/or
7     * modify it under the terms of the GNU Lesser General Public
8     * License as published by the Free Software Foundation; either
9     * version 2.1 of the License, or (at your option) any later version.
10     *
11     * This library is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14     * Lesser General Public License for more details.
15     *
16     * You should have received a copy of the GNU Lesser General Public
17     * License along with this library; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19     */
20    
21     #include "volume_id_internal.h"
22    
23     struct minix_super_block {
24     uint16_t s_ninodes;
25     uint16_t s_nzones;
26     uint16_t s_imap_blocks;
27     uint16_t s_zmap_blocks;
28     uint16_t s_firstdatazone;
29     uint16_t s_log_zone_size;
30     uint32_t s_max_size;
31     uint16_t s_magic;
32     uint16_t s_state;
33     uint32_t s_zones;
34     } __attribute__((__packed__));
35    
36     #define MINIX_SUPERBLOCK_OFFSET 0x400
37    
38     int volume_id_probe_minix(struct volume_id *id, uint64_t off)
39     {
40     struct minix_super_block *ms;
41    
42     dbg("probing at offset 0x%llx", (unsigned long long) off);
43    
44     ms = volume_id_get_buffer(id, off + MINIX_SUPERBLOCK_OFFSET, 0x200);
45     if (ms == NULL)
46     return -1;
47    
48     if (ms->s_magic == cpu_to_le16(0x137f)) {
49     // id->type_version[0] = '1';
50     goto found;
51     }
52    
53     if (ms->s_magic == cpu_to_le16(0x1387)) {
54     // id->type_version[0] = '1';
55     goto found;
56     }
57    
58     if (ms->s_magic == cpu_to_le16(0x2468)) {
59     // id->type_version[0] = '2';
60     goto found;
61     }
62    
63     if (ms->s_magic == cpu_to_le16(0x2478)) {
64     // id->type_version[0] = '2';
65     goto found;
66     }
67    
68     return -1;
69    
70     found:
71     // id->type_version[1] = '\0';
72     // volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
73     // id->type = "minix";
74     return 0;
75     }