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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [kernel/] [v2_0/] [ChangeLog] - Blame information for rev 528

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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