Fixes to autopart.
This commit is contained in:
parent
4f59e540e1
commit
e4b4ec7128
@ -63,7 +63,7 @@ Num Sort Type
|
|||||||
#define arraysize(a) (sizeof(a) / sizeof((a)[0]))
|
#define arraysize(a) (sizeof(a) / sizeof((a)[0]))
|
||||||
#define arraylimit(a) ((a) + arraysize(a))
|
#define arraylimit(a) ((a) + arraysize(a))
|
||||||
|
|
||||||
#define SORNOT(n) ((n) == 1 ? "" : "s")
|
#define SORNOT(n) ((n) == 1 ? " " : "s")
|
||||||
|
|
||||||
int probing = 0, autopartmode = 0;
|
int probing = 0, autopartmode = 0;
|
||||||
|
|
||||||
@ -1826,6 +1826,8 @@ void m_read(int ev, object_t *op)
|
|||||||
|
|
||||||
if(table[i].sysind == NO_PART)
|
if(table[i].sysind == NO_PART)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* Free space before this partition? */
|
||||||
if(table[i].lowsec > free_sec) {
|
if(table[i].lowsec > free_sec) {
|
||||||
/* Free region before this partition. */
|
/* Free region before this partition. */
|
||||||
regions[nr_regions].free_sec_start = free_sec;
|
regions[nr_regions].free_sec_start = free_sec;
|
||||||
@ -1837,6 +1839,7 @@ void m_read(int ev, object_t *op)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Sanity check. */
|
||||||
if(autopartmode && si > 1) {
|
if(autopartmode && si > 1) {
|
||||||
if(table[i].lowsec < table[sort_order[si-1]].lowsec ||
|
if(table[i].lowsec < table[sort_order[si-1]].lowsec ||
|
||||||
table[i].lowsec < table[sort_order[si-1]].lowsec + table[sort_order[si-1]].size) {
|
table[i].lowsec < table[sort_order[si-1]].lowsec + table[sort_order[si-1]].size) {
|
||||||
@ -1846,10 +1849,11 @@ void m_read(int ev, object_t *op)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remember used region. */
|
||||||
memcpy(®ions[nr_regions].used_part, &table[i], sizeof(table[i]));
|
memcpy(®ions[nr_regions].used_part, &table[i], sizeof(table[i]));
|
||||||
free_sec = table[i].lowsec+table[i].size;
|
free_sec = table[i].lowsec+table[i].size;
|
||||||
|
regions[nr_regions].is_used_part = 1;
|
||||||
nr_partitions++;
|
nr_partitions++;
|
||||||
|
|
||||||
nr_regions++;
|
nr_regions++;
|
||||||
used_regions++;
|
used_regions++;
|
||||||
}
|
}
|
||||||
@ -2200,13 +2204,13 @@ prettysizeprint(int kb)
|
|||||||
unit = 'G';
|
unit = 'G';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sprintf(str, "%d %cB%s", kb, unit,
|
sprintf(str, "%4d %cB%s", kb, unit,
|
||||||
toosmall ? " - too small for MINIX3" : "");
|
toosmall ? " - too small for MINIX3" : "");
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
printregions(region_t *theregions, int indent, int p_nr_partitions, int p_free_regions, int p_nr_regions)
|
printregions(region_t *theregions, int indent, int p_nr_partitions, int p_free_regions, int p_nr_regions, int numbers)
|
||||||
{
|
{
|
||||||
int r, nofree = 0;
|
int r, nofree = 0;
|
||||||
region_t *reg;
|
region_t *reg;
|
||||||
@ -2221,11 +2225,15 @@ printregions(region_t *theregions, int indent, int p_nr_partitions, int p_free_r
|
|||||||
name = typ2txt(reg->used_part.sysind);
|
name = typ2txt(reg->used_part.sysind);
|
||||||
if(!name || strlen(name) < 2)
|
if(!name || strlen(name) < 2)
|
||||||
name = "unknown system";
|
name = "unknown system";
|
||||||
printf("%*s\033[31m%2d. in use by %s", indent, "", r, name);
|
printf("%*s\033[31m", indent, "");
|
||||||
|
if(numbers) printf("%2d. ", r);
|
||||||
|
printf("In use by %-10s ", name);
|
||||||
units = reg->used_part.size / 2;
|
units = reg->used_part.size / 2;
|
||||||
printf("\033[0m (%s)\n", prettysizeprint(units));
|
printf("\033[0m (%s)\n", prettysizeprint(units));
|
||||||
} else if(!nofree) {
|
} else if(!nofree) {
|
||||||
printf("%*s\033[36m%2d. free space", indent, "", r);
|
printf("%*s\033[36m", indent, "");
|
||||||
|
if(numbers) printf("%2d. ", r);
|
||||||
|
printf("Free space ");
|
||||||
units = ((reg->free_sec_last - reg->free_sec_start+1))/2;
|
units = ((reg->free_sec_last - reg->free_sec_start+1))/2;
|
||||||
printf("\033[0m (%s)\n", prettysizeprint(units));
|
printf("\033[0m (%s)\n", prettysizeprint(units));
|
||||||
}
|
}
|
||||||
@ -2262,7 +2270,7 @@ select_region(void)
|
|||||||
do {
|
do {
|
||||||
printf("\nI've found the following region%s on this disk (%s).\n\n",
|
printf("\nI've found the following region%s on this disk (%s).\n\n",
|
||||||
SORNOT(nr_regions), prettysizeprint(table[0].size/2));
|
SORNOT(nr_regions), prettysizeprint(table[0].size/2));
|
||||||
printregions(regions, 0, nr_partitions, free_regions, nr_regions);
|
printregions(regions, 0, nr_partitions, free_regions, nr_regions, 1);
|
||||||
|
|
||||||
if(nofree) {
|
if(nofree) {
|
||||||
printf("\nOnly the expert mode can free a slot to use the free space.\n");
|
printf("\nOnly the expert mode can free a slot to use the free space.\n");
|
||||||
@ -2345,7 +2353,7 @@ select_disk(void)
|
|||||||
|
|
||||||
printf("\nProbing done; %d drive%s found.\n", drives, SORNOT(drives));
|
printf("\nProbing done; %d drive%s found.\n", drives, SORNOT(drives));
|
||||||
|
|
||||||
printf("\nI've found the following drive%s on your system.\n\n", SORNOT(drives));
|
printf("\nI've found the following drive%s on your system.\n", SORNOT(drives));
|
||||||
|
|
||||||
for(i = 0; i < drives; i++) {
|
for(i = 0; i < drives; i++) {
|
||||||
if(drives > 1)
|
if(drives > 1)
|
||||||
@ -2358,13 +2366,11 @@ select_disk(void)
|
|||||||
printf(", %d unallocated one%s ",
|
printf(", %d unallocated one%s ",
|
||||||
devices[i].free_regions, SORNOT(devices[i].free_regions));
|
devices[i].free_regions, SORNOT(devices[i].free_regions));
|
||||||
}
|
}
|
||||||
printf(" (%s)\n\n", prettysizeprint(devices[i].sectors/2));
|
printf(" (%s)\n", prettysizeprint(devices[i].sectors/2));
|
||||||
printf("regions :%d %d %d\n",
|
|
||||||
i, devices[i].nr_partitions, devices[i].free_regions);
|
|
||||||
printregions(devices[i].regions, 8,
|
printregions(devices[i].regions, 8,
|
||||||
devices[i].nr_partitions,
|
devices[i].nr_partitions,
|
||||||
devices[i].free_regions,
|
devices[i].free_regions,
|
||||||
devices[i].nr_regions);
|
devices[i].nr_regions, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(drives > 1) {
|
if(drives > 1) {
|
||||||
@ -2593,7 +2599,7 @@ int main(int argc, char **argv)
|
|||||||
argv++;
|
argv++;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i= 1; i < argc; i++) newdevice(argv[i], 0, 0);
|
for (i= 0; i < argc; i++) newdevice(argv[i], 0, 0);
|
||||||
|
|
||||||
if (firstdev == nil) {
|
if (firstdev == nil) {
|
||||||
getdevices(autopart);
|
getdevices(autopart);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user