-
Notifications
You must be signed in to change notification settings - Fork 31
/
VLM_configuration.h
127 lines (100 loc) · 4.75 KB
/
VLM_configuration.h
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
/* -*- Mode: C; Tab-Width: 4 -*- */
/* Configuration parameters for the VLM:
Defaults can be overridden by either the user's .VLM file or command line arguments */
#ifndef _VLM_CONFIG_
#define _VLM_CONFIG_
#include <sys/types.h>
#include <limits.h>
#include <sys/param.h>
#include "pfilt_wrapper.h"
#include "life_types.h"
/* X window configuration parameters */
typedef struct
{
char *xpHostName; /* Name of host where screen will appear; NULL for local */
long xpHostAddress; /* Protocol address of the above */
int xpDisplay; /* Display number on the host; -1 for default */
int xpScreen; /* Screen number on the host; -1 for default */
int xpInitialState; /* Window's initial state (a WindowInitialState) */
char *xpGeometry; /* X geometry specification for window */
char *xpForegroundColor; /* Name of foreground color */
char *xpBackgroundColor; /* Name of background color */
char *xpBorderColor; /* Name of border color */
int xpBorderWidth; /* Width of border in pixels */
} XParams;
/* Configuration data for a single network interface */
typedef struct NetworkInterface
{
boolean present; /* TRUE => this interface is available */
char device[_POSIX_PATH_MAX+1]; /* Optional interface or packet filter name */
unsigned short myProtocol; /* Primary Ethernet protocol */
struct in_addr myAddress; /* Primary protocol address */
#ifdef GENERA
char myOptions[_POSIX_PATH_MAX+1]; /* Primary network options */
struct NetworkInterface* anotherAddress; /* Secondary address for this interface */
#endif
} NetworkInterface;
#define MaxNetworkInterfaces 8
#define ETHERTYPE_CHAOS 0x0804
/* We'll place the communications area immediately after the BootComm and BootData areas
in "VMA=PMA" space. Those two area occupy 128 (#x80) words starting at #xFFFE0000.
Thus, the communications area will begin at location #xFFFE0080 and can be no more
than #x1FF80 (130944) words. */
#define EmbCommAreaAddress 0xFFFE0080L
#define DefaultEmbCommAreaSize 0x1FF80
#define DefaultHostBufferSpace 15000
#define DefaultGuestBufferSpace 100000
#define DefaultVLMConfigFilePathname "/var/lib/symbolics/.VLM"
#define DefaultVLMDebuggerPathname "/usr/lib/symbolics/VLM_debugger"
#define DefaultGeneraWorldPathname "/usr/lib/symbolics/Genera-8-5.vlod"
#define DefaultMinimaWorldPathname "/usr/lib/symbolics/Minima.mlod"
#define DefaultWorldSearchPath "/var/lib/symbolics:/usr/lib/symbolics"
#define DefaultVirtualMemory "200"
#define MinimumVirtualMemory 125
/* Channel Queue sizes -- Eventually, these could be parameters in the configuration file */
#define DiskQueueSize 32
#define ConsoleInputQueueSize 50
#define ConsoleOutputQueueSize 50
#define NetworkReceiverQueueSize 100 /* was 20, prevents losing so many packets */
#define NetworkTransmitterQueueSize 20
#define RPCHostToGuestQueueSize 15
#define RPCGuestToHostQueueSize 30
#define SCSIQueueSize 10
#define ColdLoadInputQueueSize 100
#define ColdLoadOutputQueueSize 50
#define HostFileCommandQueueSize 5
#define HostFileReplyQueueSize 5
#define CommandQueueSize 5
/* Instruction tracing configuration data */
typedef struct
{
boolean traceP; /* TRUE => Enable instruction tracing */
boolean tracePOST; /* TRUE => Trace the POST test */
int bufferSize; /* Size of circular trace buffer */
unsigned int startPC; /* PC where tracing will start if non-zero */
unsigned int stopPC; /* PC where tracing will stop if non-zero */
char *outputFile; /* Name of file to record full trace */
} TraceConfig;
/* Main configuration data structure */
typedef struct
{
boolean enableSpy; /* TRUE => Enable remote memory spy */
TraceConfig tracing; /* Controls instruction tracing */
size_t commAreaSize; /* Size of communications area in words */
size_t hostBufferSpace; /* Words reserved for host buffers */
size_t guestBufferSpace; /* Words reserved for guest buffers */
char vlmDebuggerPath[_POSIX_PATH_MAX+1]; /* Pathname of VLM debugger to be loaded */
char worldPath[_POSIX_PATH_MAX+1]; /* Pathname of world load to be loaded */
#ifdef GENERA
char* worldSearchPath; /* -> Directories to search for worlds */
boolean enableIDS; /* TRUE => allow incremental disk saves */
size_t virtualMemory; /* Size of emulated virtual memory */
#endif
XParams coldLoadXParams; /* X parameters for cold load window */
XParams generaXParams; /* X Parameters for the main screen */
struct in_addr diagnosticIPAddress; /* IP address of our diagnostic server */
NetworkInterface interfaces[MaxNetworkInterfaces]; /* Network interfaces [8] */
boolean testFunction; /* TRUE => run TESTFCN instead of FIB for POST */
/* Other parameters? */
} VLMConfig;
#endif