]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/compat/posix/v2_0/ChangeLog
unified MX27, MX25, MX37 trees
[karo-tx-redboot.git] / packages / compat / posix / v2_0 / ChangeLog
1 2008-03-28  John Dallaway  <jld@ecoscentric.com>
2
3         * tests/tm_basic.cxx: Rename test to tm_posix.cxx.
4         * tests/mqueue1.c: Rename test to pmqueue1.c.
5         * tests/mqueue2.c: Rename test to pmqueue2.c.
6         * tests/mutex3.c: Rename test to pmutex3.c.
7         * cdl/posix.cdl: Accommodate the above renaming. Test names must be
8         globally unique.
9
10 2007-06-12  Richard.Yuan <lemonskin@tom.com>
11
12         * src/except.cxx (install_handlers): Fixed typo. Bug #1000373
13         
14 2006-07-18  Jonathan Larmour  <jifl@eCosCentric.com>
15
16         * src/signal.cxx (pause): Although already POSIX compliant, if we wait
17         for all signals, behaviour is more Linux-like.
18
19 2006-06-13  Dan Jakubiec  <dan.jakubiec@systech.com>
20
21         * src/time.cxx: (nanosleep): Fixed to return EINTR when it is
22         interrupted by a signal.  This in turn fixed sleep() to return the
23         number of unelapsed seconds when interrupted by a signal.
24
25 2006-06-12  Klaas Gadeyne  <klaas.gadeyne@fmtc.be>
26
27         * src/pthread.cxx (pthread_create): name is only defined if
28         CYGVAR_KERNEL_THREADS_NAME is set to 1
29
30 2005-10-23  Andrew Lunn  <andrew.lunn@ascom.ch>
31 2005-10-18  Alexander Neundorf <neundorf@kde.org>
32
33         * src/time.cxx: add gettimeofday() implementation
34         * cdl/posix.cdl: make some descriptions a bit more verbose.  move
35         mutex.cxx into its own component (CYGPKG_POSIX_PTHREAD_MUTEX).
36         move compilation of mqueue.cxx into the CYGPKG_POSIX_MQUEUES
37         component.  Fixed the tests so that only the ones which stand a
38         chance of compling are compiled.
39         * include/sys/time.h (new): Header file which implements sys/time.h 
40         * include/pthread.h: Include time.h for struct timespec
41         * include/mutex.h: Include time.h for struct timespec
42
43 2004-10-01  Oyvind Harboe  <oyvind.harboe@zylin.com>
44
45         * src/signal.cxx:  place the CYGBLD_ATTRIB_INIT_PRI such that it
46         compiles for gcc 3.4.2 which is more picky about its placement.
47
48 2003-12-02  Sandeep  <sandeep@codito.com>
49
50         * src/mqueue.cxx (new): define a placement new instead of using <new>
51
52 2003-11-19  Rickard Westman <rickard.westman@27m.se>
53         
54         * src/mqueue.cxx: Fix problem with mq_timedsend() and
55         mq_timedreceive() timing out with zero timeouts even when there is
56         room in the queue.
57
58 2003-11-17  Dan Jakubiec <djakubiec@yahoo.com>
59
60         * src/pthread.cxx (pthread_exit): Added code to disable cancellation
61         requests during thread exit.  This allows thread cleanup handlers
62         to issue system calls when cleaning up thread resources.
63
64 2003-06-18  Jonathan Larmour  <jifl@eCosCentric.com>
65
66         * src/pthread.cxx (pthread_self_info): Just add some comments so
67         no-one's tempted to uncomment assert.
68         (pthread_create): Verify that self is a valid POSIX thread when
69         needed.
70
71 2003-03-20  Mark Salter  <msalter@redhat.com>
72
73         * include/pthread.h: Avoid conflict with recently introduced gcc
74         __thread keyword.
75
76 2003-03-13  Bart Veer  <bartv@ecoscentric.com>
77
78         * include/export.h: Only export signal-related functions if
79         CYGPKG_POSIX_SIGNALS is enabled.
80
81 2003-03-04  Gary Thomas  <gary@mlbassoc.com>
82
83         * include/pthread.h: Rework prototypes to minimize namespace problems.
84
85 2003-03-03  Jonathan Larmour  <jifl@eCosCentric.com>
86
87         * tests/signal2.c (cause_illegal_access): PowerPC only generates
88         alignment exceptions in little-endian mode, so make that a special
89         case.
90
91         * tests/mutex3.c: Include POSIX headers before feature tests to
92         prevent spurious CYG_TEST_NA.
93
94 2003-02-24  Jonathan Larmour  <jifl@eCosCentric.com>
95
96         * doc/posix.sgml: Expunge EL/IX. Dead standard.
97         * cdl/posix.cdl: Add doc link.
98
99 2003-02-13  Jonathan Larmour  <jifl@eCosCentric.com>
100
101         * src/mutex.cxx: Include sched.hxx for scheduler lock/unlock primitives.
102         Reported by Jani Monoses.
103
104 2003-02-10  Gary Thomas  <gary@mlbassoc.com>
105
106         * tests/signal3.c (main): Reorg code so it builds with older GCC.
107
108 2003-01-31  Nick Garnett  <nickg@calivar.com>
109
110         * src/time.cxx (alarm_action): Added call to
111         cyg_posix_signal_sigwait() to wake up any sigwait()ing threads.
112
113         * src/signal.cxx (cyg_posix_signal_sigwait): Added this function
114         to export access to signal_sigwait conditional variable.
115         (sigtimedwait): Added call to cyg_posix_timer_asr() to allow timer
116         signals to be delivered here.
117
118         * src/pprivate.h: Added prototype for cyg_posix_signal_sigwait().
119
120         * cdl/posix.cdl:
121         * tests/signal3.c: Added this program to test interaction of
122         timers and signals, particularly sigwait(). Based on a test
123         program from N.Suresh <nsuresh@cdotb.ernet.in>.
124
125 2003-01-20  Jonathan Larmour  <jifl@eCosCentric.com>
126
127         * src/signal.cxx (cyg_posix_deliver_signals): silence warning.
128
129         * src/time.cxx (cyg_timespec_to_ticks): Remove use of default arg in
130         definition.
131
132 2003-01-18  Jonathan Larmour  <jifl@eCosCentric.com>
133
134         * src/mqueue.cxx: Fix multi-line string literal warning.
135
136 2003-01-13  Jonathan Larmour  <jifl@eCosCentric.com>
137
138         * doc/posix.sgml: Document them.
139
140         * src/mqueue.cxx (mq_timedreceive): Make fully compliant by dealing
141         with bogus timeouts.
142         (mq_timedsend): Ditto.
143
144 2003-01-13  Dmitriy Korovkin  <dkorovkin@rambler.ru>
145
146         * src/mqueue.cxx (mq_timedsend): New function. Implementing POSIX
147         1003.1d draft definition.
148         (mq_timedreceive): Ditto.
149
150 2002-12-10  Wade Jensen  <waj4news@cox.net>
151 2002-12-10  Jonathan Larmour  <jifl@eCosCentric.com>
152
153         * src/mutex.cxx (pthread_cond_timedwait): Initialize clock converters
154         only once ever.
155
156 2002-11-26  Nick Garnett  <nickg@ecoscentric.com>
157
158         * src/signal.cxx: Changed the three routines added in the last
159         change so that they can be called safely from non-POSIX threads.
160
161 2002-11-10  Nick Garnett  <nickg@ecoscentric.com>
162
163         * src/signal.cxx: Added three exportable routines that may be used
164         by other packages to manipulate the signal mask, test for
165         deliverable signals, and have signals delivered at controlled
166         points.
167
168         * include/export.h: Added macros to export signal mask management,
169         detection and delivery to other packages.
170
171 2002-11-05  Jonathan Larmour  <jifl@eCosCentric.com>
172
173         * tests/tm_basic.cxx: Use <cyg/infra/diag.h> for diag_printf
174         prototype.
175
176 2002-05-23  Jesper Skov  <jskov@redhat.com>
177
178         * cdl/posix.cdl: Don't build tests using signals when posix
179         signals are disabled.
180
181 2002-05-21  Jesper Skov  <jskov@redhat.com>
182
183         * tests/mutex3.c: Added an NA check.
184
185 2002-04-09  Jonathan Larmour  <jlarmour@redhat.com>
186
187         * src/signal.cxx (cyg_deliver_signals): Don't assert here for an
188         unhandled signal (unless there's no _exit). Trace it though.
189
190 2002-04-08  Jonathan Larmour  <jlarmour@redhat.com>
191
192         * src/sem.cxx (sem_getvalue): return 0, and put value in *sval.
193
194 2002-04-03  Jonathan Larmour  <jlarmour@redhat.com>
195
196         * cdl/posix.cdl: Allow clocks to be configured again.
197
198 2002-03-05  Jesper Skov  <jskov@redhat.com>
199
200         * src/pprivate.h: Correct conditional declaration of timespec
201         functions.
202
203         * src/sched.cxx (sched_rr_get_interval): Return ENOSYS when
204         CYGPKG_POSIX_CLOCKS disabled.
205
206 2002-02-27  Robin Farine  <robin.farine@terminus.org>
207
208         * src/pthread.cxx (pthread_exit): While running thread static
209         storage destructors, set the thread's value associated with the
210         current key to NULL before invoking the destructor.
211
212 2002-02-14  Nick Garnett  <nickg@redhat.com>
213
214         * doc/posix.sgml: Generally fixed up and reformatted to make this
215         file readable by mere humans. Some omissions and outdated
216         information fixed, but not substantially changed from the
217         original.
218
219         * cdl/posix.cdl: Changed some definitions and dependencies so that
220         disabling the timers does not disable threads too. This was
221         largely a consequence of trying to document the behaviour of these
222         options.
223         
224 2002-02-14  Jonathan Larmour  <jlarmour@redhat.com>
225
226         * doc/posix.sgml: New file, originally accompanied by this ChangeLog:
227         2001-12-22  Jonathan Larmour  <jlarmour@redhat.com>
228         
229                 * ecos-elix.sgml: Do a minor cleanup of the function prototype
230                 layouts.
231                 Should be done better than this, but this is at least not
232                 _completely_ wrong any more.
233                 Also several more layout problems due to incorrect tags fixed.
234         
235         2001-12-07  Jonathan Larmour  <jlarmour@redhat.com>
236         
237                 * ecos-elix.sgml: Add getcwd as supported now.
238         
239         2001-12-06  Jonathan Larmour  <jlarmour@redhat.com>
240         
241                 * ecos-elix.sgml: Created from old framemaker version.
242         
243 2002-01-21  Jonathan Larmour  <jlarmour@redhat.com>
244
245         * src/sched.cxx (sched_get_priority_min): Don't allow idle thread
246         priority as a valid priority.
247         Case #106952.
248
249 2001-12-11  Nick Garnett  <nickg@redhat.com>
250
251         * tests/mqueue2.c (cyg_user_start): Added CYG_TEST_INIT() to
252         NOTAPPLICABLE variant, otherwise the order of breakpoints are all
253         wrong and the testfarm registers a failure.
254
255 2001-11-06  Gary Thomas  <gthomas@redhat.com>
256
257         * include/muttypes.h: Need <pkgconf/kernel.h> configuration info,
258         otherwise structures defined here could have the wrong size.
259
260 2001-10-25  I-Jui Sung <ijsung@csie.nctu.edu.tw>
261
262         * src/mqueue.cxx (do_mq_unlink): Nullify table entries' mq as this
263         is used by mq_open to see if the entry is used.
264
265 2001-10-11  Jesper Skov  <jskov@redhat.com>
266
267         * tests/mutex3.c: Fixed warning. 
268         (new_thread): Fixed allocation: increase counter
269         before starting threads which have been allocated resources.
270
271         * tests/signal2.c (cause_illegal_access): Fix warning.
272
273 2001-10-10  Jesper Skov  <jskov@redhat.com>
274
275         * cdl/posix.cdl: Only build sem.cxx when the semaphores component
276         is enabled.
277
278 2001-10-09  Jonathan Larmour  <jlarmour@redhat.com>
279
280         * src/pprivate.h (pthread_info): Conditionalize signal specific
281         members. Conditionalize declaration of 
282         cyg_posix_pthread_release_thread().     
283
284         * cdl/posix.cdl (CYGPKG_POSIX_CLOCKS): new option to separately
285         configure posix clocks from timers.
286         (CYGPKG_POSIX_TIMERS): require clocks and signals.
287
288         * include/time.h: Make proper ISO C. Conditionalize on
289         CYGPKG_POSIX_TIMERS correctly wrt the above change.
290
291         * src/pthread.cxx (posix_asr): Call signal and timer subsystems
292         conditionally.
293
294         * src/pthread.cxx (pthread_reap): Don't destroy signal handling
295         fields if there is no signal handling subsystem.
296         (cyg_posix_pthread_release_thread): Conditionalize on signals.
297         (pthread_create): Init signal subsys conditionally.
298
299         * src/signal.cxx (sleep): Move to...
300
301         * src/time.cxx: ...here.
302         Conditionalize throughout depending on whether it's POSIX clocks
303         or more specifically POSIX timers.
304         (nanosleep): Use PTHREAD_TESTCANCEL() not pthread_testcancel().
305         Get current thread from kernel not pthreads to remove pthread
306         dependency.
307
308 2001-10-09  Jesper Skov  <jskov@redhat.com>
309
310         * tests/signal2.c: Also do NA check for signals.
311
312 2001-10-01  Jonathan Larmour  <jlarmour@redhat.com>
313
314         * src/mqueue.cxx (mq_open): Conditionalize use of sigev correctly.
315         (mq_close): Similarly.
316
317 2001-09-28  Jonathan Larmour  <jlarmour@redhat.com>
318
319         * cdl/pthread.cdl (CYGNUM_POSIX_MAIN_DEFAULT_PRIORITY): Clarify
320         POSIX thread priority description.
321
322 2001-09-28  Jesper Skov  <jskov@redhat.com>
323
324         * cdl/pthread.cdl: Changed default priority of POSIX main to
325         16. This allows service threads (such as DHCP thread) to run when
326         started from main().
327
328 2001-09-10  Jonathan Larmour  <jlarmour@redhat.com>
329
330         * include/pthread.h: Separate mutex and condvar API into separate
331         header file to fix configury problems.
332         * include/mutex.h: New file for the above.
333         * cdl/posix.cdl: provide the correct configury for the isoinfra
334         package to include the above file.
335         * cdl/pthread.cdl: Move _POSIX_PTHREAD_PRIO_INHERIT and
336         _POSIX_THREAD_PRIO_PROTECT to cdl/posix.cdl.
337         
338 2001-09-07  Jonathan Larmour  <jlarmour@redhat.com>
339
340         * src/sem.cxx (sem_trywait): Actually use the return value.
341
342         * src/sched.cxx (sched_get_priority_max): Use MAX not MIN
343         (sched_get_priority_min): Use MIN not MAX.
344
345 2001-09-06  Jesper Skov  <jskov@redhat.com>
346
347         * cdl/posix.cdl: Moved signal implements statements to the
348         CYGPKG_POSIX_SIGNALS component.
349
350 2001-08-06  Jonathan Larmour  <jlarmour@redhat.com>
351
352         * cdl/posix.cdl: Reorganize dependencies so that signals, timers
353         and pthreads really can be disabled, and the relevant files don't
354         get built.
355         Build new mutex.cxx file.
356         Remove duplicate CYGPKG_POSIX_SCHED dependency for pthreads.
357
358         * include/limits.h: Don't include irrelevant header dependencies.
359
360         * include/muttypes.h: New type defining mutex/cond var types separately
361         from other pthread types.
362
363         * include/types.h: Remove mutex/cond var types.
364
365         * include/signal.h: Conditionalize on CYGPKG_POSIX_SIGNALS
366
367         * include/sigsetjmp.h: Don't include irrelevant header dependencies.
368         Rewrite sigsetjmp in a much more compiler friendly (and readable)
369         way with less type punning.
370
371         * src/misc.cxx: Don't include sysconf cases when pthreads or
372         CYGPKG_POSIX_TIMERS not enabled.
373
374         * src/mutex.cxx: New file, broken out of pthreads.cxx, as most
375         of it is not fixed to the pthreads implementation, and I've fixed
376         the bits that were too tied to it.
377
378         * src/pprivate.h: Conditionalize definitions that are specific
379         to CYGPKG_POSIX_PTHREAD. Ditto for prototypes for CYGPKG_POSIX_SIGNALS
380         and CYGPKG_POSIX_TIMERS. Move PTHREAD_ENTRY/RETURN etc. macros
381         here so they can be used throughout the package.
382
383         * src/pthread.cxx: Remove mutex/cond var implementation, and
384         entry/return macros, as per above.
385
386         * src/signal.cxx (cyg_sigqueue): Don't just set non-queueable signals 
387         pending - also forcibly wake up any blocked threads.
388         (siglongjmp): Use new layout of sigjmp_buf.
389
390         * tests/mutex3.c:
391         * tests/pthread1.c:
392         * tests/pthread2.c:
393         * tests/pthread3.c:
394         * tests/signal1.c:
395         * tests/sigsetjmp.c:
396         * tests/timer1.c:
397         * tests/tm_basic.cxx:
398         Correct configuration dependencies, and do NA appropriately.
399         
400 2001-08-03  Nick Garnett  <nickg@cygnus.co.uk>
401
402         Imported from a development branch:
403         
404         2001-06-27  Nick Garnett  <nickg@cygnus.co.uk>
405
406                 * tests/pthread3.c:
407                 Modified the loop that waits for the threads to get going so that
408                 it will function correctly in an SMP system, where the threads
409                 will run in parallel.
410
411                 * tests/mutex3.c: Disabled this test for SMP systems. It depends
412                 too much on predicting the priority-driven execution order of the
413                 threads. In an SMP system, some threads will run in parallel and
414                 falsify the assumptions.
415
416         2001-05-25  Nick Garnett  <nickg@cygnus.co.uk>
417
418                 * src/signal.cxx (siglongjmp): Minor change to satisfy latest C++
419                 compiler.
420
421 2001-06-14  Jonathan Larmour  <jlarmour@redhat.com>
422
423         * src/pthread.cxx (pthread_attr_setstacksize): Correct stack
424         size assertion.
425
426 2001-06-12  Jonathan Larmour  <jlarmour@redhat.com>
427
428         * src/pthread.cxx (MAIN_DEFAULT_STACK_SIZE): Define to use at
429         least PTHREAD_STACK_MIN for main_stack.
430
431 2001-05-01  Nick Garnett  <nickg@cygnus.co.uk>
432
433         [x86 branch]
434         * tests/signal2.c (cause_illegal_access): Added code for I386
435         architecture to provoke General Protection Fault. 
436
437         * src/except.cxx: Removed some extraneous diag_printf()s.
438
439 2001-04-25  Bart Veer  <bartv@redhat.com>
440
441         * tests/tm_basic.cxx:
442         This test is now functional on the synthetic target.
443
444 2001-04-20  Jonathan Larmour  <jlarmour@redhat.com>
445
446         * src/time.cxx (cyg_ticks_to_timespec): Actually don't bother
447         with working out seconds using convertors. Instead just divide
448         down ns from a long long.
449
450 2001-04-19  Jonathan Larmour  <jlarmour@redhat.com>
451
452         * src/time.cxx (cyg_ticks_to_timespec): Clock convertors round off,
453         so adjust timespec accordingly.
454
455 2001-02-14  Jonathan Larmour  <jlarmour@redhat.com>
456
457         * include/pthread.h: Remove pthread_canceled() and
458         pthread_testcancel_unlock().
459         
460         * src/pthread.cxx: Ditto.
461         (pthread_join): Restructure to have function exit only at function end
462         (pthread_cond_timedwait): Check for timeouts and return ETIMEDOUT
463
464         * src/signal.cxx (sigtimedwait): Restructure cancellation testing
465
466         * src/time.cxx (nanosleep): test for cancellation at the end of the
467         function to keep Nick happy ;).
468
469 2001-02-11  Jonathan Larmour  <jlarmour@redhat.com>
470
471         * include/pthread.h: Add new pthread_testcancel_unlock and
472         pthread_canceled functions as eCos extensions.
473         Rename existing pthread_canceled variable to pthread_cancelled_dummy_var
474         
475         * src/pthread.cxx (pthread_canceled): New function to interrogate if
476         current thread has deferred cancel pending
477         (pthread_testcancel_unlock): New function. Like testcancel, but unlocks
478         a mutex before exitting the thread.
479         (checkforcancel): New internal function
480         (pthread_join): Add thread cancellation checks.
481         (pthread_cond_wait): Ditto.
482         (pthread_cond_timedwait): Ditto.
483         (pthread_testcancel): Use checkforcancel()
484         
485         * src/sem.cxx (sem_wait): Add thread cancellation checks
486         * src/signal.cxx (sigtimedwait): Ditto.
487         Also make compilation of this file conditional on CYGPKG_POSIX_SIGNALS
488         * src/time.cxx (nanosleep): Ditto.
489         Also make compilation of this file conditional on CYGPKG_POSIX_TIMERS
490
491         * cdl/posix.cdl (CYGPKG_POSIX_TIMERS): Implements POSIX timer ops.
492         Add explicit kernel and pthread dependencies.
493
494         * tests/sigsetjmp.c (pthread_entry1): Fix incorrect thread no. output
495
496         * tests/pthread3.c: Add deferred cancellation test.
497
498 2001-01-11  Nick Garnett  <nickg@cygnus.co.uk>
499
500         * src/pthread.cxx (pthread_testcancel): Added test for self !=
501         NULL in case this gets called from a non-pthread.
502
503 2000-12-22  Jonathan Larmour  <jlarmour@redhat.com>
504
505         * src/pthread.cxx (pthread_measure_stack_usage): New function
506         to measure stack usage.
507
508         * include/pthread.h: Prototype it.
509
510         * cdl/pthread.cdl: remove CYGNUM_POSIX_MAIN_DEFAULT_STACK_SIZE and
511         instead implement CYGINT_LIBC_STARTUP_EXTERNAL_INVOKE_MAIN_POSSIBLE
512
513         * src/pthread.cxx: Use stack size for main from libc_startup package
514         to prevent confusion
515         (cyg_posix_pthread_start): Likewise
516
517 2000-12-06  Jonathan Larmour  <jlarmour@redhat.com>
518
519         * src/signal.cxx: include unistd.h for _exit
520
521 2000-11-20  Nick Garnett  <nickg@cygnus.co.uk>
522
523         * src/signal.cxx (cyg_deliver_signals): Added else in code to
524         handle SIG_DFL. Otherwise if the SA_SIGINFO bit is set we call the
525         signal handler twice!
526
527 2000-11-07  Jonathan Larmour  <jlarmour@redhat.com>
528
529         * src/signal.cxx (cyg_posix_thread_siginit): Add extra thread
530         argument so that threads can inherit parent's sigmask.
531
532         * src/pthread.cxx (pthread_create): Call with parent thread
533
534         * src/pprivate.h: Change cyg_posix_thread_siginit prototype to take
535         parent thread argument
536
537         * tests/signal1.c: Add more checking of sigwaits, and fix so that it's
538         only called when the signal is masked. Check errno values too
539         sometimes.
540
541 2000-11-02  Jonathan Larmour  <jlarmour@redhat.com>
542
543         * src/signal.cxx (sigtimedwait): return signal number on success,
544         not 0
545         (SIGNAL_RETURN_VALUE): New macro for returning from functions with
546         valid non-zero returns
547         (sigwaitinfo): Pass on sigtimedwait result with SIGNAL_RETURN_VALUE
548         macro as it may return the signal number.
549
550 2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
551
552         * src/signal.cxx (sigtimedwait): Check for SIGALRMs as a special
553         case when looping as it won't have been set pending if it was
554         masked.
555         (check_sigalarm): New function extracted from the posix signal ASR
556         (sigalrm_action): Unconditionally wake up threads waiting in sigwait
557         so that they can check for pending SIGALRMs even if they were
558         masked.
559         (cyg_deliver_signals): Handle SIG_DFL signals properly, and check
560         for bad signal handlers.
561         (cyg_posix_signal_start): Initialize default signal actions to SIG_DFL
562
563 2000-10-27  Jesper Skov  <jskov@redhat.com>
564
565         * tests/signal2.c (cause_illegal_access): Don't loop forever.
566
567 2000-10-16  Jonathan Larmour  <jlarmour@redhat.com>
568
569         * include/sigsetjmp.h (sigsetjmp): Various fixes to make portable
570         across all HALs (by avoiding CYGARC_JMP_BUF_SIZE) and remove warnings.
571         * src/signal.cxx (siglongjmp): Likewise
572
573 2000-10-12  Nick Garnett  <nickg@cygnus.co.uk>
574
575         * include/sigsetjmp.h: Added this header to define
576         sigjmp_buf,sigsetjmp() and siglongjmp().
577
578         * cdl/posix.cdl:
579         Added support for providing sigsetjmp implementation and header.
580         Added sigsetjmp test.
581
582         * src/signal.cxx: Added siglongjmp().
583
584         * tests/sigsetjmp.c: Added this test for sigsetjmp(), siglongjmp()
585         functionality. This is also a test for longjmping out of signal
586         handlers.
587
588         * tests/signal2.c:
589         Ifdeffed around cause_* functions to avoid compiler warnings when
590         they are not needed.
591         Changed CYG_TEST_NA() calls to CYG_TEST_INFO() and changed
592         CYG_TEST_FINISH() to CYG_TEST_PASS_FINISH(). With the _NA's there,
593         the first unsupported exception just terminates the program, and
594         does not give any subsequent supported ones a chance to run.
595
596 2000-10-12  Jesper Skov  <jskov@redhat.com>
597
598         * tests/timer1.c (main): Fix exit check.
599
600 2000-10-11  Nick Garnett  <nickg@cygnus.co.uk>
601
602         * src/pthread.cxx: Fixed cyg_posix_pthread_release_thread() to
603         work for _DETACHED threads as well as for _RUNNING ones. Also
604         fixed a bug in test to decrement counter in this routine.
605
606         * src/pprivate.h: Added note about retaining numerical order of
607         PTHREAD_STATE_* defines.
608
609         * tests/timer1.c: Fixed some bugs of the how-did-it-ever-work
610         variety.
611
612 2000-10-05  Nick Garnett  <nickg@cygnus.co.uk>
613
614         * src/misc.cxx:
615         Added a set of compatibility functions to aid portability and
616         improve standards compliance.
617         Added cyg_posix_function_[start|finish] to set up and terminate
618         POSIX API functionality wrt signal and cancellation behaviour.
619         (Lots more to do here).
620
621         * include/export.h:
622         Added this file to contain definitions that can be exported from
623         the POSIX package to others.
624
625         * src/pprivate.h: Added include of export.h
626         
627 2000-09-11  Jonathan Larmour  <jlarmour@redhat.com>
628
629         * include/limits.h (OPEN_MAX): Don't define here - let FS infra do
630         that.
631         (LINK_MAX): Ditto
632         (NAME_MAX): Ditto
633         (PATH_MAX): Ditto
634
635 2000-09-04  Nick Garnett  <nickg@cygnus.co.uk>
636
637         * tests/pthread2.c: 
638         * tests/pthread3.c:
639         Fixed bug in calculation of thread stack addresses.
640
641         * src/misc.cxx (sysconf): Change zero returns to -1 when a feature
642         is not supported.
643
644 2000-08-08  Jonathan Larmour  <jlarmour@redhat.co.uk>
645
646         * include/limits.h: Don't define SSIZE_MAX here, leave it to the
647         isoinfra default.
648
649 2000-07-27  Jonathan Larmour  <jlarmour@redhat.co.uk>
650
651         * tests/signal2.c: NA if no setjmp/longjmp
652
653 2000-07-26  Nick Garnett  <nickg@cygnus.co.uk>
654
655         * include/pthread.h:
656         * src/pthread.cxx (pthread_testcancel): Reversed addition of cyg_
657         to this symbol.
658
659 2000-07-25  Jonathan Larmour  <jlarmour@redhat.co.uk>
660
661         * src/pthread.cxx: Define main_stack and main_thread as static
662         Rename pthread_canceled -> cyg_pthread_canceled - pthread_ may be
663         a reserved name space but this makes explicit it is implementation-
664         and not standard-defined
665         (PTHREAD_ENTRY_VOID): Define for funcs that take no args
666         (pthread_testcancel): Call PTHREAD_ENTRY_VOID()
667
668         * include/pthread.h: Rename pthread_canceled -> cyg_pthread_canceled
669
670 2000-07-20  Jonathan Larmour  <jlarmour@redhat.co.uk>
671
672         * src/pthread.cxx: Use isoinfra to determine presence of malloc()
673         Define pthread_malloc() and pthread_free() as inlines
674
675         * cdl/posix.cdl: Shouldn't define _POSIX_MESSAGE_PASSING at all - that
676         happens in isoinfra.
677
678 2000-07-20  Nick Garnett  <nickg@cygnus.co.uk>
679
680         * cdl/posix.cdl: Added misc.cxx to compile list. Added option to
681         define _POSIX_MESSAGE_PASSING. Added configury for utsname
682         structure.
683
684         * include/utsname.h: Added this file to define struct utsname and
685         uname() function prototype.
686
687         * include/mqueue.h: Moved definition of _POSIX_MESSAGE_PASSING to
688         CDL.
689
690         * include/limits.h: Added NGROUPS_MAX definition.
691
692         * src/pthread.cxx:
693         Added support for malloced() thread stacks.
694         Added implementations of pthread_mutex_setprioceiling() and
695         pthread_mutex_getprioceiling().
696         Changed implementations of pthread_mutex_destroy(),
697         pthread_mutex_lock() and pthread_mutex_trylock() to conform more
698         closely to the standard.
699         Changed pthread_key_create() to assign NULL to all valid thread
700         slots that correspond to a newly allocated key.
701
702         * src/pprivate.h: Added freestack and stackmem members to manage
703         malloced thread stacks.
704
705         * src/misc.cxx: Added this file to contain functions that do not
706         belong in any other files. Currently contains uname() and
707         sysconf().
708
709 2000-07-19  Jonathan Larmour  <jlarmour@redhat.co.uk>
710
711         * src/startup.cxx: Remove unnecessary includes
712         Use dummy object constructor to do initialization
713
714         * cdl/posix.cdl: 
715         Don't need main.cxx any more
716         Build startup.cxx into extras.o (via libextras.a)
717
718         * cdl/pthread.cdl (CYGPKG_POSIX_MAIN_THREAD):
719         Integrate with CYGPKG_LIBC_STARTUP - tell CYGPKG_LIBC_STARTUP to
720         let pthreads set up main thread
721
722         * src/pthread.cxx: Integrate with CYGPKG_LIBC_STARTUP rather than
723         calling main() directly.
724         Track number of threads waiting to be joined, so we can tell in
725         pthread_exit() if this is the last thread, and therefore whether
726         to call exit()
727
728         * src/main.cxx: obsolete, removed
729
730 2000-07-13  Nick Garnett  <nickg@cygnus.co.uk>
731
732         * src/signal.cxx: Added ISO C compatibility functions signal() and
733         raise().
734
735 2000-06-21  Nick Garnett  <nickg@cygnus.co.uk>
736
737         * src/pthread.cxx: Added for(;;) loop to end of pthread_exit().
738         pthread_exit() is marked with the noreturn attribute, and without
739         this some compilers generate a call to abort() here in case
740         Cyg_Thread::exit() returns. The loop avoids this.
741
742 2000-06-06  Jonathan Larmour  <jlarmour@redhat.co.uk>
743
744         * src/mqueue.cxx (mq_receive): Fix non-portable treatment of mode flags
745         (mq_send):  Ditto
746         * tests/mqueue2.c (main): Ditto
747
748 2000-05-24  Nick Garnett  <nickg@cygnus.co.uk>
749
750         * tests/pthread2.c: Added this program to test per-thread data
751         handling.
752
753         * tests/pthread3.c: Added this program to test execution of
754         cancellation handler.
755
756         * src/pthread.cxx: Fixed some bugs revealed by new test programs.
757
758         * cdl/posix.cdl: Added two new pthread tests.
759
760 2000-05-22  Jonathan Larmour  <jlarmour@redhat.co.uk>
761
762         * cdl/posix.cdl (CYGPKG_POSIX): Require
763         CYGIMP_KERNEL_SCHED_SORTED_QUEUES
764
765 2000-05-20  Jonathan Larmour  <jlarmour@redhat.co.uk>
766
767         * tests/mqueue1.c (cyg_user_start): Define correctly
768         * tests/mqueue2.c (cyg_user_start): Likewise
769
770         * src/pprivate.h (cyg_sigqueue): Make struct sigevent * arg const since
771         it is, and it prevents warnings elsewhere
772         * src/signal.cxx (cyg_sigqueue): ditto
773
774         * tests/signal2.c: Use CYG_TEST_NA, not CYG_TEST_INFO (otherwise
775         the test farm may fail the tests because there are no PASSes or NAs)
776
777         * cdl/posix.cdl (CYGPKG_POSIX): We need errno and error codes, so
778         require them
779         Move some of the package implements into the components
780         Add message queue configuration, build mqueue.cxx and the mqueue1 and
781         mqueue2 tests
782         Move some calculated options into isoinfra, implemented as interfaces
783         so that unistd.h and limits.h can get the values
784
785         * include/limits.h: Move _POSIX_* macros into isoinfra limits.h
786         since they are implementation independent
787
788         * src/mqueue.cxx: Add POSIX message queue implementation
789         * tests/mqueue1.c, tests/mqueue2.c: and tests
790
791 2000-05-18  Nick Garnett  <nickg@cygnus.co.uk>
792
793         * src/pprivate.h:
794         * src/pthread.cxx:
795         * src/signal.cxx:
796         * src/time.cxx:
797         Added prioritization of static kernel objects.
798
799 2000-05-17  Nick Garnett  <nickg@cygnus.co.uk>
800
801         * src/pthread.cxx:
802         To reduce the static memory required by this code, the
803         pthread_info structure for a pthread is now allocated in the stack
804         memory for that thread, and not in a static table. The table is
805         now just an array of pointers. The per-thread data array is now
806         also allocated onto the stack only when first required.
807
808         * include/pthread.h: Removed some redundant code.
809
810         * include/limits.h: Added PTHREAD_STACK_OVERHEAD to record
811         management overhead imposed on POSIX threads stacks. This is added
812         to the HAL minimum requirement to generate PTHREAD_STACK_MIN.
813
814         * src/pprivate.h (pthread_info):
815         * include/types.h (pthread_attr_t): Converted a number of integer
816         state and boolean fields to bitfields.
817
818         * cdl/pthread.cdl:
819         Added requirement for CYGFUN_KERNEL_THREADS_STACK_LIMIT.
820
821 2000-05-16  Nick Garnett  <nickg@cygnus.co.uk>
822
823         * include/types.h: Added stacksize_valid to pthread_attr_t
824         structure.
825
826         * include/signal.h:
827         Added SI_EXCEPT to mark any signals that were caused by an
828         exception. Removed conditions around SIGBUS.
829
830         * src/startup.cxx (cyg_posix_start):
831         Added call to cyg_posix_exception_start(). 
832
833         * src/signal.cxx:
834         Rearranged cyg_deliver_signals() so that it is possible to
835         longjmp() out of a signal handler without leaving signal handling
836         code in an inconsistent state.
837         Added handling of SIG_IGN in sigaction().
838
839         * src/pthread.cxx: Added setting and checking of stacksize_valid.
840
841         * src/pprivate.h: Added cyg_deliver_signals() as an export of
842         signal system. Added exports from except.cxx.
843
844         * src/except.cxx: Added this file to handle delivery of exceptions
845         into the POSIX signal mechanism.
846
847         * cdl/posix.cdl: Added except.cxx to compile list, added signal2
848         to tests. Added requirement on kernel exception processing.
849
850         * tests/tm_basic.cxx: Tidied up a compilation warning.
851
852         * tests/signal2.c: Added this test for exception signal generation.
853
854         * tests/mutex3.c: Fixed stupid bug.
855         
856 2000-05-10  Nick Garnett  <nickg@cygnus.co.uk>
857
858         * src/pprivate.h: Added cyg_posix_clock_start() prototype.
859
860         * src/startup.cxx: Added call to cyg_posix_clock_start().
861
862         * src/time.cxx: Added startup routine to initialize
863         converters. Fixed error result bug in timer_delete().
864
865         * include/signal.h: Removed some configuration tests which are now
866         done in CDL.
867
868         * cdl/posix.cdl: Added configury for the signals component. Added
869         tm_basic to tests.
870
871         * tests/tm_basic.cxx:
872         Added this POSIXized version of the tm_basic test. Note that this
873         has not been entirely converted. While the code being tested is
874         POSIX, the timing infrastructure remains a mish-mash of kernel,
875         KAPI and HAL code.
876
877 2000-05-04  Nick Garnett  <nickg@cygnus.co.uk>
878
879         * src/time.cxx:
880         Many changes to implement the delivery of signals on timer expiry.
881         Also added timer_delete().
882
883         * src/signal.cxx:
884         cyg_sigqueue() and cyg_deliver_signals() may now only be called
885         from within the context of a POSIX thread, either from an API call
886         or an ASR.
887         cyg_deliver_signals() can now cope with a signal that has
888         SA_SIGINFO set but no signals queued. It also determines
889         dynamically whether to lock the signal_mutex.
890         cyg_deliver_signals() is no longer called implicitly from
891         cyg_sigqueue() - so a number of expicit calls have been added.
892         
893         * src/sched.cxx:
894         Added this file to implement scheduling API.
895
896         * src/pthread.cxx:
897         Moved priority translation macros to pprivate.h.
898         Removed errno handling, now done in isoinfra package.
899         Added iterative calls to per-thread data destructors.
900
901         * src/pprivate.h:
902         Removed error field from pthread_info structure.
903         Moved priority translation macros here.
904         Removed prototype for cyg_deliver_signals().
905         Added prototype for cyg_posix_timer_asr().
906
907         * include/time.h: Added timer_delete() which was mysteriously
908         omitted.
909
910         * cdl/posix.cdl: Added sched.cxx to compile list and timer1.c to
911         tests.
912
913         * tests/signal1.c: 
914         * tests/pthread1.c:
915         Fixed bug in use of stack sizes.
916
917         * tests/timer1.c: 
918         Added test for use of timers.
919                 
920 2000-05-02  Jonathan Larmour  <jlarmour@redhat.co.uk>
921
922         * include/sched.h: No longer needed - just use the default definition
923         in isoinfra
924
925         * include/errno.h: No longer needed - errno provision now comes from
926         CYGPKG_ERROR
927         
928         * include/sys/types.h: Moved to include/types.h
929         
930         * cdl/posix.cdl, cdl/pthread.cdl: Put include files in cyg/posix, and
931         configure CYGPKG_ISOINFRA to include the appropriate headers
932         
933         * include/semaphore.h: Don't need to check kernel - including
934         pkgconf/kernel.h would already fail
935         Give SEM_FAILED a type so casting behaves in C++
936         
937         * include/signal.h: This uses pid_t etc., so include <sys/types.h>
938         Add signal() and raise() prototypes (to allow libc compilation, even
939         though they aren't implemented yet)
940         
941         * include/time.h: Remove unnecessary includes. Move clockid_t and
942         timer_t definitions here from sys/types.h since this is where the
943         standard says they must live. 
944         
945         * src/pprivate.h: Include signal.h and limits.h since their contents
946         are used later in the file.     
947
948 2000-04-28  Nick Garnett  <nickg@cygnus.co.uk>
949
950         * src/signal.cxx:
951         Added implementations of alarm(), pause() and sleep().
952         Modified cyg_sigqueue() so that it could be called from an ASR.
953         Added cyg_posix_signal_asr() to do signal processing in ASRs.
954         Miscellaneous bug fixes.
955
956         * src/pthread.cxx:
957         Added pthread_count to count number of threads created.
958         Added call to signal ASR function in main ASR.
959         Added cyg_posix_pthread_release_thread() to seek out and kick a
960         thread to which a given set of signals may be delivered.
961
962         * src/pprivate.h:
963         Added some more functions that are shared between POSIX
964         subsystems.
965
966         * include/signal.h:
967         Added alarm(), pause() and sleep() prototypes. 
968
969         * tests/signal1.c: Added this test for various aspects of signal
970         handling.
971
972         * cdl/posix.cdl: Added signal1 test.
973
974 2000-04-20  Nick Garnett  <nickg@cygnus.co.uk>
975
976         * src/signal.cxx: Added this file to contain signal handling code.
977
978         * src/time.cxx: Made tick<->timespec converters exported to
979         rest of POSIX subsystem. Enabled interface to signal mechanism for
980         notifying timer expiration.
981
982         * src/pthread.cxx:
983         Made pthread_mutex exported to rest of POSIX subsystem.
984         Exported pthread_info_id().
985         Added thread init and destroy functions for signal subsystem.
986
987         * src/startup.cxx: Added call to cyg_posix_signal_start().
988
989         * src/pprivate.h: Added signal handling fields support to
990         pthread_info structure. Added extra internal interfaces to support
991         signal handling code.
992
993         * include/signal.h: Added _how_ argument values for the sigmask
994         functions.
995
996         * cdl/posix.cdl: Added signal.cxx to compile list.
997
998 2000-04-13  Nick Garnett  <nickg@cygnus.co.uk>
999
1000         * include/time.h: 
1001         * src/time.cxx:
1002         Added implementation of clock and timer functions. These are
1003         currently untested since they need working signals.
1004
1005 2000-04-12  Nick Garnett  <nickg@cygnus.co.uk>
1006
1007         * src/pprivate.h: Added cancellation support fields to
1008         pthread_info structure. Made pthread_self_info() exported.
1009
1010         * include/semaphore.h: Added SEM_FAILED plus misc. tidies.
1011
1012         * include/pthread.h: Added PTHREAD_CANCELED.
1013
1014         * include/errno.h: Fixed cyg_pthread_errno_p() return type.
1015
1016         * src/pthread.cxx:
1017         Added pthread_reap() to clean up exited threads.
1018         Added support for cancellation.
1019         Added cyg_posix_errno_p().
1020
1021         * src/time.cxx:
1022         Added this file to implement time functionality. At present only
1023         nanosleep() is actually implemented.
1024
1025         * src/sem.cxx:
1026         Added this file to implement semaphore functionality.
1027
1028         * cdl/pthread.cdl:
1029         Added some extra configuration requirements.
1030
1031         * cdl/posix.cdl:
1032         Added some more files to compile.
1033         Added semaphore configuration.
1034
1035         * tests/mutex3.c:
1036         Added this test program. This is actually a POSIXized version of
1037         Hugo's splendid kernel test of the same name. It exercises quite a
1038         lot of the pthread infrastructure and is thus a good test to run.
1039
1040         * tests/pthread1.c:
1041         Added proper comment headers and added full testing stuff.
1042         
1043 2000-04-10  Nick Garnett  <nickg@cygnus.co.uk>
1044
1045         * src/pprivate.h: 
1046         * src/pthread.cxx:
1047         Added per-thread data support.
1048
1049 2000-04-06  Nick Garnett  <nickg@cygnus.co.uk>
1050
1051         * src/pthread.cxx:
1052         Filled in implementations of lots of functions.
1053
1054         * src/main.cxx:
1055         Added this file to contain a default main. This is currenly just a
1056         duplicate of the same file from the C library. Work is needed to
1057         combine these.
1058
1059         * include/sys/types.h:
1060         Modified pthread_mutex_t to conform to kernel structure.
1061
1062         * cdl/pthread.cdl:
1063         Added support for main thread.
1064
1065         * cdl/posix.cdl:
1066         Added main.cxx to compile list.
1067
1068 2000-03-31  Nick Garnett  <nickg@cygnus.co.uk>
1069
1070         * cdl/pthread.cdl: 
1071         * cdl/posix.cdl:
1072         Added CDL files to configure POSIX subsystem.
1073
1074         * src/pprivate.h: 
1075         * src/pthread.cxx: 
1076         * src/startup.cxx: 
1077         Added these files to begin implementation of POSIX package.
1078         
1079         * include/pthread.h: 
1080         * include/sched.h: 
1081         * include/signal.h: 
1082         * include/time.h: 
1083         * include/sys/types.h: 
1084         Many changes needed by implementation work.
1085         
1086         * include/limits.h: 
1087         * include/errno.h: 
1088         Added these header files.
1089         
1090 2000-03-24  Nick Garnett  <nickg@cygnus.co.uk>
1091
1092         * include/sys/types.h: 
1093         * include/time.h: 
1094         * include/sched.h: 
1095         * include/pthread.h: 
1096         * include/signal.h:
1097         * include/semaphore.h: 
1098         * include/mqueue.h: 
1099         Roughed out (most of) the set of POSIX headers for the
1100         functionality we are currently going to support. These files are
1101         currently neither fully standard conformant nor implementation
1102         ready. Much work is still needed to make them so. Watch this
1103         space.
1104
1105 #####ECOSGPLCOPYRIGHTBEGIN####
1106 ## -------------------------------------------
1107 ## This file is part of eCos, the Embedded Configurable Operating System.
1108 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
1109 ##
1110 ## eCos is free software; you can redistribute it and/or modify it under
1111 ## the terms of the GNU General Public License as published by the Free
1112 ## Software Foundation; either version 2 or (at your option) any later version.
1113 ##
1114 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
1115 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
1116 ## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1117 ## for more details.
1118 ##
1119 ## You should have received a copy of the GNU General Public License along
1120 ## with eCos; if not, write to the Free Software Foundation, Inc.,
1121 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
1122 ##
1123 ## As a special exception, if other files instantiate templates or use macros
1124 ## or inline functions from this file, or you compile this file and link it
1125 ## with other works to produce a work based on this file, this file does not
1126 ## by itself cause the resulting work to be covered by the GNU General Public
1127 ## License. However the source code for this file must still be made available
1128 ## in accordance with section (3) of the GNU General Public License.
1129 ##
1130 ## This exception does not invalidate any other reasons why a work based on
1131 ## this file might be covered by the GNU General Public License.
1132 ##
1133 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
1134 ## at http://sources.redhat.com/ecos/ecos-license/
1135 ## -------------------------------------------
1136 #####ECOSGPLCOPYRIGHTEND####