OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [kernel/] [current/] [ChangeLog] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
2012-03-06  Grant Edwards 
2
 
3
        * src/intr/intr.cxx (attach): Fix compiler warning about unused
4
        variable. [ Bugzilla 1001505 ]
5
 
6
2011-07-09  Ilija Kocho  
7
 
8
        * tests/bin_sem2.cxx (PHILOSOPHERS):
9
        * tests/fptest.cx (TEST_NA):
10
        * tests/kmutex3.c (NTHREADS):
11
        * tests/kmutex4.c (NTHREADS):
12
        * tests/mutex3.cxx (NTHREADS):
13
        * tests/thread_gdb.c (NTHREADS):
14
        * tests/timeslice.c (NTHREADS_MAX):
15
        * tests/timeslice2.c (NTHREADS_MAX):
16
        * tests/tm_basic.cxx (NTEST_THREADS): Given a chance to compile and
17
        run more tests for low memory footprint targets. [ Bugzilla 1001253 ]
18
 
19
2010-11-22  Andrew Lunn  
20
 
21
        * tests/intr0.cxx (intr0_main): Fix a compiler warning by changing
22
        a CHECK() statement.
23
 
24
2010-03-29  Lars Povlsen  
25
 
26
        * src/common/thread.cxx: Add volatile to idle_thread_loops for use with
27
        cpuload package and GCC 4.
28
 
29
2010-02-25  John Dallaway  
30
 
31
        * doc/kernel.sgml: Indicate that cyg_alarm_initialize() takes an
32
        absolute trigger value. Issue reported by Grant Edwards.
33
        * cdl/kernel.cdl: Reference the kernel instrumentation documentation.
34
 
35
2010-01-27  John Dallaway  
36
 
37
        * include/instrmnt.h: Add instrumentation macros for event flags and
38
        the bitmap scheduler.
39
        * include/instrument_desc.h: Regenerate.
40
        * src/sync/flag.cxx, src/sched/bitmap.cxx: Add instrumentation.
41
        * cdl/instrument.cdl: Add CYGDBG_KERNEL_INSTRUMENT_FLAG and
42
        CYGDBG_KERNEL_INSTRUMENT_BITMAP options.
43
 
44
2009-10-04  John Dallaway  
45
 
46
        * cdl/instrument.cdl: Add CYGDBG_KERNEL_INSTRUMENT_MLQ option. Issue
47
        reported by Pieter-Jan Busschaert.
48
 
49
2009-08-24  John Dallaway  
50
 
51
        * doc/kernel.sgml: Use "reinterpret_cast" throughout the C++ thread
52
        entry point example. [ Bugzilla 1000550 ]
53
 
54
2009-05-14  John Dallaway  
55
 
56
        * src/common/thread.cxx: Use the Cyg_Scheduler::get_current_thread()
57
        convenience function when instrumenting thread events. Bug reported
58
        by Pieter-Jan Busschaert.
59
 
60
2008-12-18  Jonathan Larmour  
61
 
62
        * tests/tm_basic.cxx (STACK_SIZE): Revert accidental change of
63
        stack size back to CYGNUM_HAL_STACK_SIZE_MINIMUM. Changed by
64
        accident at same time as change below of 2006-12-08.
65
 
66
2008-11-18  Sergei Gavrikov  
67
 
68
        * tests/tm_basic.cxx (max): Actually the meaning was right before,
69
        it was just the name that was wrong. So revert below, and change
70
        name to min.
71
 
72
2008-11-14  Jonathan Larmour  
73
 
74
        * tests/tm_basic.cxx (max): Was wrong way round. Resolves issue
75
        1000636.
76
 
77
2008-07-24  Jonathan Larmour  
78
 
79
        * include/thread.inl: Silence some warnings by assigning
80
        string literals to const char *, not char *.
81
 
82
2007-08-23  Hans Rosenfeld  
83
 
84
        * tests/intr0.cxx, tests/kintr0.c: As suggested by Bart Veer,
85
        priorities of the interrupts created by intr0 and kintr0 can now
86
        be overridden by the HAL through HAL_INTR_TEST_PRIO_x constants.
87
 
88
2007-07-02  Gary Thomas  
89
 
90
        * src/debug/dbg_gdb.cxx:
91
        * src/common/thread.cxx (Cyg_IdleThread): Add (char *) casts
92
        to make GCC/4.2.x happy.
93
 
94
2007-06-11  Nick Garnett  
95
 
96
        * tests/klock.c (entry0, entry1): Modify mbox part of test to
97
        reflect use of plain mbox implementation. The precise ordering of
98
        events is slightly different.
99
 
100
2007-01-07  Andrew Lunn  
101
 
102
        * src/sync/mbox.cxx (Cyg_Mbox::get): Fix compiler warning with gcc
103
        version 4.1.2.
104
 
105
2006-12-08  Nick Garnett  
106
 
107
        * src/sched/mlqueue.cxx (add_thread, yield):
108
        * src/sched/sched.cxx (unlock_inner, thread_entry):
109
        * include/mlqueue.hxx (class Cyg_SchedThread_Implementation):
110
        * include/kapidata.h (CYG_SCHEDTHREAD_TIMESLICE_MEMBER):
111
        * include/bitmap.hxx (class Cyg_SchedThread_Implementation):
112
        Reimplement timeslicing code. There is now a timeslice_count field
113
        in each thread which is moved to and from the per-CPU counter
114
        during thread dispatch. This approach has been taken to minimize
115
        the changes needed to SMP code. Scheduler specific thread
116
        functions handle counter save, restore and reset. These functions
117
        are defined (as empty inlines) even when timeslicing is disabled,
118
        or in non-timeslicing schedulers, to avoid adding ifdefs to the
119
        code (this change actually removes some).
120
 
121
        * tests/timeslice2.c:
122
        * cdl/kernel.cdl: Added timeslice2 test to test behaviour of
123
        timeslicing while being preempted.
124
 
125
2006-10-12  Nick Garnett  
126
 
127
        * cdl/synch.cdl: Added CYGIMP_MBOX_USE_MBOXT_PLAIN option. This is
128
        tested in various places but was not actually defined. It now is
129
        and defaults to 1 so that the plain version of mail boxes is
130
        selected.
131
 
132
        * include/mboxt.inl:
133
        * include/mboxt2.inl: Moved various CYG_ASSERTCLASS() calls to be
134
        within scheduler locked regions. Race conditions could have caused
135
        them to fail before.
136
 
137
        * tests/mbox1.cxx:
138
        * tests/kmbox1.cxx: Updated tests to work with mboxt
139
        implementation. This requires thread 1 to run at lower priority
140
        than thread 0.
141
 
142
2006-08-21  Jonathan Larmour  
143
 
144
        * doc/kernel.sgml: Use reinterpret_cast, not static cast
145
        Thanks to Tony Garland for the report in bug 1000299.
146
 
147
2006-05-19  Andrew Lunn  
148
 
149
        * host/instr/dump_instr.c: Use CYG_NELEM from infra.
150
        * src/instrmnt/meminst.cxx: Use CYG_NELEM from infra.
151
 
152
2006-05-09  Andrew Lunn  
153
 
154
        * tests/stress_threads.c: Add string.h to avoid compiler warning.
155
 
156
2006-04-11  Sergei Organov 
157
 
158
        * doc/kernel.sgml: Fix typo
159
 
160
2006-04-10  Sergei Organov  
161
 
162
        Implement FIFO variant of scheduling of DSRs and make it the
163
        default. This is reworked patch originally suggested by Stefan
164
        Sommerfeld .
165
 
166
        * cdl/interrupts.cdl (CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST): make it
167
        cdl_component.
168
        * cdl/interrupts.cdl (CYGSEM_KERNEL_INTERRUPTS_DSRS_LIST_FIFO):
169
        new option for CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST.
170
        * include/intr.hxx (class Cyg_Interrupt): new static variable
171
        dsr_list_tail.
172
        * src/intr/intr.cxx (call_pending_DSRs_inner): add
173
        CYGSEM_KERNEL_INTERRUPTS_DSRS_LIST_FIFO variant.
174
        (post_dsr): likewise.
175
        * tests/intr0.cxx: fix comments to match actual option names.
176
        * tests/kintr0.c: likewise.
177
 
178
2006-03-27  Marco Cruz  
179
 
180
        * include/thread.hxx: removed extra qualifier of
181
        Cyg_Thread::reinitialize() to permit compile on gcc 4.1.0
182
        * include/sched.hxx: removed extra qualifier of
183
        Cyg_Scheduler::thread_entry to permit compile on gcc 4.1.0
184
 
185
2006-02-14  Andrew Lunn  
186
 
187
        * tests/timeslice.c  (STACK_SIZE): Reduce the stack size so it will
188
        compile on targets wit h only small amounts of RAM.
189
        * tests/fptest.c: Calculate the size of ftp2_values array to fit
190
        the amount of RAM in small systems.
191
        * tests/clocktruth.cxx: Fix the header.
192
 
193
2006-01-19  Nick Garnett  
194
 
195
        * src/sched/sched.cxx (thread_entry): Fixed a bug which could
196
        cause a thread to be started with a non-zero scheduler lock. The
197
        previous code only decremented it by 1 so if the previous thread
198
        was executing with the lock > 1 the thread ended up with a
199
        non-zero lock. This is fixed by decrementing the lock in a loop
200
        until it reaches zero.
201
 
202
        * src/common/thread.cxx (idle_thread_main): Added an assert for a
203
        non-zero scheduler lock.
204
 
205
2006-01-10  Nick Garnett  
206
 
207
        * src/sched/sched.cxx:
208
        * include/sched.hxx (class Cyg_Scheduler): Added thread_entry()
209
        member function. This handles thread startup housekeeping. Zeroing
210
        the scheduler lock is handled by calling unlock() so that DSRs may
211
        be run.
212
 
213
        * src/common/thread.cxx (thread_entry): Refactored code to call
214
        Cyg_Scheduler::thread_entry() instead of doing all the work here.
215
 
216
2005-11-23  Sergei Organov  
217
 
218
        * doc/kernel.sgml: Fix description of CYG_ISR_CALL_DSR and
219
        CYG_ISR_HANDLED. Fix example isr_function() accordingly.
220
 
221
2005-10-23  Andrew Lunn  
222
 
223
        * include/flag.hxx: We need thread.inl for the empty() function
224
        implementation which the compiler wants to inline.
225
 
226
2005-08-03  Andrew Lunn  
227
 
228
        * tests/ksem1.c: Type fix to fix a compiler warning.
229
        * tests/mutex3.cxx: new cannot be both static and global.
230
        * tests/testaux.hxx: Ditto
231
 
232
2005-07-30  Andrew Lunn  
233
 
234
        * src/sync/mbox.cxx (tryget,peak_item): initialize local variable
235
        to avoid compiler warning.
236
 
237
2005-06-21  Peter Korsgaard  
238
 
239
        * tests/kcache2.c (test_dcache_operation): Fixed compiler warnings
240
        about formats strings for diag_printf.
241
 
242
2005-03-27  Andrew Lunn  
243
 
244
        * tests/tm_basic.cxx (_run_all_tests): Fixed compiler warning.
245
 
246
2004-12-15  Sergei Organov 
247
 
248
        * cdl/scheduler.cdl: Correct the description of
249
        CYGIMP_KERNEL_SCHED_SORTED_QUEUES
250
 
251
2004-09-24  Nick Garnett  
252
 
253
        * src/sched/mlqueue.cxx (enqueue): Fix bug in sorted queue
254
        insertion: priority test was inverted. Spotted by TomChen.
255
 
256
2004-08-08  Bart Veer  
257
 
258
        * cdl/counters.cdl: add new option for the clock interrupt
259
        priority.
260
 
261
        * src/common/clock.cxx (Cyg_RealTimeClock): use this option.
262
 
263
2004-04-15  Jonathan Larmour  
264
 
265
        * tests/fptest.c (do_test): Silence aliasing warning when breaking
266
        doubles into two ints.
267
 
268
2004-04-11  Andrew Lunn  
269
 
270
        * doc/kernel.sgml: Expanded the documentation about the use of
271
        CYG_FLAG_WAITMODE_CLR.
272
 
273
2004-03-27  Sebastien Couret    
274
 
275
        * src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt): Only
276
        needed if CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT is enabled.
277
 
278
2004-03-12  Jonathan Larmour  
279
 
280
        * include/kapi.h: Add throw specifications throughout.
281
        * src/kapi.cxx: Ditto.
282
        * include/sched.inl: Move include of thread.inl further down to
283
        allow Cyg_Scheduler inlines to be defined first.
284
        * include/thread.inl: Reorder destructors section and include
285
        sched.inl right before it to solve mutual header dependency
286
        problems.
287
 
288
2004-03-04  Jonathan Larmour  
289
 
290
        * doc/kernel.sgml: Document cyg_thread_delete return value.
291
 
292
2004-02-19  Jonathan Larmour  
293
 
294
        * tests/kmutex3.c (cyg_start): Use CYG_TEST_NA.
295
        * tests/kmutex4.c (cyg_start): Ditto.
296
        * tests/mutex2.cxx (cyg_start): Ditto.
297
        * tests/mutex3.cxx (cyg_start): Ditto.
298
        * tests/sync3.cxx (cyg_start): Ditto.
299
        * tests/thread2.cxx (cyg_start): Ditto.
300
 
301
        * tests/fptest.c (cyg_start): Use one line NA msg.
302
        * tests/smp.cxx (cyg_start): Ditto.
303
        * tests/timeslice.c (cyg_start): Ditto.
304
        * tests/tm_basic.cxx (cyg_start): Ditto.
305
 
306
2003-12-08  Dan Jakubiec  
307
 
308
        * src/common/kapi.cxx: Added new function cyg_thread_get_id().
309
        This function returns the unique thread ID for a given thread
310
        handle.
311
 
312
        * include/kapi.h: Added function prototype for cyg_thread_get_id().
313
 
314
        * doc/kernel.sgml: Added documentation for cyg_thread_get_id().
315
 
316
2003-10-13  Nick Garnett  
317
 
318
        * src/common/clock.cxx (Cyg_Counter::tick): Changed code to deal
319
        with manipulation of unsorted lists (see ChangeLogs passim). There
320
        are several corner cases where the current code does not
321
        work. Replaced with a more straightforward, but slightly more
322
        expensive, implementation.
323
 
324
2003-09-22  Reinhard Jessich  
325
 
326
        * src/common/clock.cxx: Removed label/goto
327
        add_alarm_unlock_return to get rid of compiler error when
328
        CYGIMP_KERNEL_COUNTERS_SORT_LIST is enabled.
329
 
330
2003-09-01  Bart Veer  
331
 
332
        * doc/kernel.sgml: fix typo, cyg_thread vs. cyg_thread_t
333
 
334
2003-07-18  Nick Garnett  
335
 
336
        * cdl/counters.cdl: Removed the counters override CDL
337
        options. These are no longer very useful, since too much
338
        non-kernel code now uses the HAL options to get these values.
339
 
340
2003-07-10  Nick Garnett  
341
 
342
        * src/common/clock.cxx (Cyg_Counter::tick): In unsorted list case:
343
        moved saving of next node details to before re-insertion of alarms
344
        with intervals. The call to add_alarm() can make enough of a
345
        difference to the list to need to force a rescan.
346
 
347
2003-07-06  Bart Veer  
348
 
349
        * include/test/stackmon.h (cyg_test_size_a_stack):
350
        If stack checking is enabled, look for 0xdeadbeef rather than 0x0
351
        to determine usage. Also reset the interrupt stack to that value.
352
 
353
2003-07-02  Jonathan Larmour  
354
 
355
        * doc/kernel.sgml: Document that timeouts for timed functions are
356
        absolute, not relative. Also document new semantics for
357
        cyg_semaphore_timed_wait() for timeouts in the past.
358
 
359
2003-07-01  Nick Garnett  
360
 
361
        * include/clock.hxx: Made Cyg_Counter::add_alarm() and
362
        Cyg_Counter::rem_alarm() private functions. They no longer lock
363
        the scheduler, so should not be called directly, only via the
364
        Cyg_Alarm functions.
365
 
366
        * include/clock.inl: Removed inline version of
367
        Cyg_Alarm::disable(). It's no longer a one-liner and is thus
368
        better as a proper function.
369
 
370
        * src/common/clock.cxx (Cyg_Counter::tick): Rewrote the unsorted
371
        list option. If the function of one alarm adds or removes other
372
        alarms, then is was possible for the list to become corrupted. The
373
        new implementation attempts to avoid this problem.
374
        (Cyg_Alarm::initialize): Added scheduler locking to protect the
375
        enabled flag.
376
        (Cyg_Alarm::enable): Ditto.
377
        (Cyg_Alarm::disable): Ditto. Moved here from clock.inl.
378
        (Cyg_Alarm::add_alarm): Removed scheduler locking, it is now
379
        always called from functions that have already locked it. Added an
380
        assertion to double-check this.
381
        (Cyg_Alarm::rem_alarm): Ditto.
382
 
383
        * cdl/kernel.cdl:
384
        * tests/kalarm0.c:
385
        Added new test to test that alarms can be added and removed in
386
        alarm functions safely.
387
 
388
2003-06-25  Thomas Binder  
389
 
390
        * src/common/clock.cxx (Cyg_Counter::rem_alarm): Bugfix: call
391
        Cyg_Scheduler::lock() before calculation of index into alarm_list
392
        array to avoid race condition with multi list counters.
393
 
394
2003-06-06  David Brennan  
395
2003-06-23  Nick Garnett  
396
 
397
        * cdl/kernel.cdl: Added tests/bin_sem3 to list of kernel tests.
398
 
399
        * include/sema.hxx: Added declaration for wait with timeout for
400
        Cyg_Binary_Semaphore.
401
 
402
        * include/instrmnt.h: Added instrumentation point for binary semaphore
403
        timeout.
404
 
405
        * src/sync/bin_sem.cxx: Added wait with time-out function to
406
        Cyg_Binary_Semaphore class.
407
 
408
        * src/sync/cnt_sem.cxx: Modified semantics slightly to claim an
409
        available semaphore even with a timeout in the past. This is in
410
        line with the new timed wait in bin_sem.cxx.
411
 
412
        * tests/bin_sem3.cxx: Created new test for timed wait binary
413
        semaphore.
414
 
415
2003-05-20  Andrew Lunn  
416
 
417
        * src/common/kapi.cxx (cyg_thread_get_next): Passing a *current
418
        pointer as NULL if how you start the walk of the linked list. So
419
        don't assert on NULL. Reported by Daniel Lidsten.
420
 
421
2003-05-05  Gary Thomas  
422
 
423
        * tests/tm_basic.cxx: Support new option controlling number of times
424
        this test runs.  This is useful for long-term stress and performance
425
        analysis.
426
 
427
2003-05-03  Jonathan Larmour  
428
 
429
        * include/mqueue.inl (Cyg_Mqueue::get): Fix invalid loop termination
430
        cheque for whether busy or not.
431
        (Cyg_Mqueue::put): Ditto.
432
 
433
2003-03-03  Jonathan Larmour  
434
 
435
        * tests/fptest.c: Make all variables static to avoid any risk
436
        of collisions with symbols defined elsewhere in eCos.
437
 
438
2003-02-27  Jonathan Larmour  
439
 
440
        * include/kapidata.h: Revert change of 2001-08-23 and instead make
441
        it conditional on the GCC version. Also add comments explaining why
442
        this file has been apparently obfuscated.
443
 
444
2003-02-25  Nick Garnett  
445
 
446
        * tests/fptest.c (alarm_fn): Added CYG_TEST_PASS() call to keep
447
        configtool happy.
448
 
449
2003-02-24  Jonathan Larmour  
450
 
451
        * cdl/kernel.cdl: Update doc links.
452
        * cdl/synch.cdl: Ditto.
453
        * cdl/thread.cdl: Ditto.
454
 
455
2003-02-19  Nick Garnett  
456
 
457
        * tests/fptest.c: Changed to run for a constant time rather than a
458
        constant number of iterations, with a shorter run time for
459
        simulated targets.
460
 
461
2003-02-10  Gary Thomas  
462
 
463
        * include/thread.inl: Add more debug info to thread stack checking.
464
 
465
        * tests/clocktruth.cxx:
466
        * tests/clockcnv.cxx: Use  for diag_printf()
467
        prototype, rather than hard coding (because it was inconsistent).
468
 
469
2003-02-05  Gary Thomas  
470
 
471
        * tests/kcache2.c (test_dcache_operation): New test to verify
472
        that the DATA cache syncs properly.
473
 
474
2003-01-31  Nick Garnett  
475
 
476
        * cdl/kernel.cdl:
477
        * tests/fptest.c: Added this program to test interaction of FPU
478
        with multiple threads.
479
 
480
2003-01-30  Jonathan Larmour  
481
 
482
        * src/common/thread.cxx: Fix potential warning and overflow with
483
        CYGNUM_KERNEL_THREADS_DATA_MAX == 32.
484
 
485
2003-01-28  Jonathan Larmour  
486
 
487
        * src/common/kapi.cxx (cyg_thread_get_next): Be quite zealous about
488
        checking the validity of passed in threads in debug mode.
489
        (cyg_thread_get_info): Ditto.
490
 
491
        * cdl/thread.cdl: Correct max legal value for
492
        CYGNUM_KERNEL_THREADS_DATA_MAX.
493
 
494
2003-01-22  Jonathan Larmour  
495
 
496
        * doc/kernel.sgml: Document cyg_thread_info type.
497
 
498
2003-01-13  Dmitriy Korovkin  
499
2003-01-13  Jonathan Larmour  
500
 
501
        * include/mqueue.hxx: Allow get/put to return time out.
502
        * include mqueue.inl: Ditto.
503
 
504
2003-01-02  Gary Thomas  
505
 
506
        * tests/kcache2.c: New subtest for raw data cache operations.
507
 
508
2002-12-12  Nick Garnett  
509
 
510
        * src/common/kapi.cxx:
511
        * include/kapi.h:
512
        Added function cyg_thread_get_next(), cyg_thread_find() and
513
        cyg_thread_get_info() to allow the current set of threads to be
514
        enumerated, and per-thread information to be retrieved safely.
515
 
516
        * doc/kernel.sgml: Documented new KAPI calls.
517
 
518
        * src/common/thread.cxx: Zero unique_id in thread destructor so
519
        that a stale thread pointer can be checked for validity.
520
 
521
        * include/instrmnt.h:
522
        Added cyg_instrument_state() to report the current state of an
523
        instrumentation flag.
524
        Moved ifdef for CYGDBG_KERNEL_INSTRUMENT_MSGS out of within FLAGS
525
        ifdef. We can have messages without flags.
526
 
527
        * src/instrmnt/meminst.cxx:
528
        Added cyg_instrument_state() to report the current state of an
529
        instrumentation flag.
530
        Modified cyg_instrument_msg() in line with header and table
531
        changes.
532
 
533
        * host/instr/dump_instr.c:
534
        * host/instr/instrument.sh:
535
        * include/instrument_desc.h:
536
        Added a final NULL element to the generated table in
537
        instrument_desc.h to mark its end. Otherwise code that does not
538
        have access to the table definition cannot find its end. Also
539
        added ifdefs to allow instrument_desc.h to be used to acquire the
540
        structure definition and table pointer.
541
 
542
2002-12-03  Gary Thomas  
543
 
544
        * tests/tm_basic.cxx: Add tests of 'flag' synchronizers.
545
 
546
2002-10-28  Andrew Lunn  
547
 
548
        * tests/tm_basic.cxx: Include infra/diag.h and removed the
549
        incorrect prototype for diag_printf
550
 
551
2002-10-16  Gary Thomas  
552
 
553
        * include/test/stackmon.h (STACKMON_PRINTF): Use #include to get
554
        prototype for 'diag_printf()'.
555
 
556
2002-10-01  Jonathan Larmour  
557
 
558
        * src/common/clock.cxx (add_alarm): Tweak last change to allow
559
        alarm order for identical alarms to be the same as it used to be.
560
 
561
2002-09-30  Jonathan Larmour  
562
 
563
        * src/common/clock.cxx (add_alarm): Fix bug resulting in alarms
564
        not being added at all if a lower triggered alarm already exists.
565
        Reported by Christoph Csebits.
566
        Also fix bug when alarm is entered for the same time as tail.
567
        These bugs only apply for CYGIMP_KERNEL_COUNTERS_SORT_LIST enabled.
568
 
569
        * doc/kernel.sgml: document that order of callback for alarms at
570
        identical times is unspecified.
571
 
572
2002-08-08  Nick Garnett  
573
 
574
        * src/sched/sched.cxx (unlock_inner): Removed initial
575
        assertion. This has served its purpose and with the introduction
576
        of routines such as unlock_reschedule() is prone to firing in
577
        otherwise benign circumstances.
578
 
579
2002-08-05  Bart Veer  
580
 
581
        * cdl/kernel.cdl, include/kapidata.h, include/kapi.h:
582
        Allow configurations with the kernel but no malloc
583
 
584
2002-06-05  Gary Thomas  
585
 
586
        * include/kapi.h: Fix prototype (to allow builds with net stack).
587
 
588
2002-05-24  Jesper Skov  
589
 
590
        * cdl/kernel.cdl: Fix typo.
591
 
592
2002-05-23  Jonathan Larmour  
593
 
594
        * include/kapi.h: Expose new cyg_thread_add_destructor and
595
        cyg_thread_rem_destructor APIs.
596
 
597
        * include/kapidata.h (struct Cyg_Destructor_Entry):
598
        Change CYG_ADDRWORD to more correct cyg_addrword_t.
599
 
600
        * include/thread.hxx (class Cyg_Thread): add_destructor and
601
        rem_destructor are onyl static when not per-thread.
602
 
603
        * include/thread.inl (add_destructor): Don't need to lock and unlock
604
        scheduler when destructors are per-thread.
605
        (rem_destructor): Ditto.
606
 
607
        * src/common/thread.cxx (exit): No need to lock scheduler when
608
        calling destructors.
609
 
610
        * doc/kernel.sgml: Document thread destructor API.
611
 
612
2002-05-23  Nick Garnett  
613
 
614
        * doc/kernel.sgml: Some more edits to the kernel documentation:
615
        changed all references to message boxes to mail boxes, clarified
616
        some thing in various places, fixed a few typos.
617
 
618
2002-05-23  Jesper Skov  
619
 
620
        * cdl/kernel.cdl: Cleaned up kernel tests rule. Also remove tests
621
        depending on the C API when its not present. And skip dhrystone
622
        test when debug or instrumentation is enabled.
623
 
624
        * tests/tm_basic.cxx: Fixed warning.
625
 
626
2002-05-22  Nick Garnett  
627
 
628
        * doc/kernel.sgml:
629
        Fixed up SMP documentation.
630
        Rewrote condtion variable documentation to make its relationship
631
        to mutexes more apparent.
632
 
633
2002-05-22  Jesper Skov  
634
 
635
        * tests/smp.cxx: Move inclusion of testaux.hxx to below NA
636
        checks.
637
 
638
2002-05-21  Bart Veer  
639
 
640
        * doc/kernel.sgml:
641
        Major update to the kernel documentation.
642
 
643
2002-05-21  Jesper Skov  
644
 
645
        * src/common/clock.cxx (dsr): Fix latency ifdef guards.
646
        * tests/tm_basic.cxx: Same.
647
 
648
2002-05-20  Jonathan Larmour  
649
 
650
        * src/sched/mlqueue.cxx: Don't force timeslice tracing on by default
651
        against the user's wishes.
652
        * cdl/scheduler.cdl: Instead provide an option controlling it.
653
 
654
2002-05-09  Jonathan Larmour  
655
 
656
        * include/kapidata.h (CYG_HARDWARETHREAD_MEMBERS): entry_point
657
        should be a pointer to function not an addrword (which may be
658
        different).
659
        (cyg_reason_t): Define cyg_reason_t as an enum not an int.
660
        (struct cyg_mutex_t): Define mutex protocol as an enum not a cyg_uint32.
661
        Define locked member as a cyg_atomic, not a cyg_bool.
662
 
663
2002-05-09  Nick Garnett  
664
 
665
        * tests/timeslice.c: Modified test thread to accumulate run time
666
        by reading HAL clock, and to detect and record changes of CPU. The
667
        previous version of this code reported varying results - probably
668
        as a consequence of cache effects.
669
 
670
        * include/instrmnt.h: Fixed left-over debug edit to MLQ
671
        instrumentation enable code.
672
 
673
2002-04-29  Jesper Skov  
674
 
675
        * include/kapi.h: Added cyg_alarm_get_times and
676
        cyg_counter_multi_tick.
677
        * src/common/kapi.cxx: Same. Er, fix oversight.
678
        * doc/kernel.sgml: Doc update.
679
 
680
2002-04-24  Yoshinori Sato  
681
 
682
        * src/sync/flag.cxx: Don't set default args in func definitions.
683
 
684
2002-04-24  Jesper Skov  
685
 
686
        * tests/dhrystone.c: Moved platform max number of passes to CDL in
687
        HALs.
688
 
689
2002-04-23  Jesper Skov  
690
 
691
        * tests/dhrystone.c: Allow platform to define max number of passes
692
        via CYGPRI_KERNEL_TESTS_DHRYSTONE_PASSES.
693
 
694
2002-04-09  Jonathan Larmour  
695
 
696
        * include/kapi.h: Use NORET attributes from cyg_type.h.
697
        * include/sched.hxx (class Cyg_Scheduler): Ditto.
698
 
699
2002-04-08  Nick Garnett  
700
 
701
        * src/sync/mutex.cxx: Added IF_PROTOCOL_ACTIVE macro to condition
702
        use of the mutex counter. This means that a mutex that is not
703
        configured to participate in a priority inversion protocol does not
704
        count for operation of that protocol.
705
 
706
2002-03-04  Lars Viklund 
707
 
708
        * include/kapidata.h (CYG_SCHEDTHREAD_ASR_MEMBER):
709
        asr_inhibit is cyg_ucount32 - must match
710
 
711
2002-02-13  Hugo Tyson  
712
 
713
        * doc/kernel.sgml: NEW FILE: Correct reference to uITRON doc.
714
 
715
2002-01-28  Jesper Skov  
716
 
717
        * tests/kexcept1.c: Fix warning.
718
 
719
2002-01-24  Jesper Skov  
720
 
721
        * tests/kcache1.c (time0DI): Disable interrupts around the
722
        sync+invalidate process.
723
        * tests/kcache2.c: Same.
724
 
725
2002-01-23  Jonathan Larmour  
726
 
727
        * src/intr/intr.cxx (mask_interrupt): Disable interrupts.
728
        (unmask_interrupt): Ditto.
729
        (mask_interrupt_intunsafe): New function to avoid disabled interrupts.
730
        (unmask_interrupt_intunsafe): Ditto.
731
        * include/intr.hxx (class Cyg_Interrupt): Declare above new funcs.
732
        * src/common/kapi.cxx (cyg_interrupt_unmask_intunsafe): Above
733
        replicated to KAPI.
734
        (cyg_interrupt_mask_intunsafe): Ditto.
735
        * include/kapi.h: Ditto.
736
 
737
2002-01-07  Nick Garnett  
738
 
739
        * tests/except1.cxx:
740
        * tests/kexcept1.cxx:
741
        Added ifdef to disable these tests in ARM PID platform. This
742
        platform cannot generate any of the exceptions that this test
743
        needs to work.
744
 
745
2001-12-12  Jesper Skov  
746
 
747
        * tests/kcache2.c (time_ilock): Put some dummy goto statements in
748
        to prevent compiler from moving labels around.
749
 
750
2001-11-29  Jonathan Larmour  
751
 
752
        * src/sched/mlqueue.cxx (timeslice_cpu): Reset timeslice_count on
753
        a timeslice.
754
        Noticed by Tony Kho.
755
 
756
2001-11-23  Jonathan Larmour  
757
 
758
        * tests/klock.c (entry1): Support running with
759
        CYGFUN_KERNEL_THREADS_TIMER disabled.
760
 
761
2001-10-30  Nick Garnett  
762
 
763
        * tests/kcache2.c (test_dsync):
764
        Added call to HAL_ICACHE_INVALIDATE_ALL() just before DCACHE
765
        disable. In platforms where both caches are controlled together,
766
        such as the VR4300, not doing this can result in strange behaviour
767
        as the ICACHE gets turned off under the program's feet, when it is
768
        not ready for it.
769
 
770
2001-10-17  Jesper Skov  
771
 
772
        * tests/dhrystone.c: CYGINT_ISO_STRING_STRFUNCS check changed to
773
        ifdef.
774
 
775
2001-10-12  Jonathan Larmour  
776
 
777
        * cdl/synch.cdl (CYGIMP_KERNEL_SYNCH_MQUEUE_NOT_INLINE): New option
778
        to avoid inlining mqueue implementation.
779
 
780
        * src/sync/mqueue.cxx: New file to provide non-inline version of
781
        mqueue functions.
782
 
783
        * include/mqueue.hxx: Don't include .inl if user doesn't want inlining.
784
 
785
        * include/mqueue.inl: Allow choice of inlining or not to be
786
        overridden by macro.
787
 
788
        * tests/mqueue1.cxx: Never use inline version.
789
 
790
2001-10-11  Jesper Skov  
791
 
792
        * tests/kmutex3.c (new_thread): Fixed allocation: increase counter
793
        before starting threads which have been allocated resources.
794
        * tests/kmutex4.c (new_thread): Same.
795
        * tests/mutex3.cxx (new_thread): Same.
796
        * tests/testaux.hxx (new_thread): Same.
797
 
798
        * tests/kcache2.c: Fixed warning.
799
        * tests/stress_threads.c: Same.
800
 
801
2001-09-20  Jonathan Larmour  
802
 
803
        * host/instr/dump_instr.c (main): Fix argc check.
804
 
805
2001-09-07  Jonathan Larmour  
806
 
807
        * include/thread.inl (measure_stack_usage): Deal with stack limits.
808
 
809
2001-09-07  Nick Garnett  
810
 
811
        * src/common/thread.cxx (set_priority): Change argument to
812
        instrumentation call to new_priority rather than current
813
        priority. (Suggested by Andrew Lunn).
814
 
815
2001-09-05  Jesper Skov  
816
 
817
        * include/mqueue.inl (Cyg_Mqueue): Initialize busy flag of last
818
        entry in the list.
819
 
820
2001-09-04  Jonathan Larmour  
821
 
822
        * cdl/instrument.cdl (CYGDBG_KERNEL_INSTRUMENT_BUILD_HOST_DUMP):
823
        Remove redundant requires, and adjust make rule to be more portable
824
        across hosts.
825
        (CYGDBG_KERNEL_INSTRUMENT_MSGS_BUILD_HEADERFILE):
826
        Invoke script with sh directly rather than rely on executable attribute.
827
 
828
        * host/instr/readme.txt: Update build of host dump as per the changed
829
        CDL.
830
 
831
        * cdl/kernel.cdl: Don't build nullinst.cxx any more.
832
        Build meminst.cxx only in CYGPKG_KERNEL_INSTRUMENT.
833
        * src/instrmnt/nullinst.cxx: Delete. It causes confusion in the
834
        library as it declares cyg_instrument like meminst.cxx does.
835
 
836
2001-08-31  Nick Garnett  
837
 
838
        * src/intr/intr.cxx: Clean up typo in DSR table
839
        case. dsr_table_tail and dsr_table_head were not being subscripted
840
        in a couple of places.
841
 
842
2001-08-23  Hugo Tyson  
843
2001-08-20  Andrew Lunn 
844
 
845
        * include/instrument_desc.h: New file.  This contains the table of
846
        events used to print the nice information.  It should be
847
        regenerated when the instrumentation numbers change.
848
 
849
        * src/instrmnt/meminst.cxx (cyg_instrument_msg):
850
        returns an ASCII string describing the type of event the
851
        instrumentation code logged.
852
 
853
        * include/instrmnt.h: Added function prototype.
854
 
855
        * cdl/instrument.cdl: Configury for enabling the new function, and
856
        optionally rebuilding its header file and building a host tool.
857
 
858
        * host/instr/dump_instr.c: New file.  A host program to print the
859
        instrumentation information in a human readable form.
860
 
861
        * host/instr/instrument.sh: New file.  Script to generate table of
862
        events with textual representation.
863
 
864
        * host/instr/readme.txt: New file.  Helpful information.
865
 
866
2001-08-23  Nick Garnett  
867
 
868
        * include/kapidata.h (CYG_THREADTIMER_MEMBERS):
869
        Substituted an expicit cyg_alarm object for CYG_ALARM_MEMBERS in
870
        this definition. In some architectures (MIPS in particular) the
871
        structures need to be padded to a multiple of 64 bits. This was
872
        not happening with the macro substituted versions.
873
        This is just a temporary fix, I'll leave it to Jifl to sort out a
874
        real patch when he returns.
875
 
876
2001-08-23  Hugo Tyson  
877
 
878
        * src/common/thread.cxx: Properly qualify Cyg_Thread::destructors
879
        array so that it builds when destructors are not used.
880
 
881
2001-08-23  Nick Garnett  
882
 
883
        * src/sched/mlqueue.cxx: Added code to
884
        Cyg_SchedThread_Implementation::to_queue_head() to handle a NULL
885
        thread queue pointer. This compensates for a minor change in
886
        behaviour of the scheduler.
887
 
888
2001-08-22  Jonathan Larmour  
889
 
890
        * cdl/thread.cdl: Add kernel thread destructor options.
891
        * include/kapidata.h: Add thread destructor entries to cyg_thread
892
        * include/thread.hxx (Cyg_Thread): Give per-thread data indexes
893
        their own type, cyg_data_index.
894
        Include new thread destructor data members, and new add_destructor
895
        and rem_destructor member functions.
896
        * include/thread.inl: Use a cyg_data_index for per-thread data handle.
897
        (add_destructor): New Cyg_Thread member function.
898
        (rem_destructor): Ditto.
899
        * src/common/kapi.cxx: Use cyg_data_index type for per-thread data
900
        functions.
901
        * src/common/thread.cxx (Cyg_Thread): initialise per-thread
902
        destructors if needed.
903
        Define static destructors if needed.
904
        (exit): Call destructors.
905
        (new_data_index): Use cyg_data_index type.
906
        (free_data_index): Ditto.
907
 
908
2001-08-22  Hugo Tyson  
909
 
910
        * src/sync/mutex.cxx (Cyg_Mutex): Add initialization of the
911
        priority ceiling value in the non-dynamic protocol case.
912
 
913
2001-08-22  Nick Garnett  
914
 
915
        * tests/intr0.c:
916
        * tests/kintr0.c:
917
        Swapped order of interrupt enable/disable calls to keep kernel
918
        happy when assertions are enabled. Otherwise the enable call
919
        complains that interrupts have not been disabled.
920
 
921
        * src/sched/mlqueue.cxx:
922
        Simplified algorithm in set_need_reschedule().
923
 
924
        * include/smp.hxx:
925
        * include/kapidata.h: Change spinlock to be a cyg_uint32, rather
926
        than a cyg_atomic.
927
 
928
        * src/intr/intr.cxx:
929
        * include/intr.hxx:
930
        Now arrange for DSRs to be called on the same CPU as the ISR. This
931
        is necessary if the DSR needs to access per-CPU hardware (such as
932
        interrupt controllers). This is achieved by keeping a separate DSR
933
        list/table for each CPU.
934
 
935
        * tests/smp.cxx: Some modifications to make this test work in a
936
        real SMP environment.
937
 
938
        * tests/timeslice.c:
939
        * cdl/kernel.cdl: Added timeslice test.
940
 
941
2001-08-21  Hugo Tyson  
942
 
943
        * src/sync/mutex.cxx (lock): Bugfix: a ceiling priority mutex
944
        wasn't elevated until after it had acquired the mutex.  This meant
945
        it slept with a low priority, and so did not run when awakened by
946
        the release of the mutex.  The fix is to elevate the potential
947
        claimant before it sleeps in contention.
948
 
949
        * tests/kmutex4.c: New testcase - very similar to kmutex3 but it
950
        loops a load more times using different mutex priority protocols.
951
        This checks that dynamically set protos do in fact behave
952
        differently from one another and as they are each intended to.
953
 
954
        * tests/kmutex3.c: Remove FIXME comments - we now test dynamic
955
        protocol.
956
 
957
        * cdl/kernel.cdl: Build the new test.
958
 
959
2001-08-20  Jonathan Larmour  
960
 
961
        * include/kapidata.h: Reorganize most struct type definitions into
962
        macros to allow compatible layout with all G++ implementations that
963
        align non-POD types differently from included C structures.
964
        * include/kapi.h: Similarly for cyg_resolution_t.
965
 
966
2001-08-17  Nick Garnett  
967
 
968
        * src/sched/mlqueue.cxx (timeslice): Fix timeslice_count comparison.
969
 
970
2001-08-16  Hugo Tyson  
971
 
972
        * include/kapi.h (cyg_mutex_protocol): Tidy up names of mutex
973
        protocol type and values.  These polluted rather in 'C'.
974
 
975
        * src/common/kapi.cxx (cyg_mutex_set_protocol): ditto.
976
 
977
2001-08-15  Hugo Tyson  
978
2001-08-15  Andrew Lunn 
979
 
980
        * src/common/kapi.c (cyg_thread_get_current_priority): Export
981
        this function into the C api.
982
        * include/kapi.h: Declaration of new function.
983
 
984
2001-08-14  Jonathan Larmour  
985
 
986
        * src/common/kapi.cxx (cyg_spinlock_spin_intsave): Cast to istate
987
        to CYG_INTERRUPT_STATE * since that's what is needed.
988
        (cyg_spinlock_clear_intsave): Similarly.
989
 
990
2001-08-10  Hugo Tyson  
991
 
992
        * cdl/synch.cdl: Re-organize the options for mutexes so they are
993
        active a bit more sensibly; place the default ceiling within
994
        selection of ceiling protocol, and only have a default protocol if
995
        there is more than one protocol active.
996
 
997
        * tests/mutex3.cxx: More detailed handling of the possibility of
998
        ceiling protocol instead of the inherit or none cases; we can run
999
        the test ok and treat as inherit if the ceiling prio is higher
1000
        than 5, treat as none if lower than 15, and don't check anything
1001
        if in between - the test runs happily.
1002
 
1003
        * tests/kmutex3.c (cyg_start): New test, a KAPI translation of the
1004
        now-classic mutex3.cxx.
1005
 
1006
        * cdl/kernel.cdl: Build tests/kmutex3.c
1007
 
1008
2001-08-06  Hugo Tyson  
1009
 
1010
        * src/sched/sched.cxx (unlock_inner): Fix assignment to current,
1011
        wouldn't build if stack checking after merger from SMP branch.
1012
 
1013
2001-08-06  Andrew Lunn   
1014
2001-08-06  Hugo Tyson  
1015
 
1016
        * src/sync/mutex.cxx: (set_protocol) Added a function to set the
1017
        priority inversion protocol for a mutex.
1018
 
1019
        * src/common/kapi.cxx: Export the new function above and
1020
        set_ceiling into the C API.
1021
 
1022
        * include/mutex.hxx (class Cyg_Mutex): New member function
1023
        set_protocol().
1024
 
1025
        * include/kapi.h (cyg_protcol): Define new emumeration for mutex
1026
        priority protocol setting, and headers for the new function to set
1027
        it.
1028
 
1029
2001-08-03  Nick Garnett  
1030
 
1031
        Imported from a development branch:
1032
 
1033
        2001-07-11  Nick Garnett  
1034
 
1035
                * src/sched/mlqueue.cxx: Changed behaviour of
1036
                set_need_reschedule() to a better implementation of the intended
1037
                algorithm.
1038
 
1039
                * include/kapi.h:
1040
                * src/common/kapi.cxx:
1041
                Added API for controlling routing of interrupts to CPUs in SMP
1042
                configurations.
1043
 
1044
        2001-07-03  Nick Garnett  
1045
 
1046
                * cdl/scheduler.cdl:
1047
                * include/bitmap.hxx:
1048
                * src/sched/bitmap.cxx:
1049
                Fixed up bitmap scheduler so it still works within the
1050
                SMP-modified scheduling infrastructure. The bitmap scheduler
1051
                is not currently SMP-enabled, only single CPU configurations are
1052
                supported - hence the CDL change to require this.
1053
 
1054
        2001-06-29  Nick Garnett  
1055
 
1056
                * src/sched/sched.cxx:
1057
                Removed the call to Cyg_Interrupt::enable_interrupts() in
1058
                Cyg_Scheduler::start_cpu(). This was a relic from the days when
1059
                the interrupt enable state was not part of the thread state. Now
1060
                it is, and loading the first thread will cause interrupts to be
1061
                enabled.
1062
 
1063
                * src/intr/intr.cxx:
1064
                Changed initial values of Cyg_Interrupt::disable_counter[]s to
1065
                zero as a result of the change in Cyg_Scheduler::start_cpu().
1066
 
1067
                * include/kapi.h:
1068
                * include/kapidata.h:
1069
                * src/common/kapi.cxx:
1070
                Added API for using spinlocks. Largely so that it may be extended
1071
                to the driver API.
1072
 
1073
                * include/mlqueue.hxx:
1074
                * include/intr.hxx:
1075
                * include/sched.hxx:
1076
                Added annotations to various static variables.
1077
 
1078
        2001-06-28  Nick Garnett  
1079
 
1080
                * include/intr.hxx:
1081
                * src/intr/intr.cxx:
1082
                Changed behaviour of Cyg_Interrupt::disable_interrupts() and
1083
                Cyg_Interrupt::enable_interrupts(). These now claim and release a
1084
                spinlock in addition to disabling and enabling interrupts. The
1085
                original interrupt state is also preserved and restored. This is
1086
                necessary in SMP systems to allow drivers etc. to correctly
1087
                synchronize with threads and DSRs that may be running on different
1088
                CPUs. In the single CPU case this mechanism reduces to the
1089
                original simple interrupt disable code.
1090
                [Later change] Backed off addition of volatile modifier to
1091
                interrupt_disable_state.
1092
 
1093
                * include/smp.hxx: Some minor tidies.
1094
 
1095
        2001-06-27  Nick Garnett  
1096
 
1097
                * tests/release.cxx: Added spin loop in thread1 to allow thread0
1098
                to execute its wait. This is necessary in SMP systems where the
1099
                threads will execute in parallel, but is also benign in single CPU
1100
                systems.
1101
 
1102
                * tests/mutex2.cxx:
1103
                * tests/mutex3.cxx:
1104
                * tests/sync3.cxx:
1105
                * tests/thread2.cxx:
1106
                These tests depend on predicting the behaviour of threads at
1107
                different priorities to pass. In an SMP system, several threads
1108
                will run in parallel, and the execution order will not be as
1109
                expected. These tests are therefore disabled in SMP
1110
                configurations.
1111
 
1112
                * src/sched/mlqueue.cxx (add_thread): Moved call to
1113
                set_need_reschedule() out of test for empty queue. In SMP systems,
1114
                any addition to a queue may require a reschedule on another CPU.
1115
 
1116
        2001-06-22  Nick Garnett  
1117
 
1118
                * include/mlqueue.hxx:
1119
                * src/sched/mlqueue.cxx:
1120
                A major change to the way in which this scheduler works in SMP
1121
                systems. The previous version removed all runnable threads from
1122
                the run queues when they were executing. This resulted in serious
1123
                complications and messy code, particularly when dealing with
1124
                priority changes and timeslicing. The new version keeps running
1125
                threads in the run queues, just like the single-CPU version. The
1126
                main disadvantage of this is that we may have to search past
1127
                threads running on other CPUs before we find one available to run
1128
                on this CPU. However, the pending count array and map mean that we
1129
                only need search one run queue, and in any case the search remains
1130
                bounded by the number of CPUs available.
1131
                Another change is in the way that timeslicing is handled. Now, the
1132
                CPU that takes the clock interrupt decrements the timeslice counts
1133
                for all CPUs and if any go zero, sends a TIMESLICE message to
1134
                that CPU.
1135
 
1136
                * src/sched/sched.cxx (unlock_inner):
1137
                Removed call to requeue(), no longer needed as a result of
1138
                scheduler reorganization.
1139
 
1140
                * src/common/thread.cxx:
1141
                Added test in Cyg_Thread::exit() to check that the thread has not
1142
                already been killed. This is only an issue if the thread is
1143
                calling exit() when it is kill()ed from another CPU. The test is
1144
                redundant in single-CPU systems, but it does no harm having it.
1145
                Added code to Cyg_Thread::set_priority() to check for reschedule
1146
                when another thread is being changed in priority.
1147
                Added call in idle thread constructor to scheduler to install the
1148
                idle thread as the default current thread for a CPU.
1149
 
1150
                * include/smp.hxx:
1151
                Added CYG_KERNEL_CPU_TIMESLICE_INTERRUPT(), did some miscellaneous
1152
                tidying.
1153
 
1154
                * include/instrmnt.h: Added SMP_RESCHED_SEND and SMP_RESCHED_RECV
1155
                events.
1156
 
1157
                * cdl/kernel.cdl: Added smp test program.
1158
 
1159
                * tests/smp.cxx: Added this program to test SMP functionality.
1160
 
1161
        2001-06-13  Nick Garnett  
1162
 
1163
                * src/sched/sched.cxx:
1164
                Removed code to set up initial current thread, this is now done
1165
                in the idle thread constructor.
1166
                Added code here to set up interrupts for SMP inter-processor
1167
                interrupts. This is not very tidy and may need to be
1168
                changed in the future.
1169
 
1170
                * src/sched/mlqueue.cxx:
1171
                Added local set_need_reschedule() function to set the
1172
                need_reschedule flag on a suitable CPU.
1173
                Many more changes to cope with SMP systems.
1174
                NOTE: This code has all become somthing of a mess, it need to be
1175
                tidied up and the SMP-specific changes integrated better into the
1176
                code. Also, timesliceing currently only works on the CPU that
1177
                takes clock interrupts - this needs fixing.
1178
 
1179
                * src/common/thread.cxx:
1180
                Moved assignment of initial current thread to here from sched.cxx.
1181
 
1182
                * include/smp.hxx:
1183
                Changed CYG_KERNEL_CPU_INTERRUPT()
1184
                CYG_KERNEL_CPU_RESCHEDULE_INTERRUPT() since there may be other
1185
                interrupt types to worry about.
1186
                Added annotations to scheduler data items.
1187
 
1188
                * include/sched.hxx:
1189
                Split set_current_thread() into two functions, the original works
1190
                only on the current CPU, the new one sets another CPU's current
1191
                thread. This latter function is only used to prime the current
1192
                threads during initialization.
1193
                Added second need_reschedule() function that takes a thread
1194
                argument. This is intended to be overridden by a scheduler
1195
                specific function that sets the need_reschedule flag if the
1196
                supplied thread is more deserving of CPU time that any current
1197
                thread.
1198
 
1199
                * include/mlqueue.hxx:
1200
                Made cyg_scheduler_set_need_reschedule() a friend of
1201
                Cyg_Scheduler_Implementation class.
1202
                Added override set_need_reschedule() functions.
1203
 
1204
                * include/kapidata.h: Added cpu field to cyg_thread structure when
1205
                in SMP systems.
1206
 
1207
                * include/intr.hxx:
1208
                * src/intr/intr.cxx:
1209
                Added Cyg_Interrupt::set_cpu() and Cyg_Interrupt::get_cpu() for
1210
                SMP systems.
1211
 
1212
                * include/instrmnt.h: Added events for INTR_GET_CPU and
1213
                INTR_SET_CPU.
1214
 
1215
        2001-05-29  Nick Garnett  
1216
 
1217
                The following changes were all imported from the SMP branch:
1218
 
1219
                * tests/tm_basic.cxx:
1220
                Modified to work in SMP configuration - mostly at present by
1221
                ifdeffing out code I didn't want to fix.
1222
 
1223
                * include/sched.hxx:
1224
                Moved scheduler lock operation into Cyg_Scheduler_SchedLock class.
1225
                Converted current_thread, need_reschedule, and thread_switches
1226
                into CPU indexed arrays. Added member functions to get and set
1227
                these indirectly.
1228
                Added start_cpu() to do per-CPU scheduler startup.
1229
 
1230
                * include/sched.inl:
1231
                Converted scheduler lock/unlock functions to use new schedlock
1232
                class.
1233
 
1234
                * src/sched/sched.cxx:
1235
                Changed in line with sched.hxx.
1236
                Added call to requeue() in unlock_inner() to restore current
1237
                thread to run queue if necessary.
1238
                Moved most of scheduler startup to Cyg_Scheduler::start_cpu().
1239
                Cyg_Scheduler::start() now also starts secondary CPUs in SMP
1240
                systems.
1241
                Added cyg_kernel_smp_startup() as entry point from HAL into kernel
1242
                for secondary CPUs.
1243
 
1244
                * include/mlqueue.hxx:
1245
                Added Cyg_RunQueue type and removed
1246
                Cyg_SchedulerThreadQueue_Implementation type.
1247
                Converted timeslice_count to CPU indexed array.
1248
                Added requeue() member function to scheduler class.
1249
                Added cpu member to thread implementation class, to record
1250
                thread's current CPU.
1251
 
1252
                * src/sched/mlqueue.cxx:
1253
                Changed behaviour when in SMP system to remove scheduled thread
1254
                from run queue and replace it when preempted.
1255
                Added some extra asserts, and removed some that are no longer true
1256
                in an SMP system.
1257
 
1258
                * src/instrmnt/meminst.cxx: In SMP systems: added spinlock to
1259
                protect instrument buffer, added CPU Id in top 4 bits of thread Id
1260
                field.
1261
 
1262
                * src/common/thread.cxx:
1263
                Converted to use accessor functions for need_reschedule and
1264
                current_thread.
1265
                Rearranged idle thread creation to create one for each CPU.
1266
 
1267
                * include/test/stackmon.h: Extended to handle stack usage for
1268
                multiple idle threads.
1269
 
1270
                * include/thread.inl:
1271
                Added some extra instrumentation.
1272
 
1273
                * include/smp.hxx:
1274
                Added this file to contain all kernel SMP support. The main
1275
                definitions exported by this file are spin lock and scheduler lock
1276
                implementation classes, for both SMP and uniprocessor
1277
                configurations.
1278
 
1279
                * src/intr/intr.cxx:
1280
                * include/intr.hxx:
1281
                Converted interrupt disable counter to CPU indexed array. In
1282
                intr.cxx: added lock of scheduler lock in interrupt_end() rather
1283
                than in default interrupt VSR.
1284
 
1285
                * cdl/kernel.cdl: Added option to enable SMP support.
1286
 
1287
                * include/instrmnt.h:
1288
                * cdl/instrument.cdl: Added SMP instrumentation.
1289
 
1290
        2001-05-25  Nick Garnett  
1291
 
1292
                * include/intr.hxx:
1293
                * src/intr/intr.cxx:
1294
                Added default definition of CYGNUM_HAL_ISR_TABLE_SIZE. This is now
1295
                used to declare the chain table so that architectures which have
1296
                different sizes for the interrupt table and vector count will work
1297
                correctly.
1298
 
1299
        2001-05-22  Nick Garnett  
1300
 
1301
                * include/sched.hxx (class Cyg_Scheduler_Base):
1302
                Added annotation to sched_lock.
1303
 
1304
                * cdl/instrument.cdl:
1305
                Rename CYGNUM_KERNEL_INSTRUMENT_BUFFER_WRAP to
1306
                CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP as it appears in the code.
1307
 
1308
2001-07-27  Jesper Skov  
1309
 
1310
        * src/intr/intr.cxx (chain_isr): Return isr_ret so caller (which
1311
        may be an arbiter) can tell if the interrupt was handled.
1312
 
1313
2001-07-26  Gary Thomas  
1314
 
1315
        * src/common/clock.cxx (dsr): Fix problems mixing signed and
1316
        unsigned values.  Normally only generated warnings, but...
1317
 
1318
2001-07-09  Jonathan Larmour  
1319
 
1320
        * include/sched.inl (unlock_reschedule): Fix commenting.
1321
        * src/sched/sched.cxx: Improve description of unlock_inner().
1322
 
1323
2001-06-21  Jonathan Larmour  
1324
 
1325
        * src/common/thread.cxx (Cyg_Thread::Cyg_Thread): Initialize
1326
        wakeup_count
1327
 
1328
2001-06-06  Hugo Tyson  
1329
 
1330
        * tests/clocktruth.cxx: New file.  A test to get a sanity check on
1331
        whether the clock is accurate to wallclock time, only useful for
1332
        humans to watch really.  But important!
1333
 
1334
2001-05-31  Jonathan Larmour  
1335
 
1336
        * include/thread.hxx (class Cyg_HardwareThread): Remove unused
1337
        load_context() method.
1338
        * include/thread.inl: Ditto.
1339
 
1340
2001-05-29  Jonathan Larmour  
1341
 
1342
        * src/sched/bitmap.cxx (rem_thread): No need to set need_reschedule...
1343
        rescheduling will happen automatically when the state changes.
1344
 
1345
        * src/sched/mlqueue.cxx (add_thread): No need to explicitly clear
1346
        thread->queue.
1347
 
1348
2001-04-26  Nick Garnett  
1349
 
1350
        * tests/intr0.cxx:
1351
        * tests/kintr0.c:
1352
        Fixed these two tests so that they work properly on architectures
1353
        where CYGNUM_HAL_ISR_MIN is not zero. These include the x86 and
1354
        V850.
1355
 
1356
2001-04-18  Bart Veer  
1357
 
1358
        * tests/dhrystone.c:
1359
        Fix the conditional for STDIO_FORMATTED_IO
1360
 
1361
2001-04-17  Bart Veer  
1362
 
1363
        * tests/stress_threads.c (setup_death_alarm):
1364
        Cope with synthetic target reorg
1365
 
1366
        * tests/except1.cxx, tests/kexcept1.c:
1367
        Reenable for the synthetic target
1368
 
1369
        * tests/tm_basic.cxx:
1370
        Reenable for the synthetic target
1371
 
1372
2001-04-17  Jesper Skov  
1373
 
1374
        * cdl/kernel.cdl: Do cache tests on E7T.
1375
 
1376
2001-04-05  Nick Garnett  
1377
 
1378
        * tests/flag1.cxx: Apply same changes here as were applied to
1379
        kflag1 on 2000-07-17. This allows this test to run to completion
1380
        in slow targets, especially simulators.
1381
 
1382
        * tests/stress_threads.c: Reduce run time even further in
1383
        simulator runs where instrumentation is enabled.
1384
 
1385
2001-04-03  Jesper Skov  
1386
 
1387
        * tests/dhrystone.c: Fix feature check.
1388
 
1389
2001-03-28  Jonathan Larmour  
1390
 
1391
        * cdl/kernel.cdl: Only need to compile dbg_gdb.cxx with
1392
        CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT
1393
 
1394
        * src/debug/dbg_gdb.cxx: Add new dbg_thread_id() function.
1395
 
1396
2001-02-23  Jonathan Larmour  
1397
 
1398
        * include/thread.inl (attach_stack): Check for non-NULL stack base.
1399
 
1400
2001-02-11  Jonathan Larmour  
1401
 
1402
        * tests/stress_threads.c: CYGINT_ISO_STDIO_FORMATTED_IO needs a
1403
        #ifdef not an #if.
1404
        * tests/dhrystone.c: Ditto.
1405
 
1406
2001-02-04  Jonathan Larmour  
1407
 
1408
        * tests/kill.cxx: Increase delay for all targets, just in case some
1409
        are slow.
1410
 
1411
2001-01-30  Hugo Tyson  
1412
 
1413
        * src/common/clock.cxx (rem_alarm): Must clear the enabled flag;
1414
        this disappeared in the changes to using clists of 2001-01-09.
1415
        Symptom was that an alarm, once disabled, could never be
1416
        re-attached to its counter because it claimed it already was.
1417
        Plus asserts with multiple disables - "bad counter object".
1418
 
1419
2001-01-30  Hugo Tyson  
1420
 
1421
        * src/common/thread.cxx (reinitialize): Following change of
1422
        2000-12-05, if CYGFUN_KERNEL_THREADS_STACK_CHECKING, this was
1423
        using the stack_base/stack_size variables directly to reinitialize
1424
        the stack area.  This was wrong, and leaked store off the top and
1425
        bottom of the stacks because the "buffer zone" was carved off
1426
        repeatedly.  Fix is to use the published APIs which compensate.
1427
 
1428
2001-01-26  Nick Garnett  
1429
 
1430
        * include/mlqueue.hxx:
1431
        * src/sched/mlqueue.cxx:
1432
        Restored Cyg_ThreadQueue_Implementation::remove() since it must
1433
        clear the thread's queue pointer, which the base clist class
1434
        remove() does not.
1435
 
1436
2001-01-24  Jesper Skov  
1437
 
1438
        * src/sched/mlqueue.cxx (highpri): Fix trace call.
1439
 
1440
2001-01-09  Nick Garnett  
1441
 
1442
        * include/mlqueue.hxx:
1443
        * src/sched/mlqueue.cxx:
1444
        Converted to use clist.hxx list implementation. The main effect of
1445
        this is to clean up the code and class definitions since much of
1446
        what was part of the thread queue and thread classes now moves to
1447
        the DNode and CList classes.
1448
 
1449
        * include/clock.hxx:
1450
        * src/common/clock.cxx:
1451
        Converted to use clist.hxx list implementation. This removes all
1452
        the explicit list manipulation code from the counter and alarm
1453
        classes, resulting in cleaner, easier to understand code.
1454
 
1455
        * include/kapidata.h: Adjusted cyg_alarm struct to match Cyg_Alarm
1456
        using Cyg_DNode.
1457
 
1458
2000-12-22  Jonathan Larmour  
1459
 
1460
        * include/thread.inl (check_stack): check word alignment with CYG_WORD
1461
        not cyg_uint32
1462
        Add extra stack checking for when stack limits are used.
1463
        (measure_stack_usage): New function to measure stack usage of the thread
1464
        (attach_stack): check word alignment with CYG_WORD not cyg_uint32
1465
        Initialize stack to preset value when measuring stack usage
1466
        (increment_stack_limit): Conditionalize here wrt
1467
        CYGFUN_KERNEL_THREADS_STACK_CHECKING and use the version in thread.cxx
1468
        instead if CYGFUN_KERNEL_THREADS_STACK_CHECKING is defined.
1469
 
1470
        * src/common/thread.cxx (exit): If verbose stack measurement enabled,
1471
        output stack usage
1472
        (increment_stack_limit): Add version of this method when
1473
        CYGFUN_KERNEL_THREADS_STACK_CHECKING *is* defined. This will add
1474
        padding above the stack limit as necessary.
1475
 
1476
        * include/thread.hxx (class Cyg_HardwareThread): Add
1477
        measure_stack_usage() member
1478
 
1479
        * cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_MEASUREMENT):
1480
        Add to implement stack usage measurement.
1481
 
1482
        * include/kapi.h (cyg_thread_measure_stack_usage): New function
1483
        * src/common/kapi.cxx (cyg_thread_measure_stack_usage): New function
1484
 
1485
2000-12-08  Jonathan Larmour  
1486
 
1487
        * cdl/thread.cdl (CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING):
1488
        Requires threads list, rather than active_if them so that
1489
        inference engine can do its thang.
1490
 
1491
2000-12-07  Jesper Skov  
1492
 
1493
        * src/debug/dbg-thread-demux.c: Add comment about the use of
1494
        DBG_SYSCALL_THREAD_VEC_NUM vs CYGNUM_CALL_IF_DBG_SYSCALL.
1495
 
1496
2000-12-06  Hugo Tyson  
1497
 
1498
        * include/thread.inl (attach_stack): Additional assert check for
1499
        unsigned wrap of the stack size in subtracting the signature
1500
        areas' size.  Also round to whole words better.
1501
 
1502
2000-12-05  Hugo Tyson  
1503
 
1504
        * cdl/thread.cdl (CYGFUN_KERNEL_THREADS_STACK_CHECKING): New
1505
        option, to control new stack check features.  Enabled by default,
1506
        but only active if CYGPKG_INFRA_DEBUG and CYGDBG_USE_ASSERTS
1507
        anyway, plus checking *all* threads is possible, but default off,
1508
        iff CYGVAR_KERNEL_THREADS_LIST.
1509
 
1510
        * include/thread.hxx (class Cyg_HardwareThread): Define
1511
        check_stack() function.
1512
 
1513
        * include/thread.inl (attach_stack): Add initialization of a
1514
        signature in the top and base of the stack, if so configured.
1515
        (check_stack): New function to check that signature for
1516
        correctness; minor re-ordering to permit more inlining.
1517
 
1518
        * src/sched/sched.cxx (unlock_inner): Check departing and incoming
1519
        thread stacks if CYGFUN_KERNEL_THREADS_STACK_CHECKING.  Also, if
1520
        CYGFUN_KERNEL_ALL_THREADS_STACK_CHECKING, check all registered
1521
        thread stacks.  This is placed here to get executed every
1522
        clocktick and other interrupts that call DSRs, rather than messing
1523
        with interrupt_end() or the idle thread.
1524
 
1525
2000-12-04  Hugo Tyson  
1526
 
1527
        * tests/kcache2.c (entry0): Make this more robust against a
1528
        complete absence of useful caches.  Previous change was not
1529
        careful enough.
1530
 
1531
2000-12-01  Hugo Tyson  
1532
 
1533
        * cdl/kernel.cdl: Build the kcache tests for SA11x0 family; they
1534
        were being omitted by default as part of ARM family.  They work on
1535
        SA1110, so this should be OK.  They're OK on EBSAs too.  See
1536
        associated fix to cache macros in SA11x0 and EBSSA HALs.
1537
 
1538
        * tests/kcache2.c (entry0): Fix the test; the problem was it
1539
        assumed that a write to a previously unseen location would end up
1540
        in the cache.  It ain't so on StrongARMs.  Also make tests safe
1541
        wrt interrupts possibly perturbing the cache, add explicit tests
1542
        for HAL_DCACHE_INVALIDATE_ALL(), ...DISABLE() and ...SYNC(), and
1543
        improve the tests for cache line invalidate and store.
1544
 
1545
2000-10-30  Jesper Skov  
1546
 
1547
        * cdl/synch.cdl: Replaced CYGINT_KERNEL_SCHEDULER_CAN_YIELD with
1548
        CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.
1549
        * cdl/scheduler.cdl:
1550
        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INVERSION_PROTOCOL requires
1551
        CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES.
1552
 
1553
        * tests/thread2.cxx: Use new option.
1554
        * tests/klock.c: Same.
1555
        * src/common/thread.cxx: Same.
1556
        * src/common/clock.cxx: Same.
1557
 
1558
        * include/bitmap.hxx: Leave unique priority setting to CDL.
1559
        * include/mlqueue.hxx: Same.
1560
        * include/sched.hxx: Let CDL do sanity check of config.
1561
 
1562
2000-10-27  Jesper Skov  
1563
 
1564
        * cdl/scheduler.cdl: Added CYGINT_KERNEL_SCHEDULER_CAN_YIELD
1565
 
1566
        * tests/klock.c: Avoid use of disabled features. Require scheduler
1567
        that can yield.
1568
 
1569
2000-10-20  Jonathan Larmour  
1570
 
1571
        * tests/bin_sem0.cxx:
1572
        * tests/bin_sem1.cxx:
1573
        * tests/bin_sem2.cxx:
1574
        * tests/clock0.cxx:
1575
        * tests/clock1.cxx:
1576
        * tests/clockcnv.cxx:
1577
        * tests/cnt_sem0.cxx:
1578
        * tests/cnt_sem1.cxx:
1579
        * tests/except1.cxx:
1580
        * tests/flag0.cxx:
1581
        * tests/flag1.cxx:
1582
        * tests/intr0.cxx:
1583
        * tests/kill.cxx:
1584
        * tests/mbox1.cxx:
1585
        * tests/mqueue1.cxx:
1586
        * tests/mutex0.cxx:
1587
        * tests/mutex1.cxx:
1588
        * tests/mutex2.cxx:
1589
        * tests/mutex3.cxx:
1590
        * tests/philo.cxx:
1591
        * tests/release.cxx:
1592
        * tests/sched1.cxx:
1593
        * tests/sync2.cxx:
1594
        * tests/sync3.cxx:
1595
        * tests/testaux.hxx:
1596
        * tests/thread0.cxx:
1597
        * tests/thread1.cxx:
1598
        * tests/thread2.cxx:
1599
        * tests/tm_basic.cxx:
1600
        Make sure default priority constructors have been invoked.
1601
 
1602
        * include/intr.hxx (class Cyg_Interrupt): Make dsr_count volatile
1603
        to prevent a potential race condition with overzealous C
1604
        compilers.
1605
 
1606
2000-10-13  Nick Garnett  
1607
 
1608
        * src/sched/sched.cxx (unlock_inner): Added condition to test for
1609
        DSRs to only call DSRs when the scheduler lock is making a 0->1
1610
        transition. Otherwise there is the danger of calling DSRs when the
1611
        scheduler lock is > 1. This violates our original assumptions
1612
        about how the scheduler lock worked with respect to DSR.
1613
 
1614
        * src/intr/intr.cxx (call_pending_DSRs): Added assert to check
1615
        that DSRs are only called when the scheduler lock is exactly 1.
1616
 
1617
2000-10-13  Jesper Skov  
1618
 
1619
        * include/intr.hxx: Fixing syntax mistake; volatile keyword must
1620
        appear after the type for it to affect the pointer variable.
1621
        * src/intr/intr.cxx: Same. Remove volatile from local block.
1622
 
1623
2000-10-05  Jesper Skov  
1624
 
1625
        * src/intr/intr.cxx: Made dsr_table_tail volatile as well.
1626
        * include/intr.hxx: Ditto.
1627
 
1628
2000-10-05  Nick Garnett  
1629
 
1630
        * src/sched/sched.cxx:
1631
        * include/sched.hxx: Converted asr_inhibit from a bool to a
1632
        counter. This is necessary to permit nesting of ASR inhibiting
1633
        functions.
1634
 
1635
2000-10-04  Jesper Skov  
1636
 
1637
        * include/intr.hxx: Made dsr_list volatile.
1638
        * src/intr/intr.cxx: Same. Also fix compiler warning.
1639
 
1640
2000-09-25  Nick Garnett  
1641
 
1642
        * src/sched/mlqueue.cxx:
1643
        Added test for current thread not runnable in
1644
        Cyg_Scheduler_Implementation::timeslice().  This is possible if a
1645
        prior DSR has caused the current thread to be descheduled. Added
1646
        an assert to Cyg_ThreadQueue_Implementation::rotate() for
1647
        additional paranoia. (This problem was originally identified and
1648
        fixed (differently) by Andrew Lunn .)
1649
 
1650
2000-09-13  Jesper Skov  
1651
 
1652
        * tests/kexcept1.c (cause_exception): Use separate cause_fpe function.
1653
        * tests/except1.cxx (cause_exception): Same.
1654
 
1655
        * tests/kexcept1.c (cause_exception): Do not use division at all.
1656
        * tests/except1.cxx (cause_exception): Same.
1657
 
1658
        * tests/kexcept1.c (cause_exception): Do not cause div-by-zero.
1659
        * tests/except1.cxx (cause_exception): Same.
1660
 
1661
2000-09-11  Jonathan Larmour  
1662
 
1663
        * cdl/instrument.cdl (CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER):
1664
        Bring this option back from the dead
1665
 
1666
2000-09-08  Nick Garnett  
1667
 
1668
        * include/sched.hxx:
1669
        * include/sched.inl:
1670
        Added Cyg_Scheduler::unlock_reschedule() function. This decrements
1671
        the scheduler lock by one but also permits the current thread to
1672
        be rescheduled if it ready to sleep, or there is a higher priority
1673
        thread ready to run. This is to support use of various
1674
        synchronization objects while the scheduler lock is claimed.
1675
 
1676
        * src/sched/sched.cxx (unlock_inner): Modified precondition to
1677
        allow for functionality of unlock_reschedule().
1678
 
1679
        * src/sched/mlqueue.cxx:
1680
        Now uses Cyg_SchedulerThreadQueue_Implementation for all runqueue
1681
        pointers. It was using Cyg_ThreadQueue_Implementation in some
1682
        places which meant we were trying to sort the run queues!
1683
        Changed yield() so it can be called with the scheduler lock
1684
        claimed.
1685
        Changed Cyg_Scheduler_Implementation::timeslice() to rotate the
1686
        queue itself rather than call yield(). The changes to yield() make
1687
        it unsafe to call here any more.
1688
 
1689
        * include/mlqueue.hxx (class Cyg_SchedulerThreadQueue_Implementation):
1690
        Made enqueue() member public.
1691
 
1692
        * include/mboxt2.inl:
1693
        * src/common/thread.cxx:
1694
        * src/sync/mutex.cxx:
1695
        * src/sync/cnt_sem2.cxx:
1696
        Removed assertions for zero scheduler lock and replaced some
1697
        invocations of Cyg_Scheduler::unlock() with
1698
        Cyg_Scheduler::unlock_reschedule() or Cyg_Scheduler::reschedule()
1699
        where appropriate.
1700
 
1701
        * tests/klock.c:
1702
        * cdl/kernel.cdl:
1703
        Added klock.c to test functionality while scheduler lock is claimed.
1704
 
1705
2000-08-17  Hugo Tyson  
1706
 
1707
        * src/sched/sched.cxx (unlock_inner): Move an assert to some place
1708
        where it's true *all* the time!  There was a narrow margin where a
1709
        DSR could confuse unlock_inner() by reanimating the current thread
1710
        before it had a chance to sleep - hence the call appears to be
1711
        pointless.  Putting the assert before the DSR calls makes sense.
1712
 
1713
        * include/mboxt.inl:
1714
        * src/sync/bin_sem.cxx:
1715
        * src/sync/cnt_sem.cxx:
1716
        * src/sync/flag.cxx:
1717
        * src/sync/mutex.cxx:
1718
        All of these now use Cyg_Scheduler::reschedule() rather than an
1719
        unlock/lock pair to yield in their functions which can sleep.
1720
        They therefore can be called safely and atomically with the
1721
        scheduler already locked.  This is a Good Thing[tm].  Since the
1722
        network stack synch primitives now use this feature, the asserts
1723
        that the scheduler was not locked must disappear: this change.
1724
 
1725
 
1726
2000-08-07  Jonathan Larmour  
1727
 
1728
        * include/mutex.hxx (class Cyg_Mutex): Add comment explaining
1729
        presence of locked.
1730
 
1731
2000-08-04  Jonathan Larmour  
1732
 
1733
        * tests/stress_threads.c (STACK_SIZE_HANDLER): Increase stack sizes
1734
        otherwise it crashes!
1735
 
1736
2000-07-31  Jonathan Larmour  
1737
 
1738
        * include/mempolt2.hxx: As per change of 2000-07-04, also delete - left
1739
        behind accidentally
1740
 
1741
2000-07-20  Nick Garnett  
1742
 
1743
        * include/mutex.hxx (class Cyg_Mutex): Added get_ceiling()
1744
        accessor function.
1745
 
1746
        * src/sched/mlqueue.cxx: Fixed bug in sorted queue code that
1747
        resulted in an infinite loop if the thread being inserted is of
1748
        lower priority than all threads in the queue. This case is now
1749
        detected early.
1750
 
1751
2000-07-17  Gary Thomas  
1752
 
1753
        * tests/kflag1.c (FIRST_THREAD_WAIT_TIME): Parameterize thread
1754
        synchronization wait times (for understanding) and adjust for
1755
        incredibly slow platforms.  [Previous value allowed for the test
1756
        to get out of sync because the code ran so slowly]
1757
 
1758
2000-07-04  Jonathan Larmour  
1759
 
1760
        * cdl/kernel.cdl: Remove all configury related to memory allocators,
1761
        including tests. Make CYGFUN_KERNEL_API_C require CYGFUN_MEMALLOC_KAPI
1762
 
1763
        * include/memfixed.hxx, include/mempolt2.inl, include/mempoolt.hxx,
1764
          include/mempoolt.inl, include/memvar.hxx, include/mfiximpl.hxx,
1765
          include/mfiximpl.inl, include/mvarimpl.hxx, include/mvarimpl.inl,
1766
          src/mem/memfixed.cxx, src/mem/memvar.cxx, tests/kmemfix1.c,
1767
          tests/kmemvar1.c, tests/memfix1.cxx, tests/memfix2.cxx,
1768
          tests/memvar1.cxx, tests/memvar2.cxx:
1769
        Move to separate memory allocator package CYGPKG_MEMALLOC
1770
 
1771
        * include/kapi.h, include/kapidata.h, src/common/kapi.cxx:
1772
        Remove memory allocator functionality - now implemented in
1773
        CYGPKG_MEMALLOC
1774
 
1775
        * tests/dhrystone.c:
1776
        Update configuration dependencies for new isoinfra design
1777
        * tests/stress_threads.c:
1778
        Likewise.
1779
        Also fix early termination after DEATH_TIME_LIMIT so that
1780
        allocated resources are freed, and so more appropriate
1781
        statistics are reported
1782
        Also update to use mallinfo() interface to memory allocator
1783
 
1784
2000-06-23  Hugo Tyson  
1785
 
1786
        * include/kapi.h (cyg_scheduler_read_lock): New function, to
1787
        return the value of the scheduler lock; this for implementing SPLX
1788
        in the network stack.
1789
 
1790
        * src/common/kapi.cxx (cyg_scheduler_read_lock): New function.
1791
 
1792
2000-06-20  Nick Garnett  
1793
 
1794
        * src/sched/mlqueue.cxx (Cyg_ThreadQueue_Implementation::enqueue):
1795
        Rewrote code to insert threads into priority sorted queue. The
1796
        original code could not cope with a queue all of whose members
1797
        were lower priority than the new thread - it looped for ever. Also
1798
        provided fast paths for common and easily detected cases such as
1799
        adding to a single element queue and adding at the front. By
1800
        taking these cases out early, we can also simplify the code to
1801
        search the queue.
1802
 
1803
2000-06-16  Gary Thomas  
1804
 
1805
        * cdl/kernel.cdl: Remove exception tests for CMA230 - not supported
1806
        by hardware.
1807
 
1808
2000-06-16  Jesper Skov  
1809
 
1810
        * src/intr/intr.cxx (chain_isr): Only call default_isr if no isrs
1811
        in the chain reacted to the interrupt.
1812
 
1813
2000-06-15  Nick Garnett  
1814
 
1815
        * include/mutex.hxx (class Cyg_Condition_Variable): Added an
1816
        inline function, get_queue(), to return a pointer to the
1817
        underlying thread queue. To be used mainly for comparing with a
1818
        thread's current queue to decide whether it is waiting for a
1819
        condition variable.
1820
 
1821
        * include/kapi.h:
1822
        * src/common/kapi.cxx:
1823
        Changed return type of cyg_semaphore_wait() to match existing
1824
        behaviour of Cyg_Counting_Semaphore::wait().
1825
        Changed return type of cyg_cond_wait() to match new behaviour of
1826
        Cyg_Condition_Variable::wait().
1827
 
1828
2000-06-09  Nick Garnett  
1829
 
1830
        * include/mutex.hxx:
1831
        * src/sync/mutex.cxx:
1832
        Modified non-timeout condition variable wait() API to return
1833
        cyg_bool. A true result indicates that the wait() terminated
1834
        normally. A false result indicates that the wait() was terminated
1835
        as a result of a release() or destroy operation. For most uses
1836
        this distinction is irrelevant, but in some situations it is a
1837
        useful bit of information to have.
1838
        Also modified timeout condition variable wait to reacquire the
1839
        mutex under all circumstances. This is the correct and consistent
1840
        thing to do.
1841
 
1842
2000-06-08  Jesper Skov  
1843
 
1844
        * src/debug/dbg-thread-demux.c: Use generic HAL feature to allow
1845
        ROM/RAM intercalling.
1846
 
1847
2000-06-06  Jesper Skov  
1848
 
1849
        * tests/kcache1.c (entry0): Skip invalidate tests on TX49. Too slow.
1850
 
1851
2000-05-30  Gary Thomas  
1852
 
1853
        * tests/dhrystone.c: Increase number of test loops for faster
1854
        StrongARM platforms.
1855
 
1856
2000-05-22  Jonathan Larmour  
1857
 
1858
        * cdl/scheduler.cdl (CYGIMP_KERNEL_SCHED_SORTED_QUEUES): Disable by
1859
        default
1860
 
1861
        * src/sched/mlqueue.cxx (enqueue): Add to end of thread queue even
1862
        when not priority ordered
1863
 
1864
2000-05-20  Jonathan Larmour  
1865
 
1866
        * include/mqueue.hxx, include/mqueue.inl:
1867
        Add POSIX-style message queue implementation
1868
 
1869
        * cdl/kernel.cdl: Add mqueue1 test
1870
        * cdl/scheduler.cdl: Add new CYGIMP_KERNEL_SCHED_SORTED_QUEUES option
1871
 
1872
        * include/sema.hxx: Need thread.inl header, not just thread.hxx
1873
        Make Cyg_Counting_Semaphore::peek() const since it is
1874
 
1875
        * src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, include/sema2.hxx:
1876
        Make Cyg_Counting_Semaphore{2}::peek() const since it is
1877
 
1878
        * include/thread.hxx: don't want Cyg_Thread_queue::empty() to be marked
1879
        inline in the class def, otherwise we get warnings elsewhere
1880
 
1881
        * include/mlqueue.hxx (Cyg_ThreadQueue_Implementation):
1882
        Add set_thread_queue private method
1883
        Add derived class Cyg_SchedulerThreadQueue_Implementation, and
1884
        make scheduler implementation use it instead of
1885
        Cyg_ThreadQueue_Implementation
1886
 
1887
        * src/mlqueue.cxx: Fix typo
1888
        Support  CYGIMP_KERNEL_SCHED_SORTED_QUEUES, i.e. allow insertion
1889
        into thread queue in order of thread priority, with oldest at the
1890
        front
1891
        (Cyg_ThreadQueue_Implementation::set_thread_queue): Add
1892
        (Cyg_SchedulerThreadQueue_Implementation::enqueue): Add, like old
1893
        one, except make it FIFO instead of LIFO by inserting at end of queue
1894
 
1895
2000-05-16  Jesper Skov  
1896
 
1897
        * tests/dhrystone.c: More loops on the TX49
1898
 
1899
2000-05-15  Jonathan Larmour  
1900
 
1901
        * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY):
1902
        Default to CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY
1903
 
1904
2000-05-04  Jonathan Larmour  
1905
 
1906
        * include/instrmnt.h: Remove all CYG_UNUSED_PARAMs as they could
1907
        cause problems when used with volatile arguments
1908
        * src/intr/intr.cxx: Use CYG_UNUSED_PARAM to silence warning that
1909
        appears because of the above change.
1910
 
1911
2000-05-02  Gary Thomas  
1912
 
1913
        * tests/kintr0.c:
1914
        * tests/intr0.cxx: Correct test for cases when VSR_MIN or
1915
        ISR_MIN are not zero (bad assumption).
1916
 
1917
2000-05-02  Jonathan Larmour  
1918
 
1919
        * cdl/thread.cdl (CYGNUM_KERNEL_THREADS_DATA_LIBC): Don't need libc
1920
        slot. Replace with CYGNUM_KERNEL_THREADS_DATA_ERRNO slot instead.
1921
 
1922
2000-04-28  Nick Garnett  
1923
 
1924
        * src/sched/sched.cxx (unlock_inner):
1925
        A significant change to the behaviour of this function.  The
1926
        new_lock argument contains the value that the scheduler lock
1927
        should have after this function has completed. If it is zero then
1928
        the lock is being released and some extra work (running ASRs,
1929
        checking for DSRs) is done before returning. If it is non-zero
1930
        then it must equal the current value of the lock, and is used to
1931
        indicate that we want to reacquire the scheduler lock before
1932
        returning. This latter option only makes any sense if the current
1933
        thread is no longer runnable, otherwise this function will do
1934
        nothing.
1935
 
1936
        The result of this is that where we used to "blip" the scheduler
1937
        lock to force a sleep, we now call reschedule(), which calls
1938
        unlock_inner() with the current sched_lock value. The important
1939
        difference is that there is not now the brief window between the
1940
        calls where the lock is unclaimed. It also prevents ASRs being run
1941
        at inopportune moments. In future this will also allow us to force
1942
        threads to sleep even when they are deeply nested in the scheduler
1943
        lock.
1944
 
1945
        * include/mutex.hxx:
1946
        Added Cyg_Mutex::get_owner() to return pointer to owning thread.
1947
 
1948
        * include/sched.hxx:
1949
        * include/sched.inl:
1950
        Added new_lock argument to unlock_inner(), added reschedule().
1951
        Made set_asr_inhibit() and clear_asr_inhibit() available even when
1952
        ASRs are disabled.
1953
 
1954
        * include/mboxt.inl:
1955
        * src/sync/bin_sem.cxx:
1956
        * src/sync/cnt_sem.cxx:
1957
        * src/sync/flag.cxx:
1958
        * src/sync/mutex.cxx:
1959
        Converted instances of "blipping" the scheduler lock into calls to
1960
        Cyg_Scheduler::reschedule(), which is better behaved. Some calls
1961
        to set_asr_inhibit() and clear_asr_inhibit() also added in various
1962
        places.
1963
 
1964
2000-04-26  Jesper Skov  
1965
 
1966
        * tests/kcache1.c: Also to flush testing with unified caches.
1967
 
1968
2000-04-26  Jesper Skov  
1969
 
1970
        * tests/clockcnv.cxx:
1971
        * tests/dhrystone.c:
1972
        Renamed 850 HAL package.
1973
 
1974
2000-04-25  Jesper Skov  
1975
 
1976
        * tests/kcache1.c: Fixed cache check to also look for unified
1977
        caches.
1978
 
1979
2000-04-19  Jesper Skov  
1980
 
1981
        * tests/clockcnv.cxx:
1982
        * tests/dhrystone.c:
1983
        Only a few laps around the block on the v850...
1984
 
1985
2000-04-13  Nick Garnett  
1986
 
1987
        * include/clock.hxx:
1988
        * src/common/clock.cxx:
1989
        Added Cyg_Alarm::get_times() member function to allow reading of
1990
        trigger and interval values from an alarm.
1991
 
1992
2000-04-12  Nick Garnett  
1993
 
1994
        * include/sched.hxx:
1995
        * src/sched/sched.cxx:
1996
        Added ASR support.
1997
 
1998
        * include/thread.hxx:
1999
        Made Cyg_ThreadQueue::empty() an inline in class definition.
2000
 
2001
        * src/common/thread.cxx:
2002
        Added CYG_REPORT_FUNCTION() to Cyg_Thread::exit().
2003
 
2004
        * include/kapidata.h:
2005
        Brought thread structures up to date with kernel objects.
2006
 
2007
        * cdl/thread.cdl:
2008
        * cdl/scheduler.cdl:
2009
        Added ASR configuration, minor tidies.
2010
 
2011
2000-04-12  Gary Thomas  
2012
 
2013
        * src/common/kapi.cxx (cyg_scheduler_safe_lock):
2014
        * include/kapi.h: Add 'cyg_scheduler_safe_lock()' function.
2015
 
2016
2000-04-12  Jesper Skov  
2017
 
2018
        * cdl/interrupts.cdl:
2019
        * cdl/scheduler.cdl:
2020
        * cdl/counters.cdl:
2021
        Don't let interfaces define anything.
2022
 
2023
2000-04-07  Nick Garnett  
2024
 
2025
        * include/sched.hxx:
2026
        * include/thread.inl:
2027
        * src/sync/mutex.cxx:
2028
        * src/sched/sched.cxx:
2029
        * src/common/thread.cxx:
2030
        General reorganization of priority inversion protocol support,
2031
        addition of priority ceiling protocol.
2032
 
2033
        * include/mlqueue.hxx:
2034
        * src/sched/mlqueue.cxx:
2035
        Added timeslicing enable support.
2036
 
2037
        * cdl/thread.cdl:
2038
        * cdl/synch.cdl:
2039
        Reorganized priority inversion protocol configuration to permit
2040
        different protocols and dynamic choice.  Added configuration for
2041
        condition variables to use a user-specified mutex.
2042
 
2043
        * cdl/scheduler.cdl:
2044
        Added dynamic timeslicing enable option.
2045
 
2046
        * include/kapidata.h:
2047
        Adjusted to match changes in other header files.
2048
 
2049
        * tests/mutex3.cxx:
2050
        * tests/sync3.cxx:
2051
        Modified these tests to match new priority inversion protocols
2052
        configuration options.
2053
 
2054
2000-03-28  John Dallaway  
2055
 
2056
        * cdl/counters.cdl,
2057
          cdl/interrupts.cdl,
2058
          cdl/kernel.cdl,
2059
          cdl/scheduler.cdl,
2060
          cdl/synch.cdl,
2061
          cdl/thread.cdl:
2062
 
2063
        Adjust documentation URLs.
2064
 
2065
2000-03-27  Gary Thomas  
2066
 
2067
        * tests/except1.cxx:
2068
        * tests/kexcept1.c: Avoid trying to generate data access errors
2069
        on platforms that don't support them.
2070
 
2071
        * tests/kcache1.c: Ignore test if no [data] caches defined.
2072
 
2073
        * tests/stress_threads.c: Infer minimal configuration for platforms
2074
        with small amount of memory (as opposed to platform special cases).
2075
 
2076
2000-03-27  Jesper Skov  
2077
 
2078
        * src/sync/mutex.cxx:
2079
        * src/sched/sched.cxx:
2080
        * src/common/thread.cxx:
2081
        * src/common/clock.cxx:
2082
        Use cyg_bool instead of bool for check_this().
2083
 
2084
        * tests/dhrystone.c: Requires CYGPKG_LIBC_MALLOC
2085
 
2086
2000-03-07  Jesper Skov  
2087
 
2088
        * tests/mutex3.cxx: Minor tweak from Hugo to allow reduced runtime
2089
        on sims.
2090
 
2091
2000-02-29  Jonathan Larmour  
2092
 
2093
        * src/debug/dbg-thread-demux.c:
2094
        CYG_HAL_SPARCLITE_SLEB -> CYGPKG_HAL_SPARCLITE_SLEB
2095
        Also fix a comment typo
2096
 
2097
2000-02-29  Jesper Skov  
2098
 
2099
        * tests/kcache1.c: Don't run last part of test on MIPS sim - it's
2100
        very slow.
2101
 
2102
2000-02-25  Jesper Skov  
2103
 
2104
        * tests/dhrystone.c:
2105
        * tests/tm_basic.cxx:
2106
        Don't allow use of devices for diag output when running performace
2107
        tests.
2108
 
2109
2000-02-17  Jonathan Larmour  
2110
 
2111
        * include/pkgconf/kernel.h: Make
2112
        CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE a cdl_component
2113
        since it has children now
2114
 
2115
2000-02-17  Jesper Skov  
2116
        CR101202, CR902078
2117
        * include/mvarimpl.inl: Avoid unlinking the list from the head
2118
        during coalescing.
2119
 
2120
2000-02-11  Jesper Skov  
2121
 
2122
        * tests/dhrystone.c (PASSES): Reduced for MPC8xx targets.
2123
 
2124
2000-02-10  Jesper Skov  
2125
 
2126
        * tests/except1.cxx (except0_main):
2127
        * tests/kexcept1.c (except0_main):
2128
        Also reclaim DATA_TLB_MISS vector if available.
2129
 
2130
2000-02-03  Jesper Skov  
2131
 
2132
        * src/sched/lottery.cxx (schedule): CYG_HAL_POWERPC_x->CYGPKG_...
2133
 
2134
2000-02-01  Jonathan Larmour  
2135
 
2136
        * tests/tm_basic.cxx (NTEST_THREADS): Reduce further to fit on small
2137
        targets
2138
        (NMBOXES): Likewise
2139
        (NCOUNTERS): Likewise
2140
 
2141
        * src/common/clock.cxx: Rework last change - change types of
2142
        clock_dsr_read and delta to unsigned instead
2143
 
2144
2000-01-31  Jonathan Larmour  
2145
 
2146
        * src/common/clock.cxx (isr): Use HAL_CLOCK_LATENCY, not HAL_CLOCK_READ
2147
        (dsr): Likewise
2148
 
2149
        * cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY):
2150
        Copy configury for this option here from include/pkgconf/kernel.h - it
2151
        was left behind by accident
2152
 
2153
2000-01-31 Simon FitzMaurice  
2154
  * cdl/*.cdl:
2155
 
2156
  Adjust help URLs in line with new doc layout.
2157
 
2158
2000-01-31  Jesper Skov  
2159
 
2160
        * tests/tm_basic.cxx: Use CYG_TEST_NA insetad of PASS when not
2161
        applicable.
2162
 
2163
2000-01-28 Simon FitzMaurice  
2164
  * cdl/*.cdl:
2165
 
2166
  Adjust help URLs in line with new doc layout.
2167
 
2168
2000-01-26  Hugo Tyson  
2169
 
2170
        * include/clock.hxx (class Cyg_Clock): Add members to convert to
2171
        and from this clock resolution and others.
2172
 
2173
        * include/clock.inl (convert): New Cyg_Clock member.
2174
 
2175
        * src/common/clock.cxx (construct_converter): New routine to
2176
        factorize a rational (or very near neighbour) to help with clock
2177
        tick conversions for a particular clock.
2178
        (get_other_to_clock_converter):
2179
        (get_clock_to_other_converter): Cyg_Clock member functions to
2180
        construct converters to or from this clock, using above routine.
2181
 
2182
        * tests/clockcnv.cxx: New file: test the clock converters.
2183
 
2184
        * tests/PKGconf.mak (TESTS): Add clockcnv to the tests.
2185
 
2186
        * cdl/kernel.cdl: Add clockcnv to the tests.
2187
 
2188
2000-01-20  Hugo Tyson  
2189
 
2190
        * cdl/synch.cdl
2191
        (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY):
2192
        Change this to an active_if on simple prio-inh.  Was broken.
2193
 
2194
2000-01-19  Hugo Tyson  
2195
 
2196
        * cdl/*.cdl: Add descriptions to a number of options &c which were
2197
        lacking same, also tidied up other typos as noticed en passant.
2198
        Also reorganized calculated opts about per-thread-data in
2199
        thread.cdl; these are really for info only.
2200
 
2201
2000-01-19  Jesper Skov  
2202
        CR 902054
2203
        * tests/stress_threads.c: Don't assert requested priority =
2204
        allocated. Allow some flexibility of handler priorities.
2205
 
2206
2000-01-13  Hugo Tyson  
2207
 
2208
        * tests/mutex3.cxx (control_thread): Add a CYG_TEST_INIT();
2209
        Whoops!
2210
 
2211
2000-01-11  Hugo Tyson  
2212
 
2213
        * cdl/kernel.cdl: Add new kernel test mutex3, put in to test
2214
        RELAY prio inheritance extension.
2215
 
2216
        * tests/mutex3.cxx: New test case.  It tests mutex prio
2217
        inheritance - or not - in a multiple thread manner, depending only
2218
        on delays and the clock, so it tests that scheduling does the
2219
        right thing, rather than simply checking reported priorities.
2220
 
2221
        * tests/PKGconf.mak: Add new kernel test mutex3, put in to test
2222
        RELAY prio inheritance extension.
2223
 
2224
2000-01-11  Hugo Tyson  
2225
 
2226
        * cdl/synch.cdl: New config option added,
2227
        (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).
2228
 
2229
        * include/pkgconf/kernel.h: New config option added,
2230
        (CYGSEM_KERNEL_SYNCH_MUTEX_PRIORITY_INHERITANCE_SIMPLE_RELAY).
2231
        It is a child of ..._PRIORITY_INHERITANCE_SIMPLE and is really
2232
        only there to turn off if you really want the old implementation.
2233
 
2234
        * src/sync/mutex.cxx (unlock): Add call to
2235
        Cyg_SchedThread::relay_priority() when relinquishing the mutex, in
2236
        order to relay any raised priority to the new owner.  Also count
2237
        the mutex we are waiting for as well as those held for correct
2238
        recovery in the case of inheriting priority then being killed, for
2239
        example.
2240
 
2241
        * include/sched.hxx (class Cyg_SchedThread::relay_priority): New
2242
        member function declared.
2243
 
2244
        * src/sched/sched.cxx (Cyg_SchedThread::relay_priority): New
2245
        member function to implement pass-it-on or "discovered ceiling"
2246
        priority inheritance extension to the simple algorithm.  Also use
2247
        get_current_priority() in Cyg_SchedThread::inherit_priority() to
2248
        let this work.
2249
 
2250
2000-01-11  Hugo Tyson  
2251
 
2252
        * include/clock.hxx (class Cyg_Counter::counter): make the counter
2253
        volatile, otherwise a busy-wait loop for the real time clock to
2254
        change never completes.
2255
 
2256
1999-12-23  Hugo Tyson  
2257
 
2258
        * src/sched/sched.cxx (inherit_priority): Fix bug; inheriting a
2259
        2nd time would overwrite the saved initial_priority, so
2260
        disinheriting had no effect.
2261
 
2262
1999-12-13  Jonathan Larmour  
2263
 
2264
        * tests/tm_basic.cxx (run_alarm_tests): Add new measurement of
2265
        latency between alarm firing and thread resume
2266
 
2267
1999-12-13  Jonathan Larmour  
2268
 
2269
        * cdl/kernel.cdl: Fix some minor mistakes in the lists of tests to
2270
        build conditionally
2271
 
2272
1999-12-08  John Dallaway  
2273
 
2274
        * cdl/kernel.cdl:
2275
 
2276
        Conditionally build the tests 'stress_threads', 'kcache1' and
2277
        'kcache2'.
2278
 
2279
1999-11-30  Hugo Tyson  
2280
 
2281
        * src/common/kapi.cxx (cyg_scheduler_lock, cyg_scheduler_unlock):
2282
        assert good range for sched lock, and be defensive anyway.  This
2283
        is in response to a long time taken to track down a "unlocked too
2284
        many times" bug.
2285
 
2286
1999-11-24  Gary Thomas  
2287
 
2288
        * tests/tm_basic.cxx: Size tests based on available resources,
2289
        using MLT files.  Fall back if not available.
2290
 
2291
1999-11-22  Nick Garnett  
2292
 
2293
        * src/sched/bitmap.cxx (Cyg_Scheduler_Implementation::add_thread):
2294
        Fixed typo in assertion, and moved it to a more useful place.
2295
 
2296
1999-11-03  John Dallaway  
2297
 
2298
        * cdl/kernel.cdl: Define all tests.
2299
 
2300
1999-10-29  Gary Thomas  
2301
 
2302
        * tests/PKGconf.mak: Enable cache tests for Cirrus Logic boards.
2303
 
2304
1999-10-27  John Dallaway  
2305
 
2306
        * cdl/kernel.cdl:
2307
 
2308
        Specify CYGPKG_KERNEL_TESTS in terms of testing
2309
        source files.
2310
 
2311
1999-10-26  John Dallaway  
2312
 
2313
        * cdl/kernel.cdl:
2314
 
2315
        Define initial version of CYGPKG_KERNEL_TESTS for
2316
        verification purposes.
2317
 
2318
1999-10-19  John Dallaway  
2319
 
2320
        * cdl/kernel.cdl:
2321
 
2322
        Define CDL options for package-specific CFLAGS.
2323
 
2324
1999-10-08  Jesper Skov  
2325
 
2326
        * tests/kcache1.c: Fix array size.
2327
 
2328
        * src/sched/bitmap.cxx (add_thread):
2329
        * src/sched/mlqueue.cxx (add_thread):
2330
        Check for valid thread priority.
2331
 
2332
1999-10-07  John Dallaway  
2333
 
2334
        * cdl/counters.cdl,
2335
          cdl/interrupts.cdl,
2336
          cdl/scheduler.cdl:
2337
 
2338
        Specify radio buttons using CDL interfaces.
2339
 
2340
1999-10-06  Bart Veer  
2341
 
2342
        * cdl/scheduler.cdl:
2343
        Make the schedulers mutually exclusive via a cdl_interface
2344
 
2345
1999-10-05  Jesper Skov  
2346
 
2347
        * tests/kcache1.c: Reduced memory footprint.
2348
 
2349
1999-09-25  Jesper Skov  
2350
 
2351
        * tests/stress_threads.c: Added date header and flush() calls.
2352
 
2353
1999-09-16  Hugo Tyson  
2354
 
2355
        * tests/tm_basic.cxx (run_mutex_tests): Must unlock mutices before
2356
        destroying, given the change below.
2357
 
2358
        * src/common/kapi.cxx (cyg_cond_destroy): Call the correct
2359
        destructor.  As it happens, it didn't matter because all these
2360
        destructors do is assert the queue is empty, and the queue is the
2361
        2nd word in every case.
2362
        (cyg_mutex_destroy): Call the destructor at all, so that
2363
        assertions are made.
2364
 
2365
1999-09-13  Gary Thomas  
2366
 
2367
        * src/intr/intr.cxx (call_pending_DSRs_inner): Add assert to check
2368
        for valid DSR (before trying to use it).
2369
 
2370
1999-09-13  Jesper Skov  
2371
 
2372
        * tests/stress_threads.c: Print out malloc system info.
2373
        (print_statistics): Fix buglet.
2374
 
2375
1999-09-10  Jesper Skov  
2376
 
2377
        * tests/stress_threads.c: Print out more info. Reduce dump
2378
        frequency as test runs.
2379
 
2380
1999-08-25  Jonathan Larmour  
2381
 
2382
        * include/pkgconf/kernel.h: Add missing close brace in
2383
        CYGIMP_KERNEL_COUNTERS_CLOCK_LATENCY CDL.
2384
 
2385
1999-08-24  Nick Garnett  
2386
 
2387
        * tests/kcache1.c (entry0): Depending on architecture, set
2388
        cyg_test_is_simulator for last two tests. Otherwise they take far
2389
        too long and time out.
2390
 
2391
1999-08-23  Hugo Tyson  
2392
 
2393
        * tests/intr0.cxx (vsr0):
2394
        * tests/kintr0.c (vsr0):
2395
        Add a comment to the effect that vsr0() is NOT a valid VSR on any
2396
        known platform; VSRs must be writ in assembler.  Customer
2397
        requested this, the examples are rather confusing otherwise.
2398
 
2399
1999-08-23  Nick Garnett  
2400
 
2401
        * include/pkgconf/kernel.h:
2402
        * src/common/clock.cxx:
2403
        * tests/tm_basic.cxx:
2404
        Added CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY to enable recording
2405
        of DSR latency figures. Added code controlled by this option to
2406
        clock and tm_basic. Also made interrupt latency measurement
2407
        primarily dependent on CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY since
2408
        whether HAL_CLOCK_LATENCY is defined is not sufficient.
2409
 
2410
1999-08-17  John Dallaway  
2411
 
2412
        * cdl/counters.cdl, cdl/interrupts.cdl, cdl/scheduler.cdl:
2413
 
2414
        Implement radio buttons using "FIXME radio" hack in
2415
        description field for now.
2416
 
2417
1999-08-16  Jonathan Larmour  
2418
 
2419
        * src/sload/sload.c: Rename AM32 to AM31
2420
 
2421
1999-08-12  Nick Garnett  
2422
 
2423
        * src/debug/dbg_gdb.cxx (dbg_make_threadref): Extended test for
2424
        uninitialized thread pointer.
2425
 
2426
1999-07-29  Jesper Skov  
2427
 
2428
        * src/sync/mutex.cxx (lock): Removed assertion again. Not possible
2429
        to determine if a violation wil cause a deadlock.
2430
 
2431
1999-07-27  Jesper Skov  
2432
 
2433
        * src/sync/mutex.cxx (lock): Added simple assertion check for
2434
        deadlocks.
2435
 
2436
        * tests/stress_threads.c: Only allow printf from main thread to
2437
        prevent deadlocks.
2438
 
2439
1999-07-14  Hugo Tyson  
2440
 
2441
        * tests/kcache1.c (entry0): Also perform timing tests with
2442
        HAL_DCACHE_INVALIDATE_ALL and/or HAL_ICACHE_INVALIDATE_ALL in the
2443
        loop if provided by the HAL.  Invalidating the Data cache can
2444
        spoil clock operation, so elapsed time appears to be 0.
2445
 
2446
        * tests/kcache2.c (entry0): Replace the "if (0)" for having a
2447
        copy-back cache with a proper test on a HAL macro.  Even though I
2448
        couldn't actually get those parts of the test to work on the
2449
        platform I'm currently working on.
2450
 
2451
        * tests/PKGconf.mak (TESTS): Do build kcache1 and kcache2 for the
2452
        ARM_EBSA285; it seems kosher.  kcache2 does absolutely nothing, of
2453
        course.
2454
 
2455
1999-07-09  Jesper Skov  
2456
        PR 20210, 20142
2457
        * tests/stress_threads.c: Shifted thread priorities to make room
2458
        for main() at priority 0.
2459
 
2460
        Fixed indentation.
2461
 
2462
1999-07-08  Jesper Skov  
2463
        PR 20244
2464
        * tests/stress_threads.c: Changed cyg_user_start() to main()
2465
        ensuring a bigger stack (it calls sprintf).
2466
        Increased STACK_SIZE by 2kB for printf calls.
2467
 
2468
1999-06-30  Jesper Skov  
2469
 
2470
        * tests/dhrystone.c: Also NA-quit if CYGPKG_INFRA_DEBUG or
2471
        CYGPKG_KERNEL_INSTRUMENT are enabled.
2472
 
2473
1999-06-23  Jesper Skov  
2474
        PR 20209
2475
        * tests/dhrystone.c: Use fewer loops on ARM targets - they don't
2476
        have a cache.
2477
 
2478
1999-06-22  Nick Garnett  
2479
 
2480
        * src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Was testing the wrong
2481
        macro for the default ISR. Fixed.
2482
 
2483
        * src/common/clock.cxx (Cyg_RealTimeClock::isr): Add HANDLED bit
2484
        to returned value.
2485
 
2486
1999-06-21  Jesper Skov  
2487
        PR 20209
2488
        * tests/dhrystone.c: Don't run test on sims or synthetic target.
2489
        Only run test when compiled with optimization.
2490
 
2491
1999-06-18  Jesper Skov  
2492
 
2493
        * tests/dhrystone.c: Added unsupported header.
2494
 
2495
1999-06-10  Hugo Tyson  
2496
 
2497
        * src/debug/dbg_gdb.cxx (dbg_threadinfo): Report counted sleep
2498
        correctly; both COUNTSLEEP and SLEEPING are set.
2499
 
2500
1999-06-01  Hugo Tyson  
2501
 
2502
        * src/debug/dbg_gdb.cxx (dbg_threadinfo): Make the thread state
2503
        string a little more sensible when read as plain english.
2504
 
2505
1999-05-31  Jesper Skov  
2506
 
2507
        * tests/dhrystone.c:
2508
        * tests/PKGconf.mak (TESTS):
2509
        Added dhrystone test.
2510
 
2511
        Updated to 2.1 from ftp.nosc.mil
2512
 
2513
1999-05-27  Nick Garnett  
2514
 
2515
        * src/intr/intr.cxx (Cyg_Interrupt::chain_isr): Calls
2516
        HAL_DEFAULT_ISR if it is defined and no chained ISRs have
2517
        reported that they have handled the interrupt.
2518
 
2519
        * src/debug/dbg_gdb.cxx (dbg_make_threadref): Fixed this routine
2520
        so that it copes with a NULL thread object.
2521
 
2522
1999-05-27  Jesper Skov  
2523
 
2524
        * tests/stress_threads.c: Output stackmon status
2525
        occasionally. Output (simple) run time.
2526
 
2527
1999-05-27  Jesper Skov  
2528
 
2529
        * tests/kcache1.c: Added handling of unified caches.
2530
 
2531
1999-05-26  Jesper Skov  
2532
 
2533
        * include/test/stackmon.h: Fixed some typos and thinkos.
2534
 
2535
        * tests/tm_basic.cxx: Include new stackmon header.
2536
 
2537
        * src/common/kapi.cxx:
2538
        * include/kapi.h:
2539
        Added kapi support for stackmon requirements.
2540
 
2541
        * include/stackmon.hxx:    [deleted]
2542
        * include/test/stackmon.h: [added]
2543
        Made stackmon safe to use from both C and C++.
2544
 
2545
1999-05-25  Jesper Skov  
2546
 
2547
        * tests/stress_threads.c (setup_death_alarm): Only compile when
2548
        DEATH_TIME_LIMIT is defined.
2549
 
2550
1999-05-25  Jonathan Larmour  
2551
 
2552
        * tests/except1.cxx:
2553
        * tests/intr0.cxx (intr0_main):
2554
        * tests/kexcept1.c:
2555
        * tests/kintr0.c (kintr0_main):
2556
        Change all mentions of CYG_HAL_TX39[_JMR3904] to
2557
        CYG_HAL_MIPS_TX39[_JMR3904]
2558
 
2559
        * tests/kcache1.c: Use HAL_DCACHE_SYNC if possible
2560
 
2561
1999-05-20  Hugo Tyson  
2562
 
2563
        * tests/tm_basic.cxx (run_all_tests): Added some more stack stats
2564
        output using stackmon.hxx; also fixed a BUG associated with the
2565
        definition of stacks in testaux.hxx (within tests dir) that was
2566
        making the main stack usage bogus.
2567
 
2568
        * include/stackmon.hxx: new file, to ease printing stuff about
2569
        stack usage, particularly of interrupt stacks and the idle
2570
        thread.  It's not HAL specific, and it can apply to tests outside
2571
        of the kernel, which is why it's in a public include-place.
2572
        It just contains inline functions which define empty if there's no
2573
        handle on the symbols available, so should be safe enough.
2574
 
2575
1999-05-18  Jesper Skov  
2576
 
2577
        * tests/stress_threads.c (main_program): Changed behavior of
2578
        cyg_thread_delete caller.
2579
 
2580
1999-05-18  Hugo Tyson  
2581
 
2582
        * include/kapi.h (cyg_thread_delete): is now a boolean function to
2583
        indicate success.  Failure is when the thread needs to run in
2584
        order to become killed.
2585
 
2586
        * src/common/kapi.cxx (cyg_thread_delete): Try killing the thread
2587
        if necessary before deleting; only run the destructor if it was
2588
        killed, and tell the caller so.
2589
        (cyg_thread_kill): Back to the simpler version with no priority
2590
        diddling; it's up to the called to determine that it _has_ died.
2591
 
2592
        * src/common/thread.cxx (kill): Only perform the state-changes
2593
        implied by kill if the thread has not already been killed;
2594
        otherwise two kill()'s will remove a thread unconditionally,
2595
        whether it's in the middle of a wait that needs tidying up or not.
2596
        In other words, ensure idempotency.
2597
 
2598
1999-05-17  Hugo Tyson  
2599
 
2600
        * src/common/kapi.cxx (cyg_thread_kill): Up the priority of the
2601
        killee to make it terminate *now* if we have priorities and they
2602
        are not unique, otherwise asserts are likely with the bitmap
2603
        scheduler.  Likewise in thread delete.  Condition out the bodies
2604
        of the priority ops if the scheduler does not support priorities.
2605
 
2606
1999-05-16  Gary Thomas  
2607
 
2608
        * src/intr/intr.cxx (call_pending_DSRs):
2609
        * include/intr.hxx: Change mechanism for defining HAL function
2610
        to run DSRs.  This was a "weak" symbol with override, but is now
2611
        a macro in .
2612
 
2613
1999-05-13  Nick Garnett  
2614
 
2615
        The following changes were all made in a branch and are now being
2616
        merged:
2617
 
2618
    1999-05-06  Nick Garnett  
2619
 
2620
        * src/debug/dbg-thread-demux.c:
2621
        Use dbg-thread-syscall.h from HAL rather than local version.
2622
        Made dbg_thread_syscall_rmt_1() generic to all MIPS targets.
2623
 
2624
        * src/debug/dbg-thread-syscall.h:
2625
        Removed. Replaced by identical file in hal/common.
2626
 
2627
    1999-04-21  Nick Garnett  
2628
 
2629
        * include/pkgconf/kernel.h:
2630
        Added CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.
2631
        Changed CYGNUM_KERNEL_COUNTERS_RTC_PERIOD to the correct value for
2632
        VR4300.
2633
 
2634
        * include/instrmnt.h: Added CYG_INSTRUMENT_EVENT_THREAD_ENTER
2635
        event.
2636
 
2637
        * src/instrmnt/meminst.cxx (cyg_instrument): Added implementation
2638
        of CYGDBG_KERNEL_INSTRUMENT_BUFFER_WRAP option.
2639
 
2640
        * src/common/thread.cxx: Added extra instrumentation point on
2641
        thread entry.
2642
 
2643
1999-05-10  Jesper Skov  
2644
 
2645
        * tests/stress_threads.c (main_program): Added workaround for a
2646
        few PRs.
2647
 
2648
1999-05-07  Jesper Skov  
2649
 
2650
        * src/common/kapi.cxx (cyg_scheduler_unlock, cyg_scheduler_lock):
2651
        Make these simple calls to the scheduler.
2652
 
2653
1999-05-07  Jesper Skov  
2654
 
2655
        * tests/stress_threads.c (setup_death_alarm): Reduce run time on
2656
        synthetic target.
2657
 
2658
1999-05-06  Jesper Skov  
2659
 
2660
        * tests/stress_threads.c: Reversed priorities of agents.
2661
 
2662
1999-05-06  Jesper Skov  
2663
        PRs 20040, (20027), 19991
2664
        * tests/stress_threads.c: Added main_thread handling resource
2665
        deallocation and printing.
2666
 
2667
1999-04-27  Jonathan Larmour  
2668
 
2669
        * tests/stress_threads.c:
2670
        If there aren't enough priorities, output an N/A, rather than
2671
        stopping compilation with a #error
2672
 
2673
1999-04-28  Jesper Skov  
2674
        PR 19850
2675
        * tests/stress_threads.c: Don't print text from alarm handler.
2676
 
2677
1999-04-28  Jesper Skov  
2678
        PR 19945 workaround
2679
        * tests/kexcept1.c:
2680
        * tests/except1.cxx:
2681
        Made NA to PowerPC SIM.
2682
 
2683
1999-04-27  Gary Thomas  
2684
 
2685
        * tests/tm_basic.cxx:
2686
        Use/test 'cyg_thread_delete()' function.
2687
        Add ability to compute statistics with first datum removed which
2688
        can show up cache effects.
2689
        Show thread stack usage.
2690
 
2691
        Fix merge screwup :-(
2692
 
2693
1999-04-26  Hugo Tyson  
2694
 
2695
        * include/kapi.h: Add missing function cyg_thread_delete();
2696
        otherwise there is no way in the C API to re-use thread memory
2697
        safely.  It just calls the destructor of the Cyg_Thread class.
2698
 
2699
        * src/common/kapi.cxx (cyg_thread_delete): Implement it.
2700
 
2701
1999-04-26  Hugo Tyson  
2702
 
2703
        * tests/stress_threads.c: Commit a better version for Mark since I
2704
        happen to have it here; having addressed the main concern of my
2705
        approval process.  It runs better in sims so long as the
2706
        constructor execution isn't messed with, nor timeslicing nor
2707
        priority inheritance.
2708
 
2709
1999-04-23  Mark Galassi  
2710
 
2711
        * tests/stress_threads.c (setup_death_alarm): shortened the
2712
        simulator time by another factor of 10, hoping that it will not
2713
        slow down nightly testing for simulator platforms too much.
2714
        (perform_stressful_tasks): added writing of a bit pattern to the
2715
        malloc()-ed spaces.  Also reduced stack requirements for threads.
2716
 
2717
1999-04-23  Hugo Tyson  
2718
 
2719
        * src/common/timer.cxx (Cyg_Timer::activate): we must also disable
2720
        the alarm when resetting it so as to remove it from its queue, so
2721
        that the enable afterwards places it on the right queue instead of
2722
        assuming that, being enabled, it's already there.  (if not
2723
        enabling, the behaviour is unchanged and correct) This was
2724
        detected by uITRON tests[cx]4, with some random perms including
2725
        enable CYGIMP_KERNEL_COUNTERS_MULTI_LIST,
2726
        value CYGNUM_KERNEL_COUNTERS_MULTI_LIST_SIZE {8}.
2727
        The PR is 19475.
2728
 
2729
1999-04-21  Hugo Tyson  
2730
 
2731
        * tests/bin_sem1.cxx (bin_sem1_main): Doh!  Use priorities 4 and 5
2732
        for the two threads so that they are unique (with a bitmap
2733
        scheduler, the threads had prios 0 and 1 resp, which causes an
2734
        assert in the attempt to set thread 0's prio to 1, "prios not
2735
        unique").  PR 19904.
2736
 
2737
1999-04-20  Jonathan Larmour  
2738
 
2739
        * tests/kcache2.c:
2740
        Reduce iterations for time_ilock(), time_dlock(), and test_dzero()
2741
        if a simulated environment is detected
2742
        Fix for PR 19853
2743
 
2744
1999-04-19  Jonathan Larmour  
2745
 
2746
        * tests/kill.cxx: Make delay ticks greater than 1 to prevent
2747
        scheduling problems if the clock rolls over immediately
2748
        Fix for PR 19516
2749
 
2750
1999-04-20  Mark Galassi  
2751
 
2752
        * tests/stress_threads.c: applied Hugo's patch to fix stack sizes.
2753
 
2754
1999-04-19  Hugo Tyson  
2755
 
2756
        * tests/bin_sem1.cxx (bin_sem1_main): Add priorities to the
2757
        threads so that they run sequentially like the tester expected.
2758
        Otherwise simple timing, and shorter timeslicing, causes failure
2759
        to be reported; likewise if the kernel happens not to run entry0
2760
        first!
2761
        (another checkin)
2762
        (bin_sem1_main): Add conditional use of set_priority on
2763
        CYGIMP_THREAD_PRIORITY as it should be.
2764
 
2765
1999-04-14  Jesper Skov  
2766
 
2767
        * src/debug/dbg_gdb.cxx: Fixed compiler warnings, cleaned up stub
2768
        requirements (removed FIX ME).
2769
 
2770
1999-04-14  Gary Thomas  
2771
 
2772
        * include/intr.hxx:
2773
        * src/intr/intr.cxx (call_pending_DSRs_inner): Rework calling of
2774
        DSRs to allow calls from HAL code.  This will allow for proper
2775
        use of a separate interrupt stack.
2776
 
2777
1999-04-14  Mark Galassi  
2778
 
2779
        * tests/PKGconf.mak: added an ifndef for the AEB-1 board so that
2780
        stress_threads is only built conditionally.
2781
 
2782
        * tests/stress_threads.c: added more config smarts suggested by
2783
        Jesper for his configurations.
2784
 
2785
1999-04-13  Jesper Skov  
2786
        PR 19822
2787
        * src/debug/dbg_gdb.cxx: Current thread's registers live in
2788
        registers, not _registers.
2789
 
2790
1999-04-13  Mark Galassi  
2791
 
2792
        * tests/stress_threads.c: simple stressing of thread
2793
        creation/deletion with some memory-intensive and alarm-based
2794
        tasks.  This version is set so that it dies after DEATH_TIME_LIMIT
2795
        seconds, currently set to 120.  #undef-ing DEATH_TIME_LIMIT makes
2796
        the test run forever.  This is currently not working with the
2797
        bitmap scheduler, probably for some simple reason, but I have not
2798
        yet broken it down to see why.
2799
 
2800
1999-04-12  Jonathan Larmour  
2801
 
2802
        * tests/except1.cxx:
2803
        * tests/kexcept1.cxx:
2804
        Remove now unnecessary tx39-specific setting of
2805
        CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS VSR
2806
        Part of cleanup for PR 19731
2807
 
2808
1999-04-09  Hugo Tyson  
2809
 
2810
        Generally: thread->to_queue_head() moves a thread to the head of
2811
        whatever queue it is on, if relevant.  This is so that a thread
2812
        can change priority and then put itself at the front of its new
2813
        run queue instead of the end; otherwise it yields too, which may
2814
        be undesirable.  Particularly for internal use of priorities in
2815
        the uITRON compatibility layer.
2816
 
2817
        * include/thread.hxx (class Cyg_Thread): to_queue_head(): new
2818
        function. Define Cyg_Thread::rotate_queue() for all schedulers.
2819
        Public inheritance of Cyg_ThreadQueue_Implementation.
2820
 
2821
        * include/thread.inl (class Cyg_Thread): to_queue_head(): new
2822
        function. Define Cyg_Thread::rotate_queue() for all schedulers.
2823
 
2824
        * include/mlqueue.hxx (class Cyg_SchedThread_Implementation):
2825
        to_queue_head(), ...ThreadQueue...::to_head(): new functions.
2826
 
2827
        * src/sched/mlqueue.cxx (class Cyg_SchedThread_Implementation):
2828
        to_queue_head(), ...ThreadQueue...::to_head(): new functions.
2829
 
2830
        * include/bitmap.hxx (class Cyg_SchedThread_Implementation):
2831
        Add empty placeholders for rotate_queue() and to_queue_head() to
2832
        maintain commonality of interface.
2833
 
2834
1999-04-08  Jesper Skov  
2835
        PR 19667
2836
        * kernel/current/src/common/thread.cxx:
2837
        Removed obsolete Cyg_Thread constructor.
2838
 
2839
        * kernel/current/tests/testaux.hxx:
2840
        * kernel/current/tests/thread0.cxx:
2841
        * kernel/current/tests/thread1.cxx:
2842
        Changed to use the new Cyg_Thread constructor.
2843
 
2844
1999-04-08  Jesper Skov  
2845
 
2846
        * src/common/kapi.cxx: Minor indentation fixes.
2847
 
2848
1999-04-07  Jesper Skov  
2849
        PR 19743
2850
        * include/mfiximpl.inl (Cyg_Mempool_Fixed_Implementation): Moved
2851
        argument assertions before the first use of the arguments.
2852
 
2853
1999-04-07  Hugo Tyson  
2854
 
2855
        * tests/kexcept1.c (except0_main):
2856
        * tests/except1.cxx (except0_main):
2857
        Use macro HAL_VSR_SET_TO_ECOS_HANDLER() if defined, to reset
2858
        likely exception handler VSRs to eCos' default handlers - the
2859
        target side equivalent to CYG_TEST_GDBCMD("handle SIGBUS nostop");
2860
        The VSR may not be the eCos standard one in some implementations
2861
        of cooperation with CygMon.
2862
 
2863
1999-03-31  Nick Garnett  
2864
 
2865
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
2866
        Fixed value of this option for TX39 66MHz to correct number.
2867
 
2868
1999-03-25  Gary Thomas  
2869
 
2870
        * tests/tm_basic.cxx: More adjustments to get clock latency correct.
2871
        Some fine tuning of messages and layout to fit well within 80 columns.
2872
 
2873
1999-03-24  Nick Garnett  
2874
 
2875
        * include/pkgconf/kernel.h: Fixed an ifdef error.
2876
 
2877
1999-03-24  Gary Thomas  
2878
 
2879
        * tests/tm_basic.cxx (NTEST_THREADS): Reduce # threads so test can
2880
        build on smaller machines.  Also, only adjust timings by single
2881
        "overhead" value instead of the more generous 2*overhead.
2882
 
2883
        * src/common/clock.cxx: Clock latency measurement defaults to 'off'.
2884
 
2885
1999-03-23  Nick Garnett  
2886
 
2887
        * tests/kcache2.c: Reduced number of loops in time_ilock(). On the
2888
        MN10300 and TX39 this caused the test to timeout in the testing
2889
        farm.
2890
 
2891
1999-03-23  Gary Thomas  
2892
 
2893
        * tests/tm_basic.cxx:
2894
        * src/common/clock.cxx: Add 'measure_clock_latency' boolean which
2895
        is used to turn clock latency measurements on/off.
2896
 
2897
1999-03-23  Nick Garnett  
2898
 
2899
        * tests/tm_basic.cxx (run_all_tests): Changed initial delay from
2900
        100 ticks to 2. This is adequate for the purpose of letting the
2901
        clock get going, while 100 ticks was too long on simulators.
2902
 
2903
1999-03-23  Hugo Tyson  
2904
 
2905
        * tests/kcache1.c:
2906
        * tests/kcache2.c:
2907
        * tests/kclock1.c:
2908
        * tests/kexcept1.c:
2909
        * tests/kflag1.c:
2910
        * tests/kmbox1.c:
2911
        * tests/kmemfix1.c:
2912
        * tests/kmemvar1.c:
2913
        * tests/kmutex1.c:
2914
        * tests/ksched1.c:
2915
        * tests/ksem1.c:
2916
        * tests/kthread0.c:
2917
        * tests/thread0.cxx:
2918
        Use CYGNUM_HAL_STACK_SIZE_TYPICAL instead of "4096" and include
2919
        hal_arch.h where necessary to get it.
2920
 
2921
1999-03-22  Hugo Tyson  
2922
 
2923
        * include/thread.inl (attach_stack):
2924
        Fix typo in assert; missing comma.
2925
 
2926
1999-03-22  Jonathan Larmour  
2927
 
2928
        * src/debug/dbg-thread-syscall.h: Update copyright
2929
 
2930
1999-03-22  Hugo Tyson  
2931
 
2932
        * include/thread.inl:
2933
        * src/common/thread.cxx:
2934
        * tests/kthread1.c:
2935
        * tests/testaux.hxx:
2936
        * tests/thread1.cxx:
2937
        * tests/thread_gdb.c:
2938
        * tests/tm_basic.cxx:
2939
        Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of
2940
        CYGNUM_HAL_MINIMUM_STACK_SIZE.
2941
        Except for stack checking and the idle thread stack which uses
2942
        CYGNUM_HAL_STACK_SIZE_MINIMUM.
2943
 
2944
1999-03-19  Nick Garnett  
2945
 
2946
        * tests/kcache1.c:
2947
        * tests/kcache2.c:
2948
        Made all CYG_INTERRUPT_STATE variables register variables. The
2949
        value of this variable has to survive cache invalidation and does
2950
        not in some testing permutations that are unoptimized.
2951
        Fixes PR 19165.
2952
 
2953
        * include/kapi.h: Type of cyg_tick_count_t changed to cyg_uint64.
2954
        Response to PR 19320.
2955
 
2956
1999-03-19  Gary Thomas  
2957
 
2958
        * tests/tm_basic.cxx: Much better analysis of clock interrupt times.
2959
        Print average deviation instead of variance.  Also print "confidence"
2960
        numbers which are a measure of "how likely" a particular number would
2961
        be relative to the mean and min of the sample set.
2962
 
2963
1999-03-17  Gary Thomas  
2964
 
2965
        * tests/tm_basic.cxx: Improve messages and layout.
2966
        Better message for 'hardware clock tick' value.
2967
 
2968
        * src/common/clock.cxx: Be more careful about clock latency delta
2969
        values that are used/kept - some hardware can yield incorrect values.
2970
 
2971
        * tests/testaux.hxx: Use HAL recommended stack size for default.
2972
 
2973
1999-03-16  Nick Garnett  
2974
 
2975
        * src/common/thread.cxx:
2976
        Removed MIPS specific definition of idle_thread_stack[]. This is
2977
        so it gets the benefit of the redefinition of
2978
        CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE. This definition has also
2979
        been made static, since the MIPS compiler would otherwise put it
2980
        in the .data section.
2981
 
2982
        * include/intr.hxx (class Cyg_Interrupt):
2983
        Changed implementation of Cyg_Interrupt::interrupts_enabled() to
2984
        test the value of disable_counter, rather than the hardware.
2985
 
2986
1999-03-15  Nick Garnett  
2987
 
2988
        * tests/kcache1.c:
2989
        * tests/kcache2.c:
2990
        Added interrupt disables around cache operations. If these take
2991
        too long, an inopportune interrupt can disrupt the cache contents,
2992
        or result in the interrupt seeing an inconsistent world.
2993
 
2994
1999-03-15  Gary Thomas  
2995
 
2996
        * tests/tm_basic.cxx: Improved and cleaned up messages overall.
2997
 
2998
1999-03-15  Jesper Skov  
2999
        PR 19504
3000
        * tests/tm_basic.cxx: Kill created threads after mutex, mbox and
3001
        semaphore tests.
3002
 
3003
1999-03-12  Hugo Tyson  
3004
 
3005
        * src/debug/dbg-thread-demux.c:
3006
        Only try handling the SPARClite-SLEB vector correctly if
3007
        CYG_HAL_USE_ROM_MONITOR_CYGMON ie. we are talking with CygMon.
3008
        Otherwise the code is wrong, but also not used.  No matter.
3009
 
3010
1999-03-12  Hugo Tyson  
3011
 
3012
        * tests/kthread1.c:
3013
        * tests/thread1.cxx:
3014
        * tests/thread_gdb.c:
3015
        Deal with CYGNUM_HAL_MINIMUM_STACK_SIZE requirement.
3016
 
3017
1999-03-12  Gary Thomas  
3018
 
3019
        * include/thread.inl (attach_stack): Add check/assert for minimum
3020
        stack size (HAL defined)
3021
 
3022
1999-03-11  Hugo Tyson  
3023
 
3024
        * src/debug/dbg-thread-demux.c (patch_dbg_syscalls):
3025
        Use the correct vector table slot for SPARClite-SLEB; it's not 15
3026
        on here, it's BSP_VEC_MT_DEBUG from the hal's hal_cygm.h
3027
 
3028
1999-03-11  Nick Garnett  
3029
 
3030
        * tests/testaux.hxx:
3031
        Move definition of inline placement operator new outside of ifdef
3032
        for NTHREADS so that it can be used by other code.
3033
 
3034
        * tests/intr0.cxx:
3035
        * tests/thread1.cxx:
3036
        Make use of placement operator new rather than dynamic one in
3037
        intr0. Removed duplicate definition from thread1.
3038
 
3039
1999-03-11  Jesper Skov  
3040
        PR 19472
3041
        * tests/kill.cxx: Increased delays for the synthetic target.
3042
 
3043
1999-03-11  Jesper Skov  
3044
        PR 19468
3045
        * tests/intr0.cxx (intr0_main):
3046
        * tests/kintr0.c (kintr0_main):
3047
        Only attach interrupt handlers to vectors not in use.
3048
 
3049
1999-03-10  Jesper Skov  
3050
        PR 19368
3051
        * src/sched/sched.cxx (start): Change the dependency for
3052
        referencing the RTC to make its inclusion independent of scheduler
3053
        choice.
3054
 
3055
1999-03-10  Jesper Skov  
3056
        PR 17357
3057
        * src/intr/intr.cxx (attach): Assert that interrupt vector attach
3058
        will succeed.
3059
 
3060
1999-03-10  Nick Garnett  
3061
 
3062
        * include/pkgconf/kernel.h:
3063
        Changed names used to control clock frequency on TX39 target.
3064
 
3065
1999-03-08  Gary Thomas  
3066
 
3067
        * src/sync/mutex.cxx: Allow 'Cyg_Condition_Variable::wait()'
3068
        to be entered with the scheduler locked (and thsu exit in
3069
        the same state).  This will allow for fully thread-safe use
3070
        of 'Cyg_Condition_Variable::wait()'.
3071
 
3072
1999-02-26  Jonathan Larmour  
3073
 
3074
        * tests/except1.cxx (except0_main):
3075
        * tests/kexcept1.c (except0_main):
3076
        Move CYG_TEST_GDBCMD back to being before CYG_TEST_INIT
3077
 
3078
1999-02-26  Jesper Skov  
3079
        PR 19283
3080
 
3081
        * src/common/kapi.cxx: Changed cyg_exception_call_handler
3082
        definition to be consistent with declaration.
3083
 
3084
        * include/kapi.h: Change cyg_code_t to signed type.
3085
 
3086
        * tests/except1.cxx (except0_main):
3087
        * tests/kexcept1.c (except0_main):
3088
        Init diag before making first output.
3089
 
3090
1999-02-26  Jesper Skov  
3091
        PR 19284
3092
        * tests/mutex2.cxx (mutex2_main): Set priorities in a different
3093
        order.
3094
 
3095
1999-02-25  Nick Garnett  
3096
 
3097
        * include/sched.hxx (class Cyg_Scheduler_Base):
3098
        Added CYGBLD_ATTRIB_ASM_ALIAS(cyg_scheduler_sched_lock) to
3099
        declaration of sched_lock member. This makes it have the given
3100
        name in the object and assembler files. This in turn eliminates
3101
        the need to have a C++ mangled name in the HAL.
3102
 
3103
        * src/intr/intr.cxx:
3104
        Cyg_Interrupt::detach() was not translating the vector to a table
3105
        index correctly in the chained case. Fixed.
3106
 
3107
1999-02-24  Nick Garnett  
3108
 
3109
        * include/intr.hxx:
3110
        * src/intr/intr.cxx:
3111
        Added an interrupt disable counter to
3112
        Cyg_Interrupt::disable_interrupts() and
3113
        Cyg_Interrupt::enable_interrupts().
3114
 
3115
1999-02-23  Nick Garnett  
3116
 
3117
        * include/pkgconf/kernel.h:
3118
        Added support for 66MHz part.
3119
 
3120
        * include/instrmnt.h:
3121
        Added CYG_INSTRUMENT_EVENT_MUTEX_RELEASE and
3122
        CYG_INSTRUMENT_EVENT_MUTEX_RELEASED. This should have been part of
3123
        the 1999-02-22 checkin.
3124
 
3125
1999-02-23  Jonathan Larmour  
3126
 
3127
        * tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,
3128
          tests/kcache1.c, tests/kcache2.c, tests/kclock0.c, tests/kclock1.c,
3129
          tests/kexcept1.c, tests/kflag0.c, tests/kflag1.c, tests/kill.cxx,
3130
          tests/kintr0.c, tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,
3131
          tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c, tests/ksem0.c,
3132
          tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/thread1.cxx:
3133
        Use CYG_TEST_NA() rather than CYG_TEST_PASS_FINISH() for tests that
3134
        are not applicable for this configuration
3135
 
3136
1999-02-22  Nick Garnett  
3137
 
3138
        * include/kapi.h:
3139
        * include/mutex.hxx:
3140
        * src/sync/mutex.cxx:
3141
        * src/common/kapi.cxx:
3142
        * tests/mutex2.cxx:
3143
        * tests/PKGconf.mak:
3144
        Added Kernel API support for thread release, which allows a thread
3145
        to be broken out of any wait. Also added support for releasing all
3146
        threads waiting to lock a mutex, both at C++ and Kernel API
3147
        levels. Added a test program, mutex2, to test this fuctionality
3148
        out.
3149
 
3150
1999-02-20  Jonathan Larmour  
3151
 
3152
        * include/except.hxx:
3153
        * include/kapidata.h
3154
        Rename CYG_EXCEPTION_COUNT -> CYGNUM_HAL_EXCEPTION_COUNT in line
3155
        with HAL changes
3156
        Rename deliver_exception() -> cyg_hal_deliver_exception()
3157
        QA improvements
3158
 
3159
        * src/common/clock.cxx:
3160
        Rename CYG_VECTOR_RTC -> CYGNUM_HAL_INTERRUPT_RTC in line with
3161
        HAL changes
3162
 
3163
        * src/common/except.cxx:
3164
        Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
3165
        with HAL changes
3166
        Allow for CYGNUM_HAL_EXCEPTION_MIN != 0
3167
        Rename deliver_exception() -> cyg_hal_deliver_exception()
3168
        Add more tracing, and fix some existing
3169
        QA improvements
3170
 
3171
        * src/intr/intr.cxx:
3172
        Rename CYG_ISR_* -> CYGNUM_HAL_ISR_* in line with HAL changes
3173
        Add more tracing, and fix some existing
3174
        QA improvements
3175
 
3176
        * src/sched/bitmap.cxx:
3177
        * src/sched/mlqueue.cxx:
3178
        * src/sync/mutex.cxx:
3179
        Add more tracing and fix some existing
3180
        QA improvements
3181
 
3182
        * tests/except1.cxx:
3183
        * tests/kexcept1.c
3184
        Rename CYG_EXCEPTION_* -> CYGNUM_HAL_EXCEPTION_* in line
3185
        with HAL changes
3186
        QA improvements
3187
        Use new CYG_TEST_GDBCMD to tell GDB not to stop
3188
        Remove special simulator case as it should now work
3189
 
3190
        * tests/intr0.cxx:
3191
        * tests/kintr0.c:
3192
        Rename CYG_ISR/VSR_* -> CYGNUM_HAL_ISR/VSR_* in line
3193
        with HAL changes
3194
        QA improvements
3195
 
3196
1999-02-16  Jonathan Larmour  
3197
 
3198
        * tests/kexcept1.c (except0_main): Tell GDB to not stop on
3199
        SIGBUS or SIGSEGV since we know we're going to cause an exception
3200
 
3201
1999-02-12  Hugo Tyson  
3202
 
3203
        * src/common/thread.cxx (idle_thread_stack):
3204
        Override CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE if
3205
        CYGNUM_HAL_MINIMUM_STACK_SIZE demands it.
3206
 
3207
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE):
3208
        Document that this option can be overridden by HALs demands.
3209
 
3210
1999-02-11  Jesper Skov  
3211
 
3212
        * src/debug/dbg-thread-syscall.h:
3213
        * src/debug/dbg-thread-demux.c:
3214
        Added handling of dbg_scheduler_func calls.
3215
 
3216
1999-02-11  Nick Garnett  
3217
 
3218
        * include/kapi.h:
3219
        * src/common/kapi.cxx:
3220
        Added API support for per-thread data.
3221
 
3222
        * include/kapi.h:
3223
        * src/common/kapi.cxx:
3224
        * tests/ksem1.c:
3225
        * tests/tm_basic.cxx:
3226
        Changed arguments to Kernel C API semaphore functions to take
3227
        cyg_count32 rather than cyg_ucount32. This makes them consistent
3228
        with the underlying implementation and allows for negative counts
3229
        in the future. Changed some tests to match.
3230
        Fixes PR 17877.
3231
 
3232
1999-02-08  Jesper Skov  
3233
 
3234
        * tests/kexcept1.c (entry0):
3235
        * tests/except1.cxx (entry0):
3236
        Don't call cause_exception on SIMs.
3237
 
3238
1999-02-05  Jesper Skov  
3239
 
3240
        * src/common/clock.cxx (isr): Ignore a latency of 0 when finding
3241
        min_clock_latency.
3242
 
3243
1999-02-04  Jesper Skov  
3244
        PR 19075
3245
        * include/instrmnt.h: Slightly overdid the use of CYG_UNUSED_PARAM
3246
        macros.
3247
 
3248
1999-02-04  Jesper Skov  
3249
 
3250
        * src/intr/intr.cxx:
3251
        Make instrumentation macros always use the parameters to avoid
3252
        compiler warnings.
3253
 
3254
1999-02-03  Jesper Skov  
3255
        PR 18075
3256
        * tests/memfix1.cxx:
3257
        * tests/kmemfix1.c:
3258
        Make timing less sensitive.
3259
 
3260
1999-02-02  Jesper Skov  
3261
 
3262
        * tests/bin_sem2.cxx: Fixed compiler warning.
3263
 
3264
1999-02-02  Jesper Skov  
3265
        PR 18971
3266
        * tests/bin_sem2.cxx (bin_sem2_main): Reduce run time in SIM.
3267
 
3268
1999-02-01  Nick Garnett  
3269
 
3270
        * tests/kcache2.c: Added calls to HAL_DCACHE_SYNC() before all
3271
        relevant calls to HAL_DCACHE_DISABLE(). This should have been done
3272
        on 1999-01-25 where is was only done to one instance.
3273
 
3274
1999-02-01  Gary Thomas  
3275
 
3276
        * tests/tm_basic.cxx: Adjust stack sizes for platforms with
3277
        limited memory.
3278
 
3279
1999-01-28  Nick Garnett  
3280
 
3281
        * src/intr/intr.cxx: When using chained interrupts,
3282
        interrupt_end() is passed NULL as the intr argument. If
3283
        instrumentation is also enabled, the CYG_INSTRUMENT_INTR() calls
3284
        will try to indirect through zero. Added ifdefs to avoid
3285
        this. Also test intr for NULL before trying to post the DSR.
3286
        Fixes PR 18771.
3287
 
3288
1999-01-28  Jesper Skov  
3289
 
3290
        * tests/tm_basic.cxx: Fixed strings.
3291
 
3292
1999-01-26  Hugo Tyson  
3293
 
3294
        * tests/kcache1.c (time0): Waste much less time if running in a
3295
        simulator.  Do only 40 loops instead of 4000.
3296
        In consequence the nasty meddling with MAX_STRIDE depending on
3297
        HAL_xxx_SIM package definitions can go.
3298
 
3299
1999-01-26  Jesper Skov  
3300
        PR 18902
3301
        * src/debug/dbg-thread-demux.c: Oops. Undid my change of 1999-01-21.
3302
 
3303
1999-01-25  Jonathan Larmour  
3304
 
3305
        * src/common/except.cxx: Make global exception initialisation object
3306
        be constructed at INTERRUPT priority
3307
 
3308
1999-01-25  Jesper Skov  
3309
        PR 18002
3310
        * tests/thread_gdb.c: Ensure that there are enough priorities.
3311
 
3312
1999-01-25  Jesper Skov  
3313
        PR 18875
3314
        * tests/tm_basic.cxx: Ensure that there are enough priorities.
3315
 
3316
1999-01-25  Nick Garnett  
3317
 
3318
        * tests/kcache2.c (test_dstore): Added call to HAL_DCACHE_SYNC()
3319
        before disabling cache. On some architectures disabling the cache
3320
        would cause the following call to do nothing.
3321
        Fixes PR 18849.
3322
 
3323
1999-01-22  Jesper Skov  
3324
 
3325
        * tests/tm_basic.cxx: Don't run on Linux target.
3326
 
3327
1999-01-21  Hugo Tyson  
3328
        These changes are to get tests working with the SPARClite port; it
3329
        doesn't do 8-byte register access unless it's properly aligned.
3330
 
3331
        * tests/philo.cxx (cyg_start):
3332
        Use tests/testaux.hxx to get new threads, to get the alignment
3333
        required; see below.
3334
 
3335
        * tests/thread2.cxx (thread2_main):
3336
        Use tests/testaux.hxx to get new threads, to get the alignment
3337
        required; see below.
3338
 
3339
        * tests/tm_basic.cxx:
3340
        Larger stack for greedy processor.
3341
 
3342
        * tests/testaux.hxx:
3343
        thread_obj[][] and stack[][] are now 8-byte aligned like certain
3344
        processors require; Cyg_Thread contains cyg_tick_count which is
3345
        64-bit so any "standalone" C++ object would be so aligned.  These
3346
        dynamically allocated ones should be too.
3347
 
3348
1999-01-21  Jesper Skov  
3349
        PR 18747
3350
        * tests/flag1.cxx: Increase delays/timeouts to prevent failure
3351
        when configured with full trace logging.
3352
 
3353
1999-01-21  Jesper Skov  
3354
 
3355
        * src/debug/dbg-thread-demux.c: Removed PR 17327 workarounds.
3356
 
3357
1999-01-19  Jonathan Larmour  
3358
 
3359
        * src/sched/sched.cxx (start):
3360
        CYG_REFERENCE_SYMBOL -> CYG_REFERENCE_OBJECT in line with
3361
        cyg_type.h change
3362
 
3363
1999-01-19  Jesper Skov  
3364
        PR 18824
3365
        * src/sync/mutex.cxx:
3366
        * include/pkgconf/kernel.h: Let
3367
        CYGMFN_KERNEL_SYNCH_CONDVAR_TIMED_WAIT require
3368
        CYGFUN_KERNEL_THREADS_TIMER.
3369
 
3370
1999-01-18  Nick Garnett  
3371
 
3372
        * src/debug/dbg-thread-demux.c (patch_dbg_syscalls): Added test
3373
        for CYGDBG_KERNEL_DEBUG_GDB_THREAD_SUPPORT in patch_dbg_syscalls().
3374
 
3375
1999-01-15  Gary Thomas  
3376
 
3377
        * include/mvarimpl.inl (free): Memory list sort was incorrect.
3378
 
3379
        * tests/PKGconf.mak (TESTS): Don't build cache tests on
3380
        some platforms.
3381
 
3382
1999-01-15  Jesper Skov  
3383
        PR 18768
3384
 
3385
        * tests/kmbox1.c:
3386
        * tests/mbox1.cxx:
3387
        Increase delays used so the overhead of GDB packets doesn't make
3388
        the tests fail.
3389
 
3390
1999-01-14  Jesper Skov  
3391
 
3392
        * src/sched/sched.cxx (start): Use new CYG_REFERENCE_SYMBOL macro.
3393
 
3394
1999-01-14  Nick Garnett  
3395
 
3396
        * src/debug/dbg_gdb.cxx: Extended return types to include success,
3397
        fail and caller-do-it as required by msnyder.
3398
 
3399
        * src/debug/dbg-thread-demux.c: Moved prototype of dbg_scheduler()
3400
        to dbg-threads-api.h.
3401
 
3402
1999-01-13  Jesper Skov  
3403
 
3404
        * src/sched/sched.cxx (start): Better implementation of the
3405
        real_time_clock reference.
3406
 
3407
1999-01-13  Jesper Skov  
3408
 
3409
        * include/pkgconf/kernel.h: Disable CYGSEM_KERNEL_SCHED_TIMESLICE
3410
        in CYG_HAL_ROM_MONITOR magic.
3411
 
3412
1999-01-07  Jesper Skov  
3413
 
3414
        * include/pkgconf/kernel.h: Added RTC values for i386/Linux.
3415
 
3416
 
3417
1999-01-12  Nick Garnett  
3418
 
3419
        * src/debug/dbg-thread-demux.c:
3420
        Changed API of patch_dbg_syscalls() to take a pointer to the start
3421
        of the vector and insert several vectors.
3422
 
3423
        * src/debug/dbg_gdb.cxx:
3424
        Added dbg_scheduler() function to allow debuggers to lock and
3425
        unlock the scheduler. This helps when stepping multithreaded code.
3426
 
3427
        * include/sched.hxx:
3428
        * include/sched.inl:
3429
        Added Cyg_Scheduler::unlock_simple() to decrement the lock without
3430
        rescheduling.
3431
 
3432
1999-01-05  Jesper Skov  
3433
        PR 18574
3434
 
3435
        * src/sched/sched.cxx (start): Reference the real time clock to
3436
        ensure it is included when linking.
3437
 
3438
1999-01-04  Jesper Skov  
3439
 
3440
        * tests/thread1.cxx:
3441
        * tests/mbox1.cxx:
3442
        * tests/kmbox1.c:
3443
        * tests/kill.cxx:
3444
        * tests/kflag1.c:
3445
        * tests/kclock1.c:
3446
        * tests/flag1.cxx:
3447
        * src/common/thread.cxx:
3448
        CYGFUN_KERNEL_THREADS_TIMER requires CYGVAR_KERNEL_COUNTERS_CLOCK
3449
        so don't check for the latter explicitly.
3450
 
3451
1999-01-04  Jesper Skov  
3452
        PR 18573
3453
 
3454
        * tests/thread1.cxx:
3455
        * tests/mbox1.cxx:
3456
        * tests/kmbox1.c:
3457
        * tests/kflag1.c:
3458
        * tests/flag1.cxx:
3459
        Don't run tests that rely on delay() when delay() is only defined
3460
        as an empty function.
3461
 
3462
1998-12-24  Bart Veer  
3463
 
3464
        * src/sync/mutex.cxx:
3465
        * src/sync/mbox.cxx:
3466
        * src/sync/flag.cxx:
3467
        * src/sched/sched.cxx:
3468
        * src/mem/memvar.cxx:
3469
        * src/mem/memfixed.cxx:
3470
        * src/common/thread.cxx:
3471
        * src/common/clock.cxx:
3472
        * include/mempoolt.inl:
3473
        * include/mempolt2.inl:
3474
        * include/mboxt2.inl:
3475
        * include/mboxt.inl:
3476
        check_this() member functions should now be const
3477
 
3478
1998-12-22  Nick Garnett  
3479
 
3480
        * include/instrmnt.h: Fixed casts for arguments to
3481
        cyg_instrument() to work in C. Fixes PR 18413.
3482
 
3483
1998-12-21  Gary Thomas  
3484
 
3485
        * include/pkgconf/kernel.h: Change AEB-1 clock scale.
3486
 
3487
1998-12-17  Gary Thomas  
3488
 
3489
        * tests/tm_basic.cxx: Calculate system clock resolution
3490
        based on 'CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION'
3491
 
3492
1998-12-16  Gary Thomas  
3493
 
3494
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3495
        Add support for new ARM AEB-1.
3496
 
3497
1998-12-16  Hugo Tyson  
3498
 
3499
        * tests/intr0.cxx (intr0_main):
3500
        * tests/kintr0.c (kintr0_main):
3501
        Conditionally use a different interrupt vector number on tx39 when
3502
        in the simulator (according to cyg_test_is_simulator) so that
3503
        these tests execute correctly in simulators.
3504
 
3505
1998-12-16  Jesper Skov  
3506
        PR 18546
3507
 
3508
        * tests/kill.cxx (cyg_start): Do NOP test if required kernel
3509
        functionality is disabled.
3510
 
3511
1998-12-15  Jesper Skov  
3512
 
3513
        * include/pkgconf/kernel.h: Changed
3514
        CYGDBG_KERNEL_DEBUG_GDB_INCLUDE_STUBS to
3515
        CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS.
3516
 
3517
1998-12-14  Jesper Skov  
3518
 
3519
        * tests/tm_basic.cxx: Made use of cyg_mbox_get() conditional on
3520
        CYGMFN_KERNEL_SYNCH_MBOXT_PUT_CAN_WAIT.
3521
 
3522
1998-12-14  Jesper Skov  
3523
 
3524
        * tests/tm_basic.cxx: Added requirement for kernel RTC.
3525
 
3526
1998-12-11  Jesper Skov  
3527
 
3528
        * tests/kcache2.c: Added tests of three more macros.
3529
 
3530
1998-12-10  Jesper Skov  
3531
 
3532
        * tests/kcache2.c: Added tests of three more macros.
3533
 
3534
1998-12-10  Jesper Skov  
3535
 
3536
        * tests/PKGconf.mak:
3537
        * tests/kcache2.c:
3538
        Added new cache test.
3539
 
3540
1998-12-04  Nick Garnett  
3541
 
3542
        * include/intr.hxx:
3543
        * src/intr/intr.cxx (cyg_interrupt_post_dsr): Added this function
3544
        to allow functions in the HAL, which are always only in C, to call
3545
        Cyg_Interrupt::post_dsr(). Have also returned post_dsr() to
3546
        private parts of Cyg_Interrupt.
3547
 
3548
1998-12-04  Jesper Skov  
3549
 
3550
        * include/intr.hxx (class Cyg_Interrupt): Made post_dsr public so
3551
        it can be called from HAL interrupt arbiters.
3552
 
3553
1998-12-04  Jesper Skov  
3554
 
3555
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3556
        Set to the correct value for a 33.333MHz clock.
3557
 
3558
1998-12-02  Jesper Skov  
3559
 
3560
        * src/intr/intr.cxx (interrupt_end, chain_isr): Got rid of magic
3561
        interrupt constants.
3562
 
3563
1998-11-30  Gary Thomas  
3564
 
3565
        * include/pkgconf/kernel.h: Fix spelling of CYGVAR_KERNEL_COUNTERS_CLOCK
3566
 
3567
1998-11-25  Jesper Skov  
3568
 
3569
        * src/common/thread.cxx (check_this): Check that stack_ptr is
3570
        within its limits.
3571
 
3572
Wed Nov 25 18:45:12 1998  Jonathan Larmour  
3573
 
3574
        * include/sched.inl (unlock) (lock):
3575
        * src/common/thread.cxx (thread_entry):
3576
        * src/sched/sched.cxx (unlock_inner):
3577
 
3578
        Ensure all accesses to sched_lock cannot be reordered by the
3579
        optimiser
3580
 
3581
1998-11-24  Jesper Skov  
3582
 
3583
        * src/common/thread.cxx (thread_entry): Prevent scheduler lock
3584
        from being released too early.
3585
 
3586
1998-11-23  Nick Garnett  
3587
 
3588
        * include/pkgconf/kernel.h:
3589
        * src/common/clock.cxx:
3590
        Added CYGIMP_KERNEL_COUNTERS_SORT_LIST option to determine whether
3591
        the alarm lists in counters are sorted or not.
3592
 
3593
        * tests/tm_basic.cxx: Added a test for many alarms firing
3594
        separately.
3595
 
3596
1998-11-23  Jesper Skov  
3597
 
3598
        * tests/kcache1.c: Only run with stride 1 on SIMs.
3599
 
3600
1998-11-19  Gary Thomas  
3601
 
3602
        * tests/tm_basic.cxx: Insure appropriate kernel configuration for
3603
        building tool.  Needs at least kernel C API and multi-level scheduler.
3604
 
3605
1998-11-18  Gary Thomas  
3606
 
3607
        * tests/tm_basic.cxx: Add interrupt latency support.  Print
3608
        results to 10ns accuracy.
3609
 
3610
        * tests/PKGconf.mak: Add 'tm_basic' (the kernel timing test
3611
        program) to list of built tests.
3612
 
3613
        * src/intr/intr.cxx: Change usage of HAL_INTERRUPT_MASK to have
3614
        trailing ';' to match similar macros.
3615
 
3616
        * src/common/clock.cxx:
3617
        * include/pkgconf/kernel.h: Add CDL option
3618
        CYGVAR_KERNEL_COUNTERS_CLOCK_LATENCY used to define if interrupt
3619
        latency measurements should be built into kernel.
3620
 
3621
1998-11-17  Jesper Skov  
3622
 
3623
        * include/pkgconf/kernel.h: Renamed CYG_HAL_POWERPC_MP860 to
3624
        CYG_HAL_POWERPC_MPC860.
3625
 
3626
 
3627
1998-10-28  David Moore  
3628
 
3629
        * include/pkgconf/kernel.h
3630
        (CYGNUM_KERNEL_COUNTERS_RTC_RESOLUTION): Changed default value for
3631
        MIPS simulator to be 0.01 secs instead of 0.001 seconds.
3632
 
3633
1998-10-28  Jesper Skov  
3634
 
3635
        * tests/kcache1.c (HAL_DCACHE_PURGE_ALL): Fixed compiler problem
3636
        on PowerPC.
3637
 
3638
1998-10-27  Nick Garnett  
3639
 
3640
        * tests/kcache1.c:
3641
        Added calls to HAL_DCACHE_PURGE_ALL() before each test.  Added
3642
        local version of HAL_DCACHE_PURGE_ALL() if this is not supplied by
3643
        the HAL.
3644
 
3645
1998-10-27  Hugo Tyson  
3646
 
3647
        * src/common/thread.cxx (wake):
3648
        Remove the thread unconditionally from any queue it was on; for we
3649
        have just become not-asleep, so it must be OK.  (Bug was: it
3650
        didn't happen in transit WAIT-SUSPEND -> SUSPEND, so synch object
3651
        still believed the task was waiting on it).  PR#17998
3652
 
3653
1998-10-26  Jesper Skov  
3654
        PR 17527, PR 17837
3655
 
3656
        * tests/kcache1.c:
3657
        * tests/kclock0.c:
3658
        * tests/kclock1.c:
3659
        * tests/clock1.cxx:
3660
        * tests/clock0.cxx:
3661
        Do N/A PASS when kernel real-time clock is configured out.
3662
 
3663
1998-10-26  Jesper Skov  
3664
        PR 17866
3665
 
3666
        * include/pkgconf/kernel.h
3667
        (CYGNUM_KERNEL_THREADS_IDLE_STACK_SIZE): Doubled to prevent stack
3668
        overruns on PowerPC.
3669
 
3670
1998-10-26  Jesper Skov  
3671
        PR 17987
3672
 
3673
        * src/debug/dbg_gdb.cxx (dbg_threadinfo): Removed "more: "
3674
        output.
3675
 
3676
1998-10-23  John Dallaway  
3677
 
3678
        * tests/tm_basic.cxx: Added basic timing test.
3679
 
3680
1998-10-23  Nick Garnett  
3681
 
3682
        * include/instrmnt.h:
3683
        Improved documentation of cyg_instrument_enable() and
3684
        cyg_instrument_disable().
3685
 
3686
        * src/instrmnt/meminst.cxx:
3687
        Added code to enable and disable whole groups of events.
3688
 
3689
1998-10-23  Jesper Skov  
3690
 
3691
        * include/generic-stub.h: Deleted. It was moved to hal common some
3692
        time ago.
3693
 
3694
Fri Oct 23 04:45:12 1998  Jonathan Larmour  
3695
 
3696
        * tests/kcache1.c:
3697
        Remove forced warning of a warning which no longer applies
3698
 
3699
1998-10-22  Nick Garnett  
3700
 
3701
        * src/common/clock.cxx:
3702
        Stop searching the alarm list when the current alarm is in the
3703
        future in Cyg_Counter::tick().  Changed sense of comparison in
3704
        Cyg_Counter::add_alarm() to sort alarms in ascending order.
3705
 
3706
Thu Oct 22 18:21:50 1998  Jonathan Larmour  
3707
 
3708
        * include/pkgconf/kernel.h:
3709
        Fix commenting within CDL "comments"
3710
 
3711
Thu Oct 22 17:25:45 1998  Jonathan Larmour  
3712
 
3713
        * include/pkgconf/kernel.h:
3714
        Remove CYGVAR_KERNEL_INSTRUMENT_EXTERNAL_BUFFER configuration
3715
        option. For PR 17838
3716
 
3717
1998-10-21  Nick Garnett  
3718
 
3719
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
3720
        Changed value for JMR3904 board to 15360 which is correct for a
3721
        24.576MHz board rather than 25MHz as before.
3722
 
3723
        * src/common/thread.cxx:
3724
        Exchanged stack_base and stack_size in idle thread constructor.
3725
 
3726
1998-10-20  Hugo Tyson  
3727
 
3728
        * tests/kflag1.c (kflag1_main):
3729
        Only mess with f2 if it exists, ie. CYGFUN_KERNEL_THREADS_TIMER.
3730
 
3731
1998-10-19  Mark Galassi  
3732
 
3733
        * include/pkgconf/kernel.h: updated the doc URL
3734
 
3735
1998-10-19  Hugo Tyson  
3736
 
3737
        * include/kapi.h:
3738
        * include/kapidata.h (struct cyg_flag_t):
3739
        * src/common/kapi.cxx:
3740
        Add flags (Cyg_Flag, kernel.../flag.hxx) to the C API.
3741
 
3742
        * tests/PKGconf.mak (TESTS):
3743
        Add new tests for flags via the C API.
3744
 
3745
        * tests/kflag0.c:
3746
        * tests/kflag1.c:
3747
        New tests (well, versions of the plain C++ versions flag0.cxx and
3748
        flag1.cxx) for flags via the kernel C API.
3749
 
3750
1998-10-19  Bart Veer  
3751
 
3752
        * include/pkgconf/kernel.h:
3753
        Fixed description of clock resolution.
3754
 
3755
1998-10-17  Bart Veer  
3756
 
3757
        * include/pkgconf/kernel.h:
3758
        Added a way of configuring the clock interrupt frequency.
3759
 
3760
Thu Oct 15 21:31:58 1998  Jonathan Larmour  
3761
 
3762
        * include/pkgconf/kernel.h:
3763
        Allow kernel to be disabled now
3764
 
3765
        * src/common/delete.cxx, src/common/memcpy.c, src/common/memset.c:
3766
        Move these files to the infra package
3767
 
3768
        * src/PKGconf.mak:
3769
        Don't build the above files any more
3770
 
3771
        Above changes are required for PR 17229
3772
 
3773
1998-10-15  Hugo Tyson  
3774
 
3775
        * include/mempoolt.inl (Cyg_Mempoolt):
3776
        * include/mempolt2.inl (Cyg_Mempolt2):
3777
        Flesh out the destructors to awaken any waiting threads
3778
        with reason Cyg_Thread::DESTRUCT to support uITRON
3779
        create and delete of memory pool objects.
3780
        Note that only template mempolt2 is actually used.
3781
 
3782
Wed Oct 14 21:45:54 1998  Jonathan Larmour  
3783
 
3784
        * tests/thread_gdb.c:
3785
        Remove unnecessary inclusion of 
3786
 
3787
        * tests/kcache1.c:
3788
        Add a warning to expect the "function declaration isn't a
3789
        prototype" warning from infra/diag.h
3790
 
3791
1998-10-14  Hugo Tyson  
3792
 
3793
        * src/common/thread.cxx (kill,reinitialize):
3794
        Do not refer to member timer unless CYGFUN_KERNEL_THREADS_TIMER is
3795
        defined.
3796
 
3797
1998-10-14  Nick Garnett  
3798
 
3799
        * src/debug/dbg-thread-demux.c:
3800
        Now get dbg-threads-api.h from HAL.
3801
 
3802
        * src/debug/dbg_gdb.cxx:
3803
        Tidied up info sent back by dbg_threadinfo().
3804
 
3805
        * src/common/thread.cxx:
3806
        Changed constructor of idle thread to include initial priority and
3807
        a thread name.
3808
 
3809
        * include/pkgconf/kernel.h:
3810
        Moved GDB stub configuration code out to hal.h.
3811
 
3812
        * include/ktypes.h:
3813
        Moved definition of CYG_LABEL_NAME() out to cyg_type.h.
3814
 
3815
        * src/debug/PKGconf.mak:
3816
        * src/debug/dbg-threads-api.h:
3817
        * src/debug/generic-stub.c:
3818
        * src/debug/stubrom.c:
3819
        * src/debug/thread-packets.c:
3820
        * src/debug/thread-pkts.h:
3821
        These files have all be relocated to hal/common.
3822
 
3823
1998-10-14  Hugo Tyson  
3824
 
3825
        * include/thread.hxx (class Cyg_Thread):
3826
        Add public members get_stack_base(), get_stack_size() and
3827
        get_stack_limit();
3828
        Add private members add_to_list() and remove_from_list() to
3829
        centralize handling of the CYGVAR_KERNEL_THREADS_LIST as it is
3830
        known.
3831
 
3832
        * include/thread.inl (class Cyg_Thread):
3833
        Add public members get_stack_base(), get_stack_size() and
3834
        get_stack_limit();
3835
 
3836
        * src/common/thread.cxx:
3837
        Add private members add_to_list() and remove_from_list() to
3838
        centralize handling of the CYGVAR_KERNEL_THREADS_LIST as it is
3839
        known.
3840
        Tidy up the two constructors to use them.
3841
        Add CYG_REPORT_RETURN()/_RETVAL(...) logging throughout.
3842
        Tidy up reinitialize() to use the 6-argument constructor,
3843
        thus preserving the thread name.
3844
        Fix some bugs in the CYGVAR_KERNEL_THREADS_LIST stuff where
3845
        re-adding a thread caused loops in the list, and the like.
3846
        Fix bug in set_priority() when the thread is asleep but NOT on any
3847
        queue, such as a plain counted_sleep().
3848
 
3849
1998-10-14  Jesper Skov  
3850
 
3851
        * src/debug/thread-packets.c:
3852
        * src/debug/dbg_gdb.cxx:
3853
        Don't include hal_stub.h unless it's really, really, really
3854
        needed.
3855
 
3856
1998-10-14  Jesper Skov  
3857
 
3858
        * src/debug/dbg_gdb.cxx: Don't include hal_stub.h unless it's really
3859
        needed.
3860
 
3861
1998-10-13  Jesper Skov  
3862
 
3863
        * src/debug/generic-stub.c: Added thread support. Renaming a few
3864
        functions/variables to match the most recent libstub
3865
        generic-stub.c.
3866
        Use thread_get_register & thread_put_register when handling GDB
3867
        register packets.
3868
 
3869
        * src/debug/dbg_gdb.cxx (dbg_getthreadreg, dbg_getthreadreg):
3870
        DTRT for current thread when CygMon is not configured.
3871
 
3872
        * src/debug/dbg_gdb.cxx (dbg_threadlist, dbg_getthreadreg,
3873
        dbg_getthreadreg): return true/false rather than 0, 1, -1.
3874
 
3875
        * src/debug/dbg_gdb.cxx:
3876
        * src/debug/dbg-threads-api.h:
3877
        Added dbg_currthread_id.
3878
 
3879
1998-10-08  Jesper Skov  
3880
 
3881
        * src/debug/generic-stub.c:
3882
        * src/debug/generic-stub.h:
3883
        Added control of interrupts.
3884
        Removed unused functions set_debug_trap and initialize_stub.
3885
 
3886
Tue Oct 13 17:36:29 1998  Jonathan Larmour  
3887
 
3888
        * src/test/tsttracc.c (cyg_start):
3889
        Replace CYG_REPORT_FUNCARGSVOID with the correct
3890
        CYG_REPORT_FUNCARGVOID
3891
 
3892
1998-10-09  Hugo Tyson  
3893
 
3894
        * src/common/thread.cxx:
3895
        clear_timer() is a static which always affects the executing
3896
        thread and none other.  Removed the "foo->" from various
3897
        "foo->clear_timer()" calls to make this less confusing.
3898
        Ditto set_timer().
3899
        Changed a "clear_timer()" call to "timer.disable()" and added one
3900
        so that they affect _this_ thread, the thread which is being
3901
        kill()ed or reinitialize()d rather than the killer or the
3902
        resuscitator.  Otherwise the alarm list can still get a loop in
3903
        it when a thread's killed when waiting with a timeout and
3904
        restarted soon enough.
3905
 
3906
1998-10-08  Hugo Tyson  
3907
 
3908
        In general, these changes are to support create/delete of uITRON
3909
        objects; this requires that an object can be destroyed whilst
3910
        there are threads waiting on it, and that they shall be awoken
3911
        with a specific return code.
3912
 
3913
        * include/thread.hxx:
3914
        Cyg_Thread::DESTRUCT added to wake reasons, to deal with an object
3915
        being destroyed whilst a thread is waiting on it; it's handled in
3916
        a manner very similar to release() and BREAK wake_reason.
3917
 
3918
        * src/common/thread.cxx:
3919
        thread_entry(): threads now exit() if the entry_point returns.
3920
        Cyg_Thread() constructors now initialize wake_reason to NONE.
3921
        reinitialize() clears any pending timeout before calling
3922
        constructors.
3923
        counted_sleep( [timeout] ) now both deal with the wake reason in
3924
        general, and with DESTRUCT in particular.
3925
        exit() now clears any pending timeout.
3926
        kill() now force_resumes the thread first.
3927
        kill() now does not explicitly remove the thread from any queue
3928
        it's on; wake() does that for you anyway.
3929
        delay() clears the timer just in case and handles DESTRUCT
3930
        properly.
3931
        DESTRUCT added to various switches for completeness.
3932
 
3933
        The fixes to counted_sleep()[x2] and kill() are a bugfix for
3934
        PR#17688.
3935
 
3936
        * include/flag.hxx:
3937
        * src/sync/flag.cxx:
3938
        Add an argument, defaulting to 0, to the constructor which sets
3939
        the initial flag value.
3940
        Add handing of DESTRUCT wake reason.
3941
        Add a destructor which wakes all threads with DESTRUCT
3942
        wake_reason.
3943
 
3944
        * include/mboxt2.inl:
3945
        Add handing of DESTRUCT wake reason.
3946
        Add a destructor which wakes all threads with DESTRUCT
3947
        wake_reason.
3948
 
3949
        * src/sync/cnt_sem2.cxx:
3950
        Add handing of DESTRUCT wake reason.
3951
        Add a destructor which wakes all threads with DESTRUCT
3952
        wake_reason.
3953
        Correct typo in logic for queueing a waiting thread in
3954
        Cyg_Counting_Semaphore2::wait( cyg_tick_count abs_timeout ).
3955
        This is a bugfix for PR#17687.
3956
 
3957
        * include/mboxt.inl:
3958
        * include/mempoolt.inl:
3959
        * include/mempolt2.inl:
3960
        * src/sync/bin_sem.cxx:
3961
        * src/sync/cnt_sem.cxx:
3962
        * src/sync/mutex.cxx:
3963
        All these gain handling of the DESTRUCT wake_reason, that's all.
3964
 
3965
1998-10-08  Gary Thomas  
3966
 
3967
        * include/pkgconf/kernel.h:
3968
        Add support for new architecture
3969
 
3970
1998-10-07  Nick Garnett  
3971
 
3972
        * tests/kcache1.c (entry0):
3973
        Replaced CYG_TEST_FINISH() with CYG_TEST_PASS_FINISH().
3974
 
3975
        * src/debug/dbg-thread-demux.c:
3976
        Added dbg_thread_syscall_rmt_1() to save/set and restore the $gp
3977
        register values when being called from Cygmon.
3978
 
3979
Sun Sep 27 20:12:15 1998  David Moore  
3980
 
3981
        * include/mlqueue.hxx:
3982
        * include/bitmap.hxx:
3983
        Disallow more than 32 priority levels
3984
 
3985
        * include/pkgconf/kernel.h:
3986
        Changed range of allowed levels from 64 to 32
3987
 
3988
1998-09-27  Nick Garnett  
3989
 
3990
        * tests/memfix2.cxx:
3991
        Changed message to say "Fixed memory pool 2 OK" rather than
3992
        "Variable memory pool 2 OK".
3993
 
3994
1998-09-26  Bart Veer  
3995
 
3996
        * include/intr.hxx (DSRs_pending):
3997
        PR 17500: if DSR support is disabled completely then this inline
3998
        function should not be defined at all.
3999
 
4000
1998-09-26  Nick Garnett  
4001
 
4002
        * tests/kcache1.c:
4003
        Added this test program for cache API. Includes some performance
4004
        testing.
4005
 
4006
1998-09-25  Nick Garnett  
4007
 
4008
        * src/debug/dbg_gdb.cxx:
4009
        Removed some debugging code.
4010
 
4011
        * tests/thread_gdb.c:
4012
        Added this test program to allow for GDB thread support testing.
4013
 
4014
1998-09-25  Bart Veer  
4015
 
4016
        * include/pkgconf/kernel.h:
4017
        The GDB thread support requires the kernel to keep track of all
4018
        threads on a linked list. This is a separate option. An additional
4019
        requires statement enforces the dependency.
4020
 
4021
1998-09-25  Nick Garnett  
4022
 
4023
        * src/debug/dbg-thread-demux.c:
4024
        Added include of , removed debug code.
4025
 
4026
1998-09-24  Bart Veer  
4027
 
4028
        * src/debug/dbg-thread-demux.c (dbg_thread_syscall_rmt):
4029
        PR 17327. If kernel gdb thread support is disabled, do not compile
4030
        in the relevant cases in the rmt switch statement. This is a
4031
        partial solution to the general problem of how the HAL, kernel,
4032
        cygmon, and gdb interact.
4033
 
4034
1998-09-24  Nick Garnett  
4035
 
4036
        * src/common/clock.cxx (Cyg_RealTimeClock):
4037
        Changed clock priority from zero to one, since it is now used to
4038
        set the hardware interrupt priority.
4039
 
4040
        * src/intr/intr.cxx:
4041
        Cyg_Interrupt::chain_isr() now only calls interrupt objects that
4042
        have the matching vector number.
4043
        Call HAL_INTERRUPT_SET_LEVEL() when attaching interrupts using the
4044
        priority passed in the constructor.
4045
        Added call to HAL_TRANSLATE_VECTOR() for attaching chained
4046
        interrupts.
4047
 
4048
        * include/instrmnt.h (CYG_INSTRUMENT_EVENT_INTR_CHAIN_ISR):
4049
        Added this event.
4050
 
4051
Thu Sep 24 11:07:12 1998  David Moore  
4052
 
4053
        * tests/except1.cxx:
4054
        * tests/kexcept1.cxx:
4055
        Made exception tests detect when CYGPKG_KERNEL_EXCEPTIONS
4056
        is disabled.
4057
 
4058
 
4059
1998-09-22  Bart Veer  
4060
 
4061
        * include/pkgconf/kernel.h:
4062
        Changed the kernel package from type bool to type dummy, since
4063
        it is not yet possible to disable this package.
4064
 
4065
1998-09-20  Mark Galassi  
4066
 
4067
        * include/pkgconf/kernel.h: updated CDL doc strings.
4068
        fixed some typos in my doc strings.
4069
 
4070
1998-09-18  Nick Garnett  
4071
 
4072
        * src/common/thread.cxx:
4073
        * include/thread.inl:
4074
        Modified threads list from a LIFO stack to a ring so that we can
4075
        add new ones to the end and present the threads to GDB in an order
4076
        that more closely matches how it assigns thread ids.
4077
 
4078
Wed Sep 16 19:11:22 1998  Hugo Tyson  
4079
 
4080
        * include/thread.inl (get_unique_id):
4081
        Move this declaration to before its first use, so that the user
4082
        knows it is inline at the point of use.  Avoids a warning.
4083
 
4084
Wed Sep 16 08:49:48 1998  Jesper Skov  
4085
        PR 17269
4086
 
4087
        * src/common/except.cxx (Cyg_Exception_Control): Replaced
4088
        CYGNUM_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
4089
 
4090
        * include/kapidata.h (struct cyg_exception_conrol): Replaced
4091
        CYG_EXCEPTION_MAX (bug!) with CYG_EXCEPTION_COUNT.
4092
 
4093
        * src/intr/intr.cxx:
4094
        * include/intr.hxx (class Cyg_Interrupt): Replaced CYG_ISR_MAX+1
4095
        with CYG_ISR_COUNT.
4096
 
4097
        * include/except.hxx: Replaced CYGNUM_EXCEPTION_COUNT with
4098
        CYG_EXCEPTION_COUNT.
4099
 
4100
        * tests/kintr0.c:
4101
        * tests/intr0.cxx: Replaced CYG_ISR_MAX (bug!) with
4102
        CYG_ISR_COUNT.
4103
 
4104
Tue Sep 15 19:19:37 1998  Jonathan Larmour  
4105
 
4106
        * include/mboxt2.hxx:
4107
        Add inclusion of thread.inl to silence warning
4108
 
4109
        * tests/kexcept1.c:
4110
        Insert void as parameter list of __default_exception_vsr() to
4111
        silence warning
4112
 
4113
Tue Sep 15 19:16:52 1998  David Moore  
4114
 
4115
        * src/sched/sched.cxx: Cleaned up comments.
4116
 
4117
1998-09-15  Nick Garnett  
4118
 
4119
        * src/debug/dbg-thread-demux.c:
4120
        Stubbed out led() function.
4121
 
4122
        * src/debug/dbg_gdb.cxx:
4123
        Decide whether to byteswap thread id depending on reported byte
4124
        order of target.
4125
        Many small changes to debug code.
4126
 
4127
        * include/thread.inl (init_context):
4128
        Changed CYG_DEBUG to CYGPKG_INFRA_DEBUG.
4129
 
4130
Tue Sep 15 09:35:14 1998  Jesper Skov  
4131
        PR 17236
4132
 
4133
        * src/common/clock.cxx (add_alarm): A retriggering alarm called
4134
        with a trigger time in the past or now will be assigned a new
4135
        trigger time. Don't find the counter list until the final trigger
4136
        time is known.
4137
        Also added a few #else error statements to catch a situation where
4138
        no CYGIMP_KERNEL_COUNTERS_x_LIST implementation config is
4139
        selected.
4140
 
4141
        * tests/clock0.cxx: Added extra ASSERT to ensure alarms enabled
4142
        with a trigger time of now or in the past actually fire.
4143
        * tests/kclock0.c: Same.
4144
 
4145
1998-09-15  Bart Veer  
4146
 
4147
        * include/pkgconf/kernel.h:
4148
        Cleaning up coonfiguration data (mostly improving the
4149
        descriptions).
4150
 
4151
Mon Sep 14 11:08:59 1998  Jesper Skov  
4152
        PR 17230
4153
 
4154
        * include/pkgconf/kernel.h: CYGIMP_KERNEL_INTERRUPTS_CHAIN
4155
        requires CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN.
4156
 
4157
1998-09-14  Mark Galassi  
4158
 
4159
        * include/pkgconf/kernel.h: started adding CDL doc fields.
4160
 
4161
1998-09-12  Bart Veer  
4162
 
4163
        * include/pkgconf/kernel.h:
4164
        Sort out exception handling options (PR 16953)
4165
        Added missing descriptions (PR 17184)
4166
 
4167
Fri Sep 11 19:18:28 1998  Hugo Tyson  
4168
 
4169
        * include/clock.hxx (class Cyg_Alarm):
4170
        * src/common/clock.cxx (Cyg_Alarm::add_alarm):
4171
        PR#17182
4172
        Move the code to synchronize a repeating alarm which had been
4173
        firing in the dim and distant past with times in the future, which
4174
        had been inline in Cyg_Alarm::enable(), into a function of its
4175
        own, Cyg_Alarm::synchronize().  Call it from Cyg_Alarm::enable()
4176
        and also from add_alarm() when the immediate time to fire is now
4177
        or in the past; otherwise an initial time of, say, NOW-10 with an
4178
        interval of 5 would just get lost.  Also corrected/commented the
4179
        logic there to allow an alarm's handler to cancel itself.
4180
 
4181
Wed Sep  9 17:43:26 1998  Hugo Tyson  
4182
 
4183
        * src/common/delete.cxx:
4184
        Control the provision of empty delete functions rather better, via
4185
        an explicit option from the libc package.  Read the rather lengthy
4186
        comment in delete.cxx for the explanation.
4187
        Also note that the correct place for this functionality is in the
4188
        infrastructure, and the same should be done for the C++ new
4189
        functions also.
4190
 
4191
1998-09-09  Nick Garnett  
4192
 
4193
        * src/common/thread.cxx:
4194
        combined separate next_unique_id variables in both constructors.
4195
        This would have caused duplicate thread ids to be generated.
4196
 
4197
        * include/thread.inl:
4198
        Added code to initialize Cyg_HardwareThread::saved_context.
4199
 
4200
        * src/debug/dbg-thread-demux.c:
4201
        * src/debug/dbg_gdb.cxx:
4202
        Many changes to get thread API working with Cygmon. Debug code
4203
        currently left in place until complete testing is possible.
4204
 
4205
Tue Sep  8 17:17:32 1998  Hugo Tyson  
4206
 
4207
        * include/pkgconf/kernel.h (CYGNUM_KERNEL_COUNTERS_RTC_PERIOD):
4208
        Set up a sensible default RTC for CYG_HAL_MN10300_SIM different
4209
        from that for the MN103002 or CYG_HAL_MN10300_STDEVAL1, so that
4210
        sim tests run in less than geological time.  This is the same as
4211
        the default value of before.
4212
 
4213
Fri Sep  4 18:25:02 1998  Hugo Tyson  
4214
 
4215
        * src/sched/mlqueue.cxx (timeslice):
4216
        * src/sched/sched.cxx (unlock_inner):
4217
        Condition out the tracing macros here by default, for tracing
4218
        these consumes the whole quantum.
4219
 
4220
1998-09-04  Bart Veer  
4221
 
4222
        * include/pkgconf/kernel.h:
4223
        Commented out the ROM monitor-specific option settings for now.
4224
 
4225
        * tests/kclock1.c:
4226
        * include/pkgconf/kernel.h:
4227
        * include/kapidata.h (struct cyg_counter):
4228
        Fixed typos in configuration option names.
4229
 
4230
1998-09-03  David Moore  
4231
 
4232
        * include/pkgconf/kernel.h
4233
        (CYGNUM_KERNEL_INTERRUPTS_DSRS_TABLE_SIZE):
4234
        Fixed typo in configuration option name.
4235
 
4236
        * src/intr/intr.cxx:
4237
        Fixed typo in configuration option name.
4238
        Fixed cast to incorrect type.
4239
 
4240
1998-09-03  Nick Garnett  
4241
 
4242
        * src/PKGconf.mak (COMPILE):
4243
        Added debug/dbg-thread-demux.c to COMPILE list.
4244
 
4245
        * src/debug/dbg_gdb.cxx (dbg_threadinfo):
4246
        Added first cut at providing thread state string.
4247
 
4248
        * src/debug/dbg-thread-syscall.h:
4249
        * src/debug/dbg-thread-demux.c:
4250
        Added these two files to implement the interface between Cygmon
4251
        and eCos.
4252
 
4253
1998-09-03  Bart Veer  
4254
 
4255
        * include/pkgconf/kernel.h (CYGSEM_KERNEL_MEMORY_COALESCE):
4256
        * include/mvarimpl.inl (Cyg_Mempool_Variable_Implementation):
4257
        Fixed typo in configuration option name.
4258
 
4259
        * include/pkgconf/kernel.h:
4260
        Fixed type in configuration option name.
4261
 
4262
Wed Sep  2 19:01:02 1998  Hugo Tyson  
4263
 
4264
        * include/mboxt.hxx:
4265
        * include/mboxt.inl:
4266
        * include/mboxt2.hxx:
4267
        * include/mboxt2.inl:
4268
        * include/mempolt2.hxx:
4269
        * include/mempolt2.inl:
4270
        * include/mempoolt.hxx:
4271
        * include/mempoolt.inl:
4272
        * include/sema2.hxx:
4273
        * src/sync/cnt_sem2.cxx:
4274
        * include/flag.hxx:
4275
        * src/sync/flag.cxx:
4276
        * include/kapi.h:
4277
        * src/common/kapi.cxx:
4278
        * tests/kmbox1.c:
4279
        * tests/kmemfix1.c:
4280
        * tests/kmemvar1.c:
4281
        * tests/mbox1.cxx:
4282
        * tests/memfix1.cxx:
4283
        * tests/memvar1.cxx:
4284
        Memory pool (both types) and message boxes (both types) and flags
4285
        and cnt_sem2-type semaphores now all have absolute timeouts
4286
        instead of relative ones in the timely wait functions.
4287
        uITRON has changed to add the current time itself.
4288
        Kapi changes are mainly name changes to make it clear that
4289
        timeouts are now absolute.
4290
        The tests (incl. kapi) add in the time themselves now.
4291
 
4292
1998-09-01  Tim Goodwin  
4293
 
4294
        * include/kapi.h:
4295
        * src/common/kapi.cxx:
4296
        * tests/kclock1.c:
4297
        * tests/kexcept1.c:
4298
        * tests/kmbox1.c:
4299
        * tests/kmemfix1.c:
4300
        * tests/kmemvar1.c:
4301
        * tests/kmutex1.c:
4302
        * tests/ksched1.c:
4303
        * tests/ksem1.c:
4304
        * tests/kthread0.c:
4305
        * tests/kthread1.c:
4306
        * src/test/kcache1.c:
4307
        * src/test/kphilo.c:
4308
        * tests/kphilo.c:
4309
        * tests/lottery.c:
4310
        Changes to cyg_thread_create() interface.
4311
 
4312
Tue Sep  1 18:49:06 1998  Hugo Tyson  
4313
 
4314
        * include/pkgconf/kernel.h:
4315
        Moved and renamed CYG_DIAG_USE_DEVICE to infra and to
4316
        CYGDBG_INFRA_DIAG_USE_DEVICE; kernel.h now includes infra.h as
4317
        well as hal.h to ensure all its clients get the info too.
4318
 
4319
        * include/intr.hxx (class Cyg_Interrupt):
4320
        Add static member interrupts_enabled() to poll the current status;
4321
        just to avoid calling the HAL directly, really.
4322
 
4323
        * include/diag.h:
4324
        Now just includes cyg/infra/diag.h, so that kernel-specific
4325
        features can be added later - original diag.h has moved to infra,
4326
        and is that includee.
4327
 
4328
        * src/PKGconf.mak:
4329
        Trace folder and its contents elided, now in infra.
4330
 
4331
        * src/trace/diag.c:
4332
        * src/trace/fancy.cxx:
4333
        * src/trace/null.cxx:
4334
        * src/trace/simple.cxx:
4335
        * src/trace/tcdiag.cxx:
4336
        Deleted; all moved to infra, actually.
4337
 
4338
1998-09-01  Nick Garnett  
4339
 
4340
        * src/debug/dbg-threads-api.h:
4341
        * src/debug/dbg_gdb.cxx:
4342
        Converted threadref from long long to char[8] as defined by Cygmon
4343
        guys.
4344
 
4345
        * src/common/thread.cxx:
4346
        Added scheduler lock around manipulations of thread list.
4347
 
4348
        * include/except.hxx:
4349
        Now use CYG_EXCEPTION_COUNT to size handler arrays.
4350
 
4351
Mon Aug 31 17:53:12 1998  Jonathan Larmour  
4352
 
4353
        * include/memfixed.hxx, include/mempolt2.hxx, include/mempolt2.inl,
4354
          include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,
4355
          include/mvarimpl.hxx, include/mvarimpl.inl, src/mem/memfixed.cxx,
4356
          src/mem/memvar.cxx:
4357
 
4358
        Add new get_allocation_size() method to return the size of a
4359
        previously allocated block - trivial for fixed block allocator, and
4360
        requiring a bit of poking around for the variable block allocator.
4361
 
4362
        This is required for the C library realloc() implementation. Strictly
4363
        this only uses the variable block allocator, but the API can only be
4364
        enhanced by also updating the template. As a result, this also meant
4365
        doing it for the fixed block allocator.
4366
 
4367
Mon Aug 31 09:51:37 1998  Jesper Skov  
4368
 
4369
        * src/debug/stubrom.c (cyg_start): Renamed from main().
4370
 
4371
Mon Aug 31 09:00:01 1998  Jesper Skov  
4372
 
4373
        * src/common/thread.cxx: Fixed typo.
4374
 
4375
1998-08-28  Bart Veer  
4376
 
4377
        * include/pkgconf/kernel.h, include/bitmap.hxx, include/clock.hxx,
4378
          include/except.hxx, include/flag.hxx, include/instrmnt.h,
4379
          include/intr.hxx, include/kapi.h, include/kapidata.h,
4380
          include/mbox.hxx, include/mboxt.hxx, include/mboxt.inl,
4381
          include/mboxt2.hxx, include/mboxt2.inl, include/memfixed.hxx,
4382
          include/mempolt2.hxx, include/mempolt2.inl,
4383
          include/mempoolt.hxx, include/mempoolt.inl, include/memvar.hxx,
4384
          include/mlqueue.hxx, include/mutex.hxx, include/mvarimpl.inl,
4385
          include/sched.hxx, include/sema.hxx, include/sema2.hxx,
4386
          include/thread.hxx, include/thread.inl,
4387
          include/pkgconf/kernel.h:
4388
          src/common/clock.cxx, src/common/except.cxx,
4389
          src/common/kapi.cxx, src/common/thread.cxx,
4390
          src/debug/dbg_gdb.cxx, src/debug/generic-stub.c,
4391
          src/instrmnt/meminst.cxx, src/instrmnt/nullinst.cxx,
4392
          src/intr/intr.cxx, src/mem/memfixed.cxx, src/mem/memvar.cxx,
4393
          src/sched/bitmap.cxx, src/sched/lottery.cxx,
4394
          src/sched/mlqueue.cxx, src/sched/sched.cxx,
4395
          src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx, src/sync/flag.cxx,
4396
          src/sync/mbox.cxx, src/sync/mutex.cxx, src/test/diag.cxx,
4397
          src/test/kcache1.c, src/test/main.cxx, src/test/timer.cxx,
4398
          src/test/tstmbox.cxx:
4399
          tests/clock0.cxx, tests/clock1.cxx, tests/except1.cxx,
4400
          tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,
4401
          tests/kclock1.c, tests/kexcept1.c, tests/kintr0.c,
4402
          tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c,
4403
          tests/kmutex0.c, tests/kmutex1.c, tests/ksched1.c,
4404
          tests/ksem0.c, tests/ksem1.c, tests/kthread0.c,
4405
          tests/kthread1.c, tests/lottery.c, tests/mbox1.cxx,
4406
          tests/memfix1.cxx, tests/memvar1.cxx, tests/sync3.cxx,
4407
          tests/thread2.cxx :
4408
        Provide configuration data and rename configuration options
4409
 
4410
Fri Aug 28 15:27:31 1998  Hugo Tyson  
4411
 
4412
        * src/trace/fancy.cxx:
4413
        * src/trace/simple.cxx:
4414
        * src/trace/null.cxx:
4415
        Condition on newly named symbols from the infra package, whence
4416
        these units will be moved soon.
4417
 
4418
Fri Aug 28 09:33:17 1998  Jonathan Larmour  
4419
 
4420
        * src/test/demo.cxx, src/test/kcache1.c, src/test/kphilo.c,
4421
          src/test/main.cxx, src/test/philo.cxx, src/test/sload.c,
4422
          src/test/timer.cxx, src/test/tstflag.cxx, src/test/tstmbox.cxx,
4423
          src/test/tstmpf.cxx, src/test/tstmpool.cxx, src/test/tsttracc.c,
4424
          src/test/tsttrace.cxx, tests/bin_sem0.cxx, tests/bin_sem1.cxx,
4425
          tests/bin_sem2.cxx, tests/clock0.cxx, tests/clock1.cxx,
4426
          tests/cnt_sem0.cxx, tests/cnt_sem1.cxx, tests/except1.cxx,
4427
          tests/flag0.cxx, tests/flag1.cxx, tests/intr0.cxx, tests/kclock0.c,
4428
          tests/kclock1.c, tests/kexcept1.c, tests/kill.cxx, tests/kintr0.c,
4429
          tests/kmbox1.c, tests/kmemfix1.c, tests/kmemvar1.c, tests/kmutex0.c,
4430
          tests/kmutex1.c, tests/kphilo.c, tests/ksched1.c, tests/ksem0.c,
4431
          tests/ksem1.c, tests/kthread0.c, tests/kthread1.c, tests/lottery.c,
4432
          tests/mbox1.cxx, tests/memfix1.cxx, tests/memfix2.cxx,
4433
          tests/memvar1.cxx, tests/memvar2.cxx, tests/mutex0.cxx,
4434
          tests/mutex1.cxx, tests/philo.cxx, tests/release.cxx,
4435
          tests/sched1.cxx, tests/sync2.cxx, tests/sync3.cxx,
4436
          tests/thread0.cxx, tests/thread1.cxx, tests/thread2.cxx:
4437
        Change entry points from main() to cyg_start(), and remove return
4438
        codes - while main returned an int, cyg_start() returns void. It has
4439
        no meaning anyway - what could you do with the code?
4440
 
4441
        * src/test/tsttracc.c, src/test/tsttrace.cxx:
4442
        Also change trace calls (CYG_REPORT_...) to reflect that it is a
4443
        function called cyg_start with no args returning void, rather than
4444
        what it was for main(argc, argv)
4445
 
4446
Fri Aug 28 09:24:41 1998  Jesper Skov  
4447
 
4448
        * src/debug/generic-stub.c: Moved strcpy/strlen from hal-stub to
4449
        generic-stub. Cleaned up a bit to avoid compiler warnings.
4450
 
4451
Thu Aug 27 19:22:51 1998  Hugo Tyson  
4452
 
4453
        * tests/kphilo.c (Philosopher):
4454
        * tests/philo.cxx (Philosopher):
4455
        * src/test/philo.cxx (Philosopher):
4456
        * src/test/kphilo.c (Philosopher):
4457
        * src/common/kapi.cxx:
4458
        Change CYG_RELEASE_DEBUG to CYGPKG_INFRA_DEBUG.
4459
        These changes are self-contained, so they can go in right now.
4460
 
4461
Thu Aug 27 15:20:31 1998  Hugo Tyson  
4462
 
4463
        * include/mvarimpl.inl (free):
4464
        Remove a couple of warning due to pointer comparison without casts
4465
        in coallesce(sic.) code.
4466
 
4467
1998-08-26  Nick Garnett  
4468
 
4469
        * include/kapidata.h:
4470
        Added saved_context to cyg_hardwarethread structure to track
4471
        GDB support in rest of kernel.
4472
 
4473
1998-08-25  Nick Garnett  
4474
 
4475
        * include/pkgconf/kernel.h:
4476
        Added CYGIMP_KERNEL_THREAD_GDB_SUPPORT to configure for GDB
4477
        interactions with the kernel.
4478
 
4479
        * src/debug/dbg-threads-api.h:
4480
        * src/debug/dbg_gdb.cxx:
4481
        Added these files to repository to support GDB interactions
4482
        with the kernel. Note that dbg-threads-api.h is a copy of a
4483
        file in devo/libstub. Any changes there must be merged in here
4484
        too.
4485
 
4486
        * src/PKGconf.mak:
4487
        Added debug/dbg_gdb.cxx to COMPILE list.
4488
 
4489
        * include/thread.inl:
4490
        * include/thread.hxx:
4491
        Added support for GDB, specifically for thread-aware debugging.
4492
 
4493
        * include/intr.hxx:
4494
        * src/intr/intr.cxx:
4495
        Added an extra argument to interrupt_end(): a pointer to
4496
        the saved register state. This is optionally used to provide
4497
        a more interesting saved register state for GDB.
4498
 
4499
Tue Aug 25 02:36:26 1998  Jonathan Larmour  
4500
 
4501
        * include/generic-stub.h:
4502
        Add void to empty prototype argument lists to silence compiler
4503
        warnings
4504
 
4505
Fri Aug 21 18:46:34 1998  Hugo Tyson  
4506
 
4507
        * src/common/clock.cxx (enable):
4508
        Make the maths work right if we only just set up the clock
4509
        thingy.  Unsigned has a lot to answer for; when the next scheduled
4510
        tick was all correct, the delta was -1, which correctly rounds to
4511
        zero in the division.  But it isn't -1 it's 18446744073709551615
4512
        which gave a shift of 15 in the the uITRON test programs.
4513
 
4514
Fri Aug 21 11:40:50 1998  Hugo Tyson  
4515
 
4516
        * include/mboxt2.inl (put):
4517
        * include/mempolt2.inl (alloc):
4518
        Tidy Nick's changes (1998-07-27) for set_timer() semantics a bit,
4519
        make it a bit more efficient and smaller code.
4520
 
4521
Thu Aug 20 17:37:35 BST 1998  Chris Provenzano  
4522
 
4523
        * include/mvarimpl.inl, include/pkgconf/kernel.h:
4524
        Added memory coallecsing to the variable size memory allocator.
4525
        This option is enabled my default.
4526
 
4527
        * tests/stdlib/malloc2.c: Only print 50 messages, not 500.
4528
 
4529
1998-08-20  Nick Garnett  
4530
 
4531
        * include/pkgconf/kernel.h:
4532
        Moved definition of CYG_KERNEL_USE_INIT_PRIORITY from here
4533
        to hal.h.
4534
 
4535
        * include/thread.hxx:
4536
        Changed argument to cyg_thread_entry() to CYG_ADDRWORD from
4537
        CYG_ADDRESS.
4538
 
4539
        * include/ktypes.h:
4540
        Moved constructor priority ordering stuff out to infra/cyg_type.h.
4541
 
4542
        * include/kapi.h:
4543
        * src/common/kapi.cxx:
4544
        Added name and priority parameters to cyg_thread_create() and
4545
        swapped stack size and base parameters. These changes are
4546
        currently protected by DAY_OF_CHAOS ifdefs and are therefore
4547
        inactive.
4548
 
4549
Wed Aug 19 19:06:16 1998  Jonathan Larmour  
4550
 
4551
        * tests/bin_sem1.cxx, tests/bin_sem2.cxx, tests/cnt_sem1.cxx,
4552
          tests/flag1.cxx, tests/mbox1.cxx, tests/memfix2.cxx,
4553
          tests/memvar2.cxx, tests/sync2.cxx, tests/sync3.cxx,
4554
          tests/thread2.cxx, tests/release.cxx, tests/kill.cxx:
4555
        Reorder inclusion of thread.inl to silence warnings
4556
 
4557
Wed Aug 19 18:48:03 1998  Jonathan Larmour  
4558
 
4559
        * include/kernel.hxx:
4560
        Reorder inclusion of thread.inl to silence warnings
4561
 
4562
Wed Aug 19 18:21:31 1998  Jonathan Larmour  
4563
 
4564
        * src/common/kapi.cxx, src/sync/flag.cxx:
4565
        Reorder inclusion of thread.inl to silence warnings
4566
 
4567
        * src/sync/bin_sem.cxx, src/sync/cnt_sem.cxx, src/sync/cnt_sem2.cxx,
4568
          src/sync/mbox.cxx:
4569
        Add inclusion of thread.inl to silence warnings
4570
 
4571
        * src/common/memset.c:
4572
        Make pointer arithmetic be on char *, not void * to silence warnings
4573
 
4574
        * include/diag.h, src/trace/diag.c:
4575
        Make diag_init take void parameter, and give diag_printf explicit
4576
        parameters in prototypes to silence warnings
4577
 
4578
1998-08-19  Nick Garnett  
4579
 
4580
        * include/pkgconf/kernel.h:
4581
        * src/common/thread.cxx:
4582
        Added ifdef for CYGIMP_IDLE_THREAD_YIELD to support single
4583
        priority configurations.
4584
 
4585
Tue Aug 18 16:56:38 1998  Jonathan Larmour  
4586
 
4587
        * include/thread.hxx, include/thread.inl:
4588
        To silence compiler warnings, move register_exception inline definition
4589
        from the .hxx to the .inl. Also move attach_stack to before the
4590
        constructor where it is invoked from.
4591
 
4592
1998-08-18  Nick Garnett  
4593
 
4594
        * include/pkgconf/kernel.h:
4595
        Moved all HAL specific config options out to a HAL config file.
4596
 
4597
        * include/kapi.h:
4598
        * src/common/kapi.cxx:
4599
        Added cyg_scheduler_lock() and cyg_scheduler_unlock() to provide
4600
        user access to the scheduler lock.
4601
 
4602
Mon Aug 17 21:39:20 1998  Jonathan Larmour  
4603
 
4604
        * include/kapi.h:
4605
        Insert "void" to empty parameter lists to silence warnings
4606
 
4607
Fri Aug 14 18:10:20 1998  Hugo Tyson  
4608
 
4609
        * src/common/thread.cxx (exit):
4610
        Set the state explicitly to EXITED rather than or'ing
4611
        it in; should be safe cos it's what kill does in the normal case.
4612
        Needed to avoid suspend sort of states persisting after death.
4613
        One character changes are always aesthetically pleasing.
4614
 
4615
Fri Aug 14 17:28:01 1998  Hugo Tyson  
4616
 
4617
        * include/pkgconf/kernel.h:
4618
        Add config options as below:
4619
 
4620
        * src/common/thread.cxx:
4621
        Add asserts of CYGNUM_KERNEL_MAX_COUNTED_WAKE_COUNT_ASSERT
4622
        and CYGNUM_KERNEL_MAX_SUSPEND_COUNT_ASSERT if they are defined.
4623
        Also lazily tidied format of func hdrs as per code review et al.
4624
 
4625
1998-08-14  Nick Garnett  
4626
 
4627
        * include/kapidata.h:
4628
        Added support for thread names and thread housekeeping list.
4629
 
4630
        * src/common/delete.cxx:
4631
        Added include for cyg_type.h.
4632
 
4633
        * include/pkgconf/kernel.h:
4634
        Added CYGIMP_THREAD_NAME and CYGIMP_THREAD_LIST options.
4635
 
4636
        * include/thread.inl:
4637
        * include/thread.hxx:
4638
        Added support for thread names and thread housekeeping list.
4639
 
4640
        * src/common/thread.cxx:
4641
        Added support for thread names and thread housekeeping list.
4642
        Fixed ordering bug in Cyg_Thread::delay().
4643
 
4644
Thu Aug 13 15:33:48 1998  Jonathan Larmour  
4645
 
4646
        * include/ktypes.h:
4647
        Remove inlined new and delete as they aren't strictly permitted and
4648
        they prevent a valid new and delete being defined anywhere else!
4649
 
4650
        * src/common/delete.cxx, src/PKGconf.mak:
4651
        Add delete.cxx to provide default delete operation for when a C
4652
        library isn't present
4653
 
4654
1998-07-28  Nick Garnett  
4655
 
4656
        * include/thread.hxx, include/sched.hxx, include/mlqueue.hxx,
4657
          include/lottery.hxx, include/bitmap.hxx, src/common/thread.cxx,
4658
          src/sched/sched.cxx, src/sched/mlqueue.cxx, src/sched/lottery.cxx,
4659
          src/sched/bitmap.cxx:
4660
        Added an alternative constructor to Cyg_Thread which takes
4661
        arguments in new order, and includes a scheduling parameters
4662
        argument. Propagated effects of this through Cyg_SchedThread
4663
        and Cyg_SchedThread_Implementation. This mostly takes the form
4664
        of passing the scheduling parameters through to the constructors.
4665
 
4666
1998-07-27  Nick Garnett  
4667
 
4668
        * src/sync/flag.cxx, src/sync/cnt_sem2.cxx, include/mempoolt.inl,
4669
          include/mempolt2.inl, include/mboxt2.inl, include/mboxt.inl:
4670
        Modified code in API calls that take a timeout to allow for a
4671
        timeout in the past.
4672
        NOTE: The timeouts have for now been left as relative delays, they
4673
        should be converted to absolute timeouts.
4674
 
4675
        * src/common/thread.cxx:
4676
        Modified code in counted_sleep to allow for a timeout in the past.
4677
        Added handling of EXIT wake_reason in delay().
4678
 
4679
1998-07-24  Nick Garnett  
4680
 
4681
        * include/thread.inl:
4682
        Reordered code in Cyg_Thread::set_timer() to init the timer after
4683
        wake_reason has been assigned.
4684
 
4685
        * include/clock.inl:
4686
        Removed Cyg_Alarm::enable().
4687
 
4688
        * src/sync/mutex.cxx (Cyg_Condition_Variable::wait):
4689
        Modified order of code in timed version of wait to allow for a
4690
        timout in the past.
4691
 
4692
        * src/sync/cnt_sem.cxx (Cyg_Counting_Semaphore::wait):
4693
        Modified order of code in timed version of wait to allow for a
4694
        timout in the past. Also modified timeout to be absolute rather
4695
        than relative.
4696
 
4697
        * src/common/thread.cxx (Cyg_Thread::wake):
4698
        Added test for whether a thread is actually asleep before waking
4699
        it. Allows us to apply wake() to awake threads without damage.
4700
 
4701
        * src/common/clock.cxx:
4702
        Added code to Cyg_Counter::add_alarm() to deal with alarms
4703
        that trigger now or in the past.
4704
        Moved Cyg_Alarm::enable() here. Added code to do the right thing
4705
        when reenabling previously disabled interval alarms.
4706
 
4707
1998-07-23  Nick Garnett  
4708
 
4709
        * src/debug/stubrom.c: Added header comments.
4710
 
4711
Thu Mar 26 18:25:36 1998  Jonathan Larmour  
4712
 
4713
        * src/test/philo.cxx:
4714
        Rename CYG_DEBUG ifdef to CYG_RELEASE_DEBUG
4715
 
4716
Wed Mar 25 23:23:39 GMT 1998  Chris Provenzano  
4717
 
4718
        * configure.in: Fix so non_arch.h is updated even if
4719
        config.cache does exists.
4720
 
4721
        * include/kapi.h, include/kapidata.h, include/kernel.hxx
4722
        * include/mboxt.inl, include/sched.hxx:
4723
        #include  instead of include 
4724
 
4725
        * include/eccconf/kernel.h: Added. This was old devo/config.h
4726
 
4727
        * src/Makefile.am : Set CYG_CONFIGURATION to ""
4728
 
4729
        * src/test/Makefile.am : Build .gdbinit from gdbinit.in
4730
        and tree from tree.in
4731
 
4732
Wed Mar 25 18:24:48 1998  Jonathan Larmour  
4733
 
4734
        * src/Makefile.am, src/common/memcpy.c, src/common/memset.c:
4735
          Move memcpy and memset functions from C library into kernel to
4736
          satisfy the requirements of gcc - namely it must be available at
4737
          at all time. Changed memcpy and memset to sit more cleanly in the
4738
          kernel, and lose all dependencies on the C library
4739
        * src/Makefile.in: regenerated
4740
 
4741
Fri Mar 13 18:36:42 GMT 1998  Chris Provenzano  
4742
 
4743
        * configure.in : Add rule to get correct objcopy for target
4744
        * src/test/Makefile.am : Add rule to build philo.srec
4745
 
4746
Fri Mar 13 11:47:23 GMT 1998  Chris Provenzano  
4747
 
4748
        * configure.in, non_arch.h.in, non_arch.sh
4749
        Add support for the mn103000
4750
 
4751
Thu Mar 12 11:38:28 GMT 1998  David Moore       
4752
 
4753
        * src/Makefile.am:
4754
        Removed flag to leave comments in generated linker script.
4755
 
4756
Thu Mar 12 10:55:20 GMT 1998  David Moore       
4757
 
4758
        * configure.in:
4759
        Fixed setting of platform variable
4760
 
4761
Wed Mar 11 16:54:28 GMT 1998  Chris Provenzano  
4762
 
4763
        * src/test/Makefile.am, tests/Makefile.am:
4764
        Make sure CXXFLAGS from configure are also used
4765
 
4766
Wed Mar 11 16:16:57 GMT 1998  Chris Provenzano  
4767
 
4768
        * configure.in, non_arch.h.in. non_arch.sh:
4769
        Added build support for mips
4770
        * tests/Makefile.am, src/test/Makefile.am
4771
        Link with -nostdlib -lgcc
4772
 
4773
Wed Mar 11 14:43:36 GMT 1998  Chris Provenzano  
4774
 
4775
        * Makefile.am, configure.in, tests/Makefile.am
4776
        support building tests in the tests directory
4777
 
4778
Wed Mar 11 13:18:17 GMT 1998  Chris Provenzano  
4779
 
4780
        * acinclude.m4, stamp-h.in, non_arch.h.in, src/Makefile.am:
4781
        Added to support new kernel configure/make process
4782
 
4783
        * Makefile.am: Modified to support new kernel configure/make
4784
        process.
4785
 
4786
        * src/acinclude.m4, src/aclocal.m4, src/configure, src/configure.in
4787
        Deleted to support new kernel configure/make process
4788
 
4789
        * Makefile.in, configure, aclocal.m4, src/Makefile.in,
4790
        src/configure: regenerated
4791
 
4792
        * non_arch.sh: New shellscript to change platform/startup/debug
4793
        options after a configure is done.
4794
 
4795
        * src/devo/config.h: include non_arch.h, for platform/startup/debug
4796
        options. This is generated at configure and modified by non_arch.sh
4797
 
4798
//===========================================================================
4799
// ####GPLCOPYRIGHTBEGIN####
4800
// -------------------------------------------
4801
// This file is part of eCos, the Embedded Configurable Operating System.
4802
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009, 2010 Free Software Foundation, Inc.
4803
//
4804
// This program is free software; you can redistribute it and/or modify
4805
// it under the terms of the GNU General Public License as published by
4806
// the Free Software Foundation; either version 2 or (at your option) any
4807
// later version.
4808
//
4809
// This program is distributed in the hope that it will be useful, but
4810
// WITHOUT ANY WARRANTY; without even the implied warranty of
4811
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
4812
// General Public License for more details.
4813
//
4814
// You should have received a copy of the GNU General Public License
4815
// along with this program; if not, write to the
4816
// Free Software Foundation, Inc., 51 Franklin Street,
4817
// Fifth Floor, Boston, MA  02110-1301, USA.
4818
// -------------------------------------------
4819
// ####GPLCOPYRIGHTEND####
4820
//===========================================================================

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.