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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
|
Sun Jun 2 11:21:17 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* emul_unix.{h,c}: New files to provide Solaris and Linux system
call emulations.
* Makefile.in (LIB_{SRC,OBJ}): Add emul_unix.{c,o}.
(os_emul.o): Depend on emul_unix.h.
(emul_unix.o): New dependency.
* configure.in (--enable-sim-alignment): Add 0|default to mean set
alignment to 0, which means use appropriate alignment for mode.
(AC_CHECK_FUNCS): Add new functions needed by emul_unix.c.
(AC_CHECK_HEADERS): Add new include files needed by emul_unix.c.
* config.in: Regenerate.
* configure: Regenerate.
* emul_generic.c (emul_write2_status): New function to return
results in r3 and r4 for Solaris system calls.
(emul_do_system_call): If the system call is not support, but
there is a string for the system call name, print out the string
instead of the system call number.
* emul_generic.h (emul_write2_status): Declare it.
* emul_netbsd.c: Use /* */ around comment on #endif.
* os_emul.c: Include emul_unix.h.
(os_emulations): Add emulations for Solaris, and Linux.
* psim.c (psim_usage): Add message about solaris, linux
emulations.
Fri May 24 10:08:10 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these
macros to determine whether or not the appropriate st_<xxx> fields
exist in the stat structure.
(AC_CHECK_FUNCS): Check for all unix system calls used, except for
the real basic ones like open, read, write, etc.
* config{.in,ure}: Regenerate.
* emul_netbsd.c: Add support for missing system calls, and/or
missing stat fields.
(MAXPATHLEN): Undefine if including unistd.h, since sys/param.h
might define it.
* hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
are not defined.
(scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
F_SETFL not defined.
Tue May 21 17:24:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* emul_netbsd.c (write_stat): Don't convert st_blocks unless the
host is netbsd.
Thu May 16 10:56:45 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h.
* config{.in,ure}: Regenerate.
* emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include
sys/ioctl.h.
Tue May 7 17:28:12 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* hw_pal.c (hw_pal_instance_read_callback): Remove unused
variable.
* misc.c ({,target_}a2i): Rewrite to not use strtoul.
* Makefile.in ({spreg,misc}.o): Add dependency on .c file.
({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of
LIBS.
Mon May 6 11:31:43 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* hw_pal.c (hw_pal_instance_read_callback): If using stdio, use
fgets to read line. If not using stdio, do a simple blocking read
of len bytes.
Fri May 3 15:07:42 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* Makefile.in: Correctly build simulator for build machine != host
machine.
Tue Apr 30 18:46:05 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* configure.in (--enable-hostendian): Rework so the default uses
the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
compiling.
* configure: Regenerate.
* sim-endian.h: Add more tests for host endian to support more
platforms in a cross compilation environment.
Wed Apr 17 14:38:06 1996 Michael Meissner <meissner@tiktok.cygnus.com>
* hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO,
use stdio, instead of unpended read/printf_filtered.
(hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO,
flush stdout after writing the characters.
* options.c (print_options): Print out WITH_STDIO.
* Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@
configuration variable.
(CONFIG_CFLAGS): Include STDIO_CFLAGS.
(hw.{c,h}): Allow for source dir != build dir, and for HW_SRC
files to contain directory pieces.
* std-config.h (DO{,NT}_USE_STDIO): New flags for whether we
should use stdio for console input.
(WITH_STDIO): If not defined, define as DONT_USE_STDIO.
* configure.in (--enable-sim-stdio): Add new switch to control
whether stdio is used for console I/O.
* configure: Regenerate.
* interrupts.c (external_interrupt): Declare it to be
INLINE_INTERRUPTS, not INLINE_CPU.
Mon Apr 15 23:30:56 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* events.c (insert_event_entry): Allow events to be scheduled
*NOW* (at delta time 0). Add assertions to clarify behavour of
event queue.
* events.c (update_time_from_event): New function. Calculates the
number of ticks from the next event. Use this.
Sun Apr 14 21:39:45 1996 Andrew Cagney <cagney@highland.com.au>
* emul_netbsd.c (do_break): Return 0 if success (instead of
adjusted break).
* device_table.c (vm_ioctl_callback): Don't return adjusted break
(isn't needed).
Sun Apr 14 21:32:41 1996 Andrew Cagney <cagney@highland.com.au>
* device_table.h: Change type of the device ioctl so that it
returns an int (status).
* device.h (device_ioctl): Ditto.
* device.c (device_ioctl): Ditto.
* device_table.c (stack_ioctl_callback): Return 0 status.
(vm_ioctl_callback): Ditto
Thu Apr 4 20:58:05 1996 Andrew Cagney <cagney@highland.com.au>
* interrupts.h (interrupts): New structure contains state of
pending interrupts.
* cpu.c (cpu_interrupts): New function. Pending interrupt status
in the cpu and grant access to it. Add interrupts to cpu
structure.
Fri Mar 29 22:09:25 1996 Andrew Cagney <cagney@highland.com.au>
* device.c (device_tree_add_parsed): Check that the creation of a
device instance worked before using it.
* psim.c (psim_halt): Remove cia argument from psim_halt. This
function does not save the CIA so do not pass it in.
Fri Mar 29 21:30:56 1996 Andrew Cagney <cagney@highland.com.au>
* hw_pal.c (hw_pal): Merge the halt and icu and console devices
found in device_table.c into a single hack pal.
* device_table.c (halt, icu, console): Delete.
* Makefile.in (hw_pal.o): New dependency.
* emul_generic.c (emul_add_tree_hardware): Re-arange device tree
so that it uses the pal instead of the icu/halt/console devices.
Wire the pal's interrupt ports up to the cpu nodes.
Fri Mar 29 20:17:17 1996 Andrew Cagney <cagney@highland.com.au>
* hw_iobus.c (hw_iobus_attach_address_callback): Move from
device_table.c to here.
* Makefile.in (hw_iobus.o): New dependency.
Mon Mar 25 22:07:13 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* configure: Regenerate with autoconf 2.9.
Thu Mar 21 00:14:26 1996 Andrew Cagney <cagney@highland.com.au>
* device_table.h: Always include string headers.
Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
* basics.h: Move the event queue's definition to here so that it
can be refered to globally with out importing all of events.h.
* psim.h, psim.c (psim_event_queue): New function. Grant access
to the simulation event queue. Will make this the single point of
access (there is after all only one event queue in the
simulation).
* cpu.c (cpu_create): Use psim_event_queue to obtain the event
queue instead of it being passed in. No longer allow access to
the cpu's copy of the event queue.
Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
* events.h, events.c (event_handler): Remove event_queue from
arguments passed to an event handler. That argument is redundant
- the `data' should refer to a data structure that contains the
event queue if queing is needed.
* cpu.c (cpu_decrement_event): adjust
* events.c (event_queue_process): adjust
Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
* device.h, device.c (device_system): New, returns a handle for
the system given the device.
* device.c (device_address_init): Store a pointer back to the
system in each devices node.
* device_table.h: Don't pass `system' into each device when it is
being initialized, this is now available using device_system(me).
* device.c (device_address_init, device_data_init): Adjust.
* hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
Adjust.
Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
* interrupts.c (decrementer_interrupt, external_interrupt):
Remember that an interrupt wasn't delivered so that it can be
tried again later.
* interrupts.c (check_masked_interrupt): New function. (re)
checks for the posibility that a recent change to the MSR may have
made it possible to deliver an interrupt that was previously
masked be the EE bit.
* ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
a pending interrupt being delivered using check_masked_interrupt().
* cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
leaving it to that module to handle both interrupt synchronization
and masking.
* cpu.c (struct _cpu): remove variables that were going to record
pending decrementer and external interrupts.
Sun Mar 17 22:40:57 1996 Andrew Cagney <cagney@highland.com.au>
* hw_cpu.c, hw_cpu.h: New files. Implement a device that sits
between the interrupt controller and the simulators internal
processor model. Maps device interrupts onto the processor
interrupt function calls.
Mon Mar 4 06:06:54 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* hw_nvram.c: NVRAM device that includes a real-time clock that is
updated each second.
Mon Mar 4 04:18:50 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* device.h (attach_type): Remove attach_default type address
spaces. Will replace with levels of callback memory.
* corefile.h, corefile.c (new_core_mapping), corefile.c
(core_map_attach): Replace default attach with a layerd callback
approach.
Sun Mar 3 03:58:46 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* device.c (split_property_specifier): ensure that only a single
property is found.
(split_value): New function, parses the value part of a device
spec.
* device.c (device_tree_add_parsed): Use the interrupt conversion
functions to determine the interrupt port numbers.
* device_table.h: Add table that maps between an interrupts
symbolic name and its port number.
* device.h, device.c (device_interrupt_decode,
device_interrupt_encode): new functions use the recently added
interrupt port name/number tables to perform conversion.
Sun Mar 3 03:23:59 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* device.h, device.c (device_set_array_property,
device_set_boolean_property, device_set_ihandle_property,
device_set_integer_property, device_set_string_property): New
functions - allow the value of a given property to be changed.
* device.h, device.c: Re-order declaration and definition of
property functions.
Sun Mar 3 03:10:22 1996 Andrew Cagney <cagney@kremvax.highland.com.au>
* device.c (device_tree_print_device, device_tree_add_parsed):
Remove references to phandle properties.
Tue Feb 27 23:59:35 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
* device_table.h: Revamp device init callbacks so that they are a
sub structure.
* device.c (device_init_data, device_init_address): If an init
callback is NULL assume it should do nothing.
* device_table.c (ignore_device_init, unimp_device_init): delete
as redundant.
* device_table.c, hw_memory.c: adjust.
* (io): ditto.
* (dma): ditto.
* (device_instance): ditto.
* (ioctl): ditto.
* (address nee config_address): ditto.
* (interrupt): ditto.
Mon Feb 26 22:47:15 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
* Makefile.in (hw.h, hw.c): New targets. Create from the list of
hw_*.c files. hw.h declares a device descriptor table for each hw
device while hw.c lists those tables in a form suitable for the
construction of a top leveltable in device_table.c.
* Makefile.in (device_table.o): now depends on hw.c a generated
table of hw.
* device_table.c (device_table): Re-arange the table of devices so
that two levels are possible. Make use of hw.c.
* device_table.h: ditto.
* device.c (device_template_create_device): Handle new two level
device lookup table.
* device.c (device_usage): ditto.
Mon Feb 26 22:24:00 1996 Andrew Cagney - aka Noid <cagney@highland.com.au>
* device_table.c: Delete the memory device (moved to hw_memory.c).
* hw_memory.c: New file. Just an OpenBoot memory device.
|