[comp.os.minix] More for the fsck confusion :-)

cagney@chook.ua.oz (Andrew Cagney - aka Noid) (11/14/89)

Just to add to the discussion of fsck partition numbers. Below is an
extract of the code for a version of fsck that was posted several
years ago. The routine supplied was dpl_entry. In the code minix
has been given a partition number of 0x40.

					Andrew Cagney.

Disclaimer: I don't know about any of the other codes.

dpl_entry(number,d_entry)
int	number;
struct	part_entry	*d_entry;
{
	int	low_cyl,high_cyl,temp;
	char	*typestring= NULL;
	char	active;

	switch(d_entry->sysind) {
		case 0x01:
			typestring = "DOS 2.XX";
			break;
		case 0x04:
			typestring = "DOS 3.XX";
			break;
		case 0x05:
			typestring = "DOS (5) ";
			break;
		case 0x06:
			typestring = "DOS (6) ";
			break;
		case 0x51:
			typestring = "DOS R/W ";
			break;
		case 0x50:
			typestring = "DOS Read";
			break;
		case 0x02:
			typestring = "XENIX(2)";
			break;
		case 0x03:
			typestring = "XENIX(3)";
			break;
		case 0x75:
			typestring = "PCIX    ";
			break;
		case 0x40:
			typestring = "MINIX FS";
			break;
		case 0x00:
			typestring = "(BLANK) ";
			break;
		default:
			typestring = "Unknown ";
		}
	printf("%5d         %s ",number,typestring);
	temp = d_entry->start_sec & 0xc0;
	low_cyl = (d_entry->start_cyl & 0xff) + (temp << 2);
	temp = d_entry->last_sec & 0xc0;
	high_cyl = (d_entry->last_cyl & 0xff) + (temp << 2);
	printf("%4d  %4d",low_cyl,high_cyl);
	if ((d_entry->bootind & 0xff) == 0x80)
		active = 'A';
	else
		active = 'N';
	printf("     %c\n",active);
}