randomconfig fixes
[oweals/busybox.git] / util-linux / fdisk_aix.c
1 #if ENABLE_FEATURE_AIX_LABEL
2 /*
3  * Copyright (C) Andreas Neuper, Sep 1998.
4  *
5  * Licensed under GPLv2, see file LICENSE in this source tree.
6  */
7
8 typedef struct {
9         uint32_t magic;        /* expect AIX_LABEL_MAGIC */
10         uint32_t fillbytes1[124];
11         uint32_t physical_volume_id;
12         uint32_t 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 /*
21  * Changes:
22  * 1999-03-20 Arnaldo Carvalho de Melo <acme@conectiva.com.br>
23  *     Internationalization
24  *
25  * 2003-03-20 Phillip Kesling <pkesling@sgi.com>
26  *      Some fixes
27  */
28
29 // Write-only vars, unfinished code?
30 //static smallint aix_other_endian; /* bool */
31 //static smallint aix_volumes = 1; /* max 15 */
32
33 /*
34  * only dealing with free blocks here
35  */
36
37 static void
38 aix_info(void)
39 {
40         puts("\n"
41 "There is a valid AIX label on this disk.\n"
42 "Unfortunately Linux cannot handle these disks at the moment.\n"
43 "Nevertheless some advice:\n"
44 "1. fdisk will destroy its contents on write.\n"
45 "2. Be sure that this disk is NOT a still vital part of a volume group.\n"
46 "   (Otherwise you may erase the other disks as well, if unmirrored.)\n"
47 "3. Before deleting this physical volume be sure to remove the disk\n"
48 "   logically from your AIX machine. (Otherwise you become an AIXpert).\n"
49         );
50 }
51
52 static int
53 check_aix_label(void)
54 {
55         aix_partition *aixlabel = (void*)MBRbuffer;
56
57         if (aixlabel->magic != AIX_LABEL_MAGIC
58          && aixlabel->magic != AIX_LABEL_MAGIC_SWAPPED
59         ) {
60                 current_label_type = LABEL_DOS;
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 */