3 * configure.in (AC_STRUCT_ST_{BLKSIZE,BLOCKS,RDEV}): Use these
4 macros to determine whether or not the appropriate st_<xxx> fields
5 exist in the stat structure.
6 (AC_CHECK_FUNCS): Check for all unix system calls used, except for
7 the real basic ones like open, read, write, etc.
8 * config{.in,ure}: Regenerate.
10 * emul_netbsd.c: Add support for missing system calls, and/or
12 (MAXPATHLEN): Undefine if including unistd.h, since sys/param.h
15 * hw_pal.c (WITH_STDIO): Redefine if O_NDELAY, F_GETFL, or F_SETFL
17 (scan_hw_pal): Do not cause syntax error if O_NDELAY, F_GETFL, or
22 * emul_netbsd.c (write_stat): Don't convert st_blocks unless the
27 * configure.in (AC_CHECK_HEADERS): Add sys/ioctl.h.
28 * config{.in,ure}: Regenerate.
29 * emul_netbsd.c: If HAVE_SYS_IOCTL_H is not defined, don't include
34 * hw_pal.c (hw_pal_instance_read_callback): Remove unused
37 * misc.c ({,target_}a2i): Rewrite to not use strtoul.
39 * Makefile.in ({spreg,misc}.o): Add dependency on .c file.
40 ({i,d}gen): Don't link in liberity. Use BUILD_LIBS instead of
45 * hw_pal.c (hw_pal_instance_read_callback): If using stdio, use
46 fgets to read line. If not using stdio, do a simple blocking read
51 * Makefile.in: Correctly build simulator for build machine != host
56 * configure.in (--enable-hostendian): Rework so the default uses
57 the AC_C_BIGENDIAN results. Only run AC_C_BIGENDIAN if not cross
59 * configure: Regenerate.
61 * sim-endian.h: Add more tests for host endian to support more
62 platforms in a cross compilation environment.
66 * hw_pal.c ({scan,write}_hw_pal): If WITH_STDIO == DO_USE_STDIO,
67 use stdio, instead of unpended read/printf_filtered.
68 (hw_pal_instance_write_callback): If WITH_STDIO == DO_USE_STDIO,
69 flush stdout after writing the characters.
71 * options.c (print_options): Print out WITH_STDIO.
73 * Makefile.in (STDIO_CFLAGS): Pass on result of @sim_stdio@
74 configuration variable.
75 (CONFIG_CFLAGS): Include STDIO_CFLAGS.
76 (hw.{c,h}): Allow for source dir != build dir, and for HW_SRC
77 files to contain directory pieces.
79 * std-config.h (DO{,NT}_USE_STDIO): New flags for whether we
80 should use stdio for console input.
81 (WITH_STDIO): If not defined, define as DONT_USE_STDIO.
83 * configure.in (--enable-sim-stdio): Add new switch to control
84 whether stdio is used for console I/O.
85 * configure: Regenerate.
87 * interrupts.c (external_interrupt): Declare it to be
88 INLINE_INTERRUPTS, not INLINE_CPU.
92 * events.c (insert_event_entry): Allow events to be scheduled
93 *NOW* (at delta time 0). Add assertions to clarify behavour of
96 * events.c (update_time_from_event): New function. Calculates the
97 number of ticks from the next event. Use this.
101 * emul_netbsd.c (do_break): Return 0 if success (instead of
104 * device_table.c (vm_ioctl_callback): Don't return adjusted break
109 * device_table.h: Change type of the device ioctl so that it
110 returns an int (status).
111 * device.h (device_ioctl): Ditto.
112 * device.c (device_ioctl): Ditto.
114 * device_table.c (stack_ioctl_callback): Return 0 status.
115 (vm_ioctl_callback): Ditto
119 * interrupts.h (interrupts): New structure contains state of
122 * cpu.c (cpu_interrupts): New function. Pending interrupt status
123 in the cpu and grant access to it. Add interrupts to cpu
128 * device.c (device_tree_add_parsed): Check that the creation of a
129 device instance worked before using it.
131 * psim.c (psim_halt): Remove cia argument from psim_halt. This
132 function does not save the CIA so do not pass it in.
136 * hw_pal.c (hw_pal): Merge the halt and icu and console devices
137 found in device_table.c into a single hack pal.
139 * device_table.c (halt, icu, console): Delete.
141 * Makefile.in (hw_pal.o): New dependency.
143 * emul_generic.c (emul_add_tree_hardware): Re-arange device tree
144 so that it uses the pal instead of the icu/halt/console devices.
145 Wire the pal's interrupt ports up to the cpu nodes.
149 * hw_iobus.c (hw_iobus_attach_address_callback): Move from
150 device_table.c to here.
152 * Makefile.in (hw_iobus.o): New dependency.
156 * configure: Regenerate with autoconf 2.9.
160 * device_table.h: Always include string headers.
164 * basics.h: Move the event queue's definition to here so that it
165 can be refered to globally with out importing all of events.h.
167 * psim.h, psim.c (psim_event_queue): New function. Grant access
168 to the simulation event queue. Will make this the single point of
169 access (there is after all only one event queue in the
172 * cpu.c (cpu_create): Use psim_event_queue to obtain the event
173 queue instead of it being passed in. No longer allow access to
174 the cpu's copy of the event queue.
178 * events.h, events.c (event_handler): Remove event_queue from
179 arguments passed to an event handler. That argument is redundant
180 - the `data' should refer to a data structure that contains the
181 event queue if queing is needed.
183 * cpu.c (cpu_decrement_event): adjust
185 * events.c (event_queue_process): adjust
189 * device.h, device.c (device_system): New, returns a handle for
190 the system given the device.
192 * device.c (device_address_init): Store a pointer back to the
193 system in each devices node.
195 * device_table.h: Don't pass `system' into each device when it is
196 being initialized, this is now available using device_system(me).
198 * device.c (device_address_init, device_data_init): Adjust.
200 * hw_cpu.c, hw_nvram.c, hw_memory.c, hw_eeprom.c, device_table.c:
205 * interrupts.c (decrementer_interrupt, external_interrupt):
206 Remember that an interrupt wasn't delivered so that it can be
209 * interrupts.c (check_masked_interrupt): New function. (re)
210 checks for the posibility that a recent change to the MSR may have
211 made it possible to deliver an interrupt that was previously
212 masked be the EE bit.
214 * ppc-instructions (mtmsr, mfmsr, rfi): Check for posibility of
215 a pending interrupt being delivered using check_masked_interrupt().
217 * cpu.c (cpu_decrement_event): Just call decrementer_interrupt()
218 leaving it to that module to handle both interrupt synchronization
221 * cpu.c (struct _cpu): remove variables that were going to record
222 pending decrementer and external interrupts.
226 * hw_cpu.c, hw_cpu.h: New files. Implement a device that sits
227 between the interrupt controller and the simulators internal
228 processor model. Maps device interrupts onto the processor
229 interrupt function calls.
233 * hw_nvram.c: NVRAM device that includes a real-time clock that is
238 * device.h (attach_type): Remove attach_default type address
239 spaces. Will replace with levels of callback memory.
241 * corefile.h, corefile.c (new_core_mapping), corefile.c
242 (core_map_attach): Replace default attach with a layerd callback
247 * device.c (split_property_specifier): ensure that only a single
249 (split_value): New function, parses the value part of a device
252 * device.c (device_tree_add_parsed): Use the interrupt conversion
253 functions to determine the interrupt port numbers.
255 * device_table.h: Add table that maps between an interrupts
256 symbolic name and its port number.
258 * device.h, device.c (device_interrupt_decode,
259 device_interrupt_encode): new functions use the recently added
260 interrupt port name/number tables to perform conversion.
264 * device.h, device.c (device_set_array_property,
265 device_set_boolean_property, device_set_ihandle_property,
266 device_set_integer_property, device_set_string_property): New
267 functions - allow the value of a given property to be changed.
269 * device.h, device.c: Re-order declaration and definition of
274 * device.c (device_tree_print_device, device_tree_add_parsed):
275 Remove references to phandle properties.
279 * device_table.h: Revamp device init callbacks so that they are a
281 * device.c (device_init_data, device_init_address): If an init
282 callback is NULL assume it should do nothing.
283 * device_table.c (ignore_device_init, unimp_device_init): delete
285 * device_table.c, hw_memory.c: adjust.
289 * (device_instance): ditto.
291 * (address nee config_address): ditto.
292 * (interrupt): ditto.
296 * Makefile.in (hw.h, hw.c): New targets. Create from the list of
297 hw_*.c files. hw.h declares a device descriptor table for each hw
298 device while hw.c lists those tables in a form suitable for the
299 construction of a top leveltable in device_table.c.
301 * Makefile.in (device_table.o): now depends on hw.c a generated
304 * device_table.c (device_table): Re-arange the table of devices so
305 that two levels are possible. Make use of hw.c.
306 * device_table.h: ditto.
308 * device.c (device_template_create_device): Handle new two level
310 * device.c (device_usage): ditto.
314 * device_table.c: Delete the memory device (moved to hw_memory.c).
316 * hw_memory.c: New file. Just an OpenBoot memory device.