Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 532 - (show annotations) (download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 8 months ago) by niro
File MIME type: text/plain
File size: 1951 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd

1 #if ENABLE_FEATURE_AIX_LABEL
2 /*
3 * Copyright (C) Andreas Neuper, Sep 1998.
4 * This file may be redistributed under
5 * the terms of the GNU Public License.
6 */
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 static int aix_other_endian;
33 static short aix_volumes = 1;
34
35 /*
36 * only dealing with free blocks here
37 */
38
39 static void
40 aix_info(void)
41 {
42 puts(
43 _("\n\tThere is a valid AIX label on this disk.\n"
44 "\tUnfortunately Linux cannot handle these\n"
45 "\tdisks at the moment. Nevertheless some\n"
46 "\tadvice:\n"
47 "\t1. fdisk will destroy its contents on write.\n"
48 "\t2. Be sure that this disk is NOT a still vital\n"
49 "\t part of a volume group. (Otherwise you may\n"
50 "\t erase the other disks as well, if unmirrored.)\n"
51 "\t3. Before deleting this physical volume be sure\n"
52 "\t to remove the disk logically from your AIX\n"
53 "\t machine. (Otherwise you become an AIXpert).")
54 );
55 }
56
57 static int
58 check_aix_label(void)
59 {
60 if (aixlabel->magic != AIX_LABEL_MAGIC &&
61 aixlabel->magic != AIX_LABEL_MAGIC_SWAPPED) {
62 current_label_type = 0;
63 aix_other_endian = 0;
64 return 0;
65 }
66 aix_other_endian = (aixlabel->magic == AIX_LABEL_MAGIC_SWAPPED);
67 update_units();
68 current_label_type = label_aix;
69 partitions = 1016;
70 aix_volumes = 15;
71 aix_info();
72 /*aix_nolabel();*/ /* %% */
73 /*aix_label = 1;*/ /* %% */
74 return 1;
75 }
76 #endif /* AIX_LABEL */