Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 984 - (hide annotations) (download)
Sun May 30 11:32:42 2010 UTC (14 years ago) by niro
File MIME type: text/plain
File size: 1908 byte(s)
-updated to busybox-1.16.1 and enabled blkid/uuid support in default config
1 niro 532 #if ENABLE_FEATURE_AIX_LABEL
2     /*
3     * Copyright (C) Andreas Neuper, Sep 1998.
4 niro 984 *
5     * Licensed under GPLv2, see file LICENSE in this tarball for details.
6 niro 532 */
7    
8     typedef struct {
9     unsigned int magic; /* expect AIX_LABEL_MAGIC */
10     unsigned int fillbytes1[124];
11     unsigned int physical_volume_id;
12     unsigned int fillbytes2[124];
13     } aix_partition;
14    
15     #define AIX_LABEL_MAGIC 0xc9c2d4c1
16     #define AIX_LABEL_MAGIC_SWAPPED 0xc1d4c2c9
17     #define AIX_INFO_MAGIC 0x00072959
18     #define AIX_INFO_MAGIC_SWAPPED 0x59290700
19    
20     #define aixlabel ((aix_partition *)MBRbuffer)
21    
22    
23     /*
24     Changes:
25     * 1999-03-20 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
26     * Internationalization
27     *
28     * 2003-03-20 Phillip Kesling <pkesling@sgi.com>
29     * Some fixes
30     */
31    
32 niro 816 static smallint aix_other_endian; /* bool */
33     static smallint aix_volumes = 1; /* max 15 */
34 niro 532
35     /*
36     * only dealing with free blocks here
37     */
38    
39     static void
40     aix_info(void)
41     {
42 niro 816 puts("\n"
43     "There is a valid AIX label on this disk.\n"
44     "Unfortunately Linux cannot handle these disks at the moment.\n"
45     "Nevertheless some advice:\n"
46     "1. fdisk will destroy its contents on write.\n"
47     "2. Be sure that this disk is NOT a still vital part of a volume group.\n"
48     " (Otherwise you may erase the other disks as well, if unmirrored.)\n"
49     "3. Before deleting this physical volume be sure to remove the disk\n"
50     " logically from your AIX machine. (Otherwise you become an AIXpert).\n"
51 niro 532 );
52     }
53    
54     static int
55     check_aix_label(void)
56     {
57 niro 984 if (aixlabel->magic != AIX_LABEL_MAGIC
58     && aixlabel->magic != AIX_LABEL_MAGIC_SWAPPED
59     ) {
60 niro 532 current_label_type = 0;
61     aix_other_endian = 0;
62     return 0;
63     }
64     aix_other_endian = (aixlabel->magic == AIX_LABEL_MAGIC_SWAPPED);
65     update_units();
66 niro 816 current_label_type = LABEL_AIX;
67     g_partitions = 1016;
68 niro 532 aix_volumes = 15;
69     aix_info();
70     /*aix_nolabel();*/ /* %% */
71     /*aix_label = 1;*/ /* %% */
72     return 1;
73     }
74     #endif /* AIX_LABEL */