File: mapfile.h

package info (click to toggle)
chos 0.82-2
  • links: PTS
  • area: non-free
  • in suites: slink
  • size: 1,024 kB
  • ctags: 968
  • sloc: ansic: 4,180; asm: 2,103; tcl: 1,976; makefile: 152; sh: 79
file content (139 lines) | stat: -rw-r--r-- 3,036 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
/*
 * include/mapfile.h
 * 
 * Choose-OS mapfile stuff
 *
 * Copyright (c) Tuomo Valkonen 1996-1998.
 */
#ifndef _MAPFILE_H
#define _MAPFILE_H

#include"chos.h"

#define MF_ENDSECTOR	0xfffffffe
#define MF_NULLSECTOR	0xffffffff
#define MF_NULLEND_HI	0xffff
#define MF_NULL_LOW	0xffff
#define MF_END_LOW	0xfffe

#define MF_NENTS	127
#define MF_SIZEENTS	508
#define MF_NAME_LEN	39
#define MF_NEXT_OFF	508

#define BID_DATA_SIZE	56		// how many bytes 1 image descriptor uses
#define BID_NAME_LEN	40		// image name max len
#define BID_NAME_OFF	0		// offset of image name within it's descriptor 
#define BID_COLOR_OFF	40		// color used to display this
#define BID_HOTKEY_OFF	41		// hotkey
#define BID_X_OFF	42		// x position
#define BID_Y_OFF	43		// y position
#define BID_FLAGS_OFF	44		// flags
#define BID_TYPE_OFF	46		// image type
#define BID_LOADER_OFF	47		// loader nr.
#define BID_DRIV_OFF	48		// bios drive number
#define BID_RWDEV_OFF	49		// mbr rewrite device
#define BID_KEYPRESS_OFF 50
#define BID_ADDR_OFF	52		// linear sector address

#define CF_HOT_HIDDEN	0x10	// don't print hotkey
#define CF_NOPASS	0x20	// Don't use password for this image
#define CF_RESTRICTED	0x40	// Restricted - password is only
								//  asked if command line is specified

// bootsector flags
#define BS_REWRITE		0x01	// rewrite partition table
#define BS_SWAPHD		0x02	// swap hda/hdb
#define BS_SWAPFD		0x04	// swap fd0/fd1
#define BS_DOS4BOOT		0x08	// Tell dos4.0+/ OS/2 to boot off hdb

#define AUTOBOOT_NO		0
#define AUTOBOOT_PRESSED	1
#define AUTOBOOT_NOT_PRESSED	2

#define MAX_LOADERS		4
#define MAX_LOADER_SIZE		7
#define LOADER_SHIFT		5

#define MAX_PASSWD_LEN		31

#ifndef __ASSEMBLY__

 typedef struct{
 	uchar	name[BID_NAME_LEN];
 	uchar	color;
 	uchar	hotkey;
 	uchar	x,y;
 	ushort	flags;
 	uchar	type;
 	uchar	loader;
 	uchar	device;
 	uchar	rewrite_device;
 	ushort	keypress;	//pad2;
 	ulong	addr;
 }MF_ImageDes;
 
 #define MAX_IMAGES	((SECTORSIZE-4)/sizeof(MF_ImageDes))
 
 typedef struct{
 	uchar	drive;
 	uchar	nsects;
 	ushort	_pad1;
 	ulong	sects[MAX_LOADER_SIZE];
 }MF_Loader;
 
 typedef struct{
 	// Header
 	char		unused[2];
 	char		id[3];
 	char		type;
 	char		major,minor;
 	
 	uchar		delay;
 	uchar		nimages;
 	uchar		default_image;
 	uchar		color;
 	
 	uchar		selcolor; 	
 	uchar		autoboot;
 	uchar		singleshot;
 	uchar		nloaders;
 	
 	signed char	timex;
 	signed char	timey;
 	signed char	timestrx;
 	signed char	loady;
 	
 	uchar		map_drive;
 	uchar		bg_drive;
 	ushort		pad;
 	ulong		map_sect1;
 	
 	ulong		bg_sects[8];
 	char		passwd[MAX_PASSWD_LEN+1];
 	MF_Loader	loaders[MAX_LOADERS];
 }MF_HeaderSector;					

 typedef struct{
 	MF_ImageDes 	images[MAX_IMAGES];
 }MF_ImageSector;

 typedef struct{
  	ulong		floppybsect;
 	uchar		device;
	uchar		rd_device;
	ushort		rd_size;	// in sectors
	ulong		rd_load_addr;
	ulong		rd_map;
 	char		cmdline[SECTORSIZE-5*4];
 	ulong		next_map;
 }MF_LinuxFirstSector;

 typedef struct{
 	ulong		sect[MF_NENTS];
 	ulong		next_map;
 }MF_KernelSector;
 
#endif

#endif /* _MAPFILE_H */