Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 984 - (show annotations) (download)
Sun May 30 11:32:42 2010 UTC (13 years, 11 months 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 #if ENABLE_FEATURE_AIX_LABEL
2 /*
3 * Copyright (C) Andreas Neuper, Sep 1998.
4 *
5 * Licensed under GPLv2, see file LICENSE in this tarball for details.
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 smallint aix_other_endian; /* bool */
33 static smallint aix_volumes = 1; /* max 15 */
34
35 /*
36 * only dealing with free blocks here
37 */
38
39 static void
40 aix_info(void)
41 {
42 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 );
52 }
53
54 static int
55 check_aix_label(void)
56 {
57 if (aixlabel->magic != AIX_LABEL_MAGIC
58 && aixlabel->magic != AIX_LABEL_MAGIC_SWAPPED
59 ) {
60 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 current_label_type = LABEL_AIX;
67 g_partitions = 1016;
68 aix_volumes = 15;
69 aix_info();
70 /*aix_nolabel();*/ /* %% */
71 /*aix_label = 1;*/ /* %% */
72 return 1;
73 }
74 #endif /* AIX_LABEL */