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