File: bootenv.c

package info (click to toggle)
emile 0.10-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,716 kB
  • ctags: 2,737
  • sloc: ansic: 18,908; makefile: 726; asm: 622; sh: 2
file content (51 lines) | stat: -rw-r--r-- 1,457 bytes parent folder | download
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
/*
 *
 * (c) 2005 Laurent Vivier <LaurentVivier@wanadoo.fr>
 *
 */

#include <stdio.h>
#include <string.h>

#include <macos/lowmem.h>
#include <macos/gestalt.h>

#include "arch.h"
#include "vga.h"
#include "bank.h"
#include "bootenv.h"

static char* setenv(char* env, char* variable, unsigned long value)
{
	sprintf(env, "%s=%lu", variable, value);
	env += strlen(env) + 1;
	env[1] = 0;

	return env;
}

void bootenv_init(char* env)
{
	unsigned long videoaddr;
	env = setenv(env, "ROOT_SCSI_ID", 0);
	env = setenv(env, "SINGLE_USER", 0);
	logical2physical(vga_get_videobase(), &videoaddr);
	env = setenv(env, "VIDEO_ADDR", videoaddr);
	env = setenv(env, "ROW_BYTES", vga_get_row_bytes());
	env = setenv(env, "SCREEN_DEPTH", vga_get_depth());
	env = setenv(env, "DIMENSIONS", (vga_get_height() << 16) | vga_get_width());
	env = setenv(env, "BOOTTIME", Time - 2082844800);
	env = setenv(env, "GMTBIAS", gmt_bias);
	env = setenv(env, "BOOTERVER", 111);	/* "1.11.4a4" */
	env = setenv(env, "MACOS_VIDEO", vga_get_video());
	env = setenv(env, "MACOS_SCC", SCCRd);
	env = setenv(env, "MACHINEID", machine_id);
	env = setenv(env, "MEMSIZE", ram_size);
	env = setenv(env, "GRAYBARS", 0);
	env = setenv(env, "SERIALECHO", 0);
	env = setenv(env, "SERIALCONSOLE", 0);
	env = setenv(env, "PROCESSOR",	cpu_type - gestalt68020);
	env = setenv(env, "ROMBASE", (unsigned long)ROMBase);
	env = setenv(env, "TIMEDBRA", TimeDBRA);
	env = setenv(env, "ADBDELAY", TimeVIADB);
}