URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/ecos-2.0/packages/language/c/libc/signals
- from Rev 27 to Rev 174
- ↔ Reverse comparison
Rev 27 → Rev 174
/v2_0/ChangeLog.libc
0,0 → 1,2736
This ChangeLog file is now obsolete. This is the original ChangeLog from when |
libc was one large package, before being separated. It is included for |
historical reasons. |
|
2000-04-05 Jesper Skov <jskov@redhat.com> |
|
* src/time/settime.cxx: |
* src/time/time.cxx: |
Wallclock moved to io/. |
|
2000-03-28 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/string.cdl, |
cdl/stdlib.cdl, |
cdl/stdio.cdl, |
cdl/libc.cdl: |
|
Adjust documentation URLs. |
|
2000-03-27 Jesper Skov <jskov@redhat.com> |
|
* src/clibincl/stream.inl (check_this): Use cyb_bool instead of bool. |
|
2000-03-06 Jesper Skov <jskov@redhat.com> |
|
* tests/time/strftime.c (test): Adjust test to match below change. |
|
2000-03-02 Jonathan Larmour <jlarmour@redhat.co.uk> |
|
* src/time/strftime.cxx (do_format): Make sure %m counts from |
1..12 rather than 0..11. Fix for case 103300 |
|
2000-02-29 Jonathan Larmour <jlarmour@redhat.co.uk> |
|
* src/stdio/output/vfnprintf.cxx: Correctly use 'n' parameter to |
restrict length. Credit due to Andrew Lunn here as well. |
Resolves 103057-CR-1 |
|
* tests/stdio/sprintf2.c (test): |
Add snprintf tests to verify the correct behaviour of restricting |
output length |
|
2000-02-10 Jesper Skov <jskov@redhat.com> |
|
* tests/signal/signal2.c (main): |
Also reclaim DATA_TLB_MISS vector if available. |
|
2000-01-31 Simon FitzMaurice <sdf@cygnus.co.uk> |
* cdl/*.cdl: |
|
Adjust help URLs in line with new doc layout. |
|
2000-01-28 Simon FitzMaurice <sdf@cygnus.co.uk> |
* cdl/*.cdl: |
|
Adjust help URLs in line with new doc layout. |
|
2000-01-19 Hugo Tyson <hmt@cygnus.co.uk> |
|
* cdl/*.cdl: Add descriptions to a number of options &c which were |
lacking same, also tidied up other typos as noticed en passant. |
|
1999-11-11 Bart Veer <bartv@cygnus.co.uk> |
|
* cdl/string.cdl: |
Switch to a single boolean configuration option for code size vs. |
speed optimization. |
|
1999-11-03 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/libc.cdl: Define tests. |
|
1999-10-19 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/output/vfnprintf.cxx: We can now remove Berkeley |
advertising clause |
* src/stdlib/div.cxx: ditto |
* src/stdlib/ldiv.cxx: ditto |
* src/stdlib/strtol.cxx: ditto |
* src/stdlib/strtoul.cxx: ditto |
* src/string/strtok.cxx: ditto |
|
1999-10-19 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/libc.cdl: |
|
Define CDL options for package-specific CFLAGS. |
|
1999-10-08 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_THREAD_PRIORITY): Change |
default to 10 to keep test farm happy |
* cdl/startup.cdl: Likewise |
|
1999-10-07 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/stdlib.cdl, cdl/string.cdl: |
|
Specify radio buttons using CDL interfaces. |
|
1999-10-06 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* cdl/stdio.cdl: Change default to /dev/ttydiag as per 1999-10-01 |
change below |
* cdl/startup.cdl: Add new form CDL for the startup changes as |
per 1999-10-05 |
|
1999-10-05 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/libc.h: Add CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM to allow |
the user to supply their own stack. |
Rename CYGNUM_LIBC_MAIN_STACK_SIZE to |
CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE and reparent under |
CYGSEM_LIBC_MAIN_STACK_FROM_SYSTEM |
Add CYGNUM_LIBC_MAIN_THREAD_PRIORITY to provide main() thread |
priority |
|
* src/support/mainthread.cxx: Add support for user-supplied stack |
Allow user to specify thread priority |
|
These changes fix CR 101069 |
|
1999-10-01 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Change |
default to /dev/ttydiag to get correct console-like behaviour |
Also don't preclude use if haldiag package isn't included |
(case 102065) |
|
1999-09-15 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/signal/signal2.c (cause_fpe): Try both float and integer |
division by zero. |
|
1999-09-10 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/stdlib/malloc.cxx (cyg_libc_get_malloc_pool): Added for |
stress_threads test. |
|
1999-09-07 Jesper Skov <jskov@cygnus.co.uk> |
PRs 20243, 20433 |
* tests/signal/signal2.c: Disabled test3 on ARM. |
|
1999-09-02 Hugo Tyson <hmt@cygnus.co.uk> |
|
* include/assert.h: Make the sense of NDEBUG correct; it is "set" |
when NOT debugging. Fix for CR 101983-CR-1 |
See Stroustrup, "The C++ Programming Language." |
|
1999-08-18 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/fopen.cxx (_fopen): Set buffer size 0 when not |
buffering |
Fix for case 101868 |
|
1999-08-17 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/stdlib.cdl, cdl/string.cdl: |
|
Implement radio buttons using "FIXME radio" hack in |
description field for now. |
|
1999-08-12 John Dallaway <jld@cygnus.co.uk> |
|
* cdl/stdlib.cdl: |
Take advantage of MACRONAME_ENUMVAL macros output by CDL. |
|
1999-08-06 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf2.c (test): Don't rely on 2.345 being exactly |
representable in binary as a difference of 1 ulp will make it round |
the wrong way. |
|
1999-07-16 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/fgetc.cxx: |
Include outline versions of getc() (actually just a symbol alias for |
fgetc() ) and getchar() |
Some minor clean-ups |
Add tracing/assertions |
|
* src/stdio/input/fputc.cxx: |
Likewise (except applied to putc() and putchar()) |
|
* src/stdio/common/stdioinlines.cxx (_puts): |
Call fputc() not _fputc() |
|
* src/clibincl/stdiosupp.hxx: |
Remove now obsolete prototypes for _fgetc() and _fputc() |
|
* include/stdio.h: |
Don't bother with getc()/putc() macros any more, just call |
them as functions |
Include protos for getc(), putc(), getchar() and putchar() functions |
|
1999-06-21 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/signal/signal2.c: Disabled test 3 for SH EDK7708. |
|
1999-06-11 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdio.h: Make FILEs array types so they won't be |
given $gp relocations on MIPS targets |
|
1999-05-27 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/time/ctime.c: Fixed compiler warning. |
|
1999-05-25 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/signal/signal2.c (main): |
Update CYGPKG_HAL_TX39 -> CYGPKG_HAL_MIPS_TX39 due to recent MIPS |
HAL changes |
Fix for PR 20116 |
|
1999-04-30 Jesper Skov <jskov@lassi.cygnus.co.uk> |
PR 19945/19946 workaround |
* tests/signal/signal2.c: Disabled test 3 for PowerPC sim. |
|
1999-04-19 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/time.inl: |
Ensure all calls to cyg_libc_time_year_is_leap() are with the full |
year, and not the direct contents of a struct tm, which are (year-1900) |
|
1999-04-19 Jesper Skov <jskov@cygnus.co.uk> |
PR 19308, 19410, 19528 |
* tests/time/clock.c (test): Also disable data cache which may |
affect timing when tracing/assertions are enabled. |
|
1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stdiosupp.hxx: |
Add prototype for new cyg_libc_stdio_flush_all_but() function |
|
* src/clibincl/stream.hxx: |
Don't include stdiosupp.hxx any more to prevent circular dependency, |
therefore manually provide _setvbuf prototype |
Make sure pkgconf/kernel.h is included before mutex.hxx |
|
* src/clibincl/stream.inl (Cyg_StdioStream::set_error()): |
Add missing unlock_me() |
|
* src/stdio/common/fflush.cxx: |
Separate most of code for fflush(NULL) into separate |
cyg_libc_stdio_flush_all_but() function, which has the extra |
capability of omitting one stream |
|
* src/stdio/common/stderr.cxx: |
* src/stdio/common/stdin.cxx: |
* src/stdio/common/stdout.cxx: |
* src/stdio/common/vsnprintf.cxx: |
* src/stdio/common/vsscanf.cxx: |
Add missing clibincl/stdiosupp.hxx include |
|
* src/stdio/common/stream.cxx (Cyg_StdioStream::read()): |
When reading, ensure we flush all output streams |
|
* src/stdio/common/stream.cxx (Cyg_StdioStream::flush_output_unlocked): |
Flush the device as well |
|
1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/streambuf.cxx (set_buffer): |
* src/stdio/common/stdioinlines.cxx (_setbuf): |
* src/clibincl/streambuf.inl: |
* src/clibincl/streambuf.hxx: |
* src/clibincl/stream.hxx (class Cyg_StdioStream): |
* include/pkgconf/libc.h: |
* include/stdio.inl (setbuf): |
Fix dumb typo: BUFSIZE -> BUFSIZ |
This fixes PR19837 |
|
1999-04-15 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stdioinlines.cxx (_setbuf): |
* include/stdio.inl (setbuf): |
Use _IONBF when buf==NULL, and _IOLBF otherwise. |
Fix for PR 19836 |
|
1999-04-15 John Dallaway <jld@cygnus.co.uk> |
|
* include/pkgconf/libc.h: Tidy display string capitalization. |
|
1999-04-12 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Clarify CDL description of CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE |
|
* tests/signal/signal2.c: Try harder to generate an exception by |
accessing a misaligned address |
Don't handle SIGTRAP any more |
Part of fix for PRs 19731/19607 |
|
1999-04-07 Jesper Skov <jskov@cygnus.co.uk> |
PR 19667 |
* src/support/mainthread.cxx: |
Changed to use the new Cyg_Thread constructor. |
|
1999-04-07 Hugo Tyson <hmt@cygnus.co.uk> |
|
* tests/signal/signal2.c (main): Use new macro |
HAL_VSR_SET_TO_ECOS_HANDLER if defined, to wrest control from |
CygMon, for example, by reinstalling eCos' default VSRs for |
exceptions that we are provoking. |
|
1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/signal/siginit.cxx: Include stdlib.h for exit() |
Fix for PR 19720 |
|
1999-03-29 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/time/clock.c (test): Disable instruction cache |
Hopefully fixes PR 19308 |
|
1999-03-29 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/signal/signal2.c: Disabled test 3 for PPC as it cannot |
trap division by zero. |
|
1999-03-26 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/main.cxx (main): Invoke cyg_user_start() if no kernel |
Only sensible thing to do in our default main in a non-kernel config |
|
1999-03-25 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/time/time.c: |
Increase MAX_TIMEOUT since the sparclite gets very close to overrunning |
it even when working. |
Should return -1 iff CYGSEM_LIBC_TIME_TIME_WORKING isn't defined |
Cosmetic changes |
|
1999-03-25 Hugo Tyson <hmt@cygnus.co.uk> |
|
* tests/time/time.c (test): Take into account setting of |
CYGSEM_LIBC_TIME_SETTIME_WORKING ie. does cyg_libc_time_settime() |
work? If not, check that it returns an error. |
This was exposed by the random combo in PR#19479. |
|
1999-03-23 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Rename CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 to |
CYGIMP_... |
|
Add another rand implementation CYGIMP_LIBC_RAND_SIMPLE1 which is |
the default |
|
Part of fix for PR 19562 |
|
* include/sys/cstartup.h: |
Tidy and remove unnecessary dependencies |
|
* src/stdlib/rand.cxx: |
Rename algorithms from CYGSEM_... to CYGIMP_... |
Add new "simple1" algorithm |
|
* tests/ctype/ctype.c: |
Tidy |
|
* tests/stdlib/rand3.c: |
Fix so that 0..RAND_MAX is split evenly over buckets, which it wasn't |
before |
Deal with case of RAND_MAX not being divisible by NUM_BUCKETS |
exactly |
Increase TEST_LENGTH to 200000 to provide more representative sample |
Add CYG_TEST_INFO output to help ensure it doesn't time out |
Tidy |
|
* tests/stdlib/rand4.c: |
Only fail if more than _two_ thirds (rather than one third) match. |
This is because half would match for a perfectly random distribution |
This is the rest of the fix for PR 19562 |
Cosmetic changes |
|
1999-03-22 Hugo Tyson <hmt@cygnus.co.uk> |
|
* src/support/mainthread.cxx (CYGNUM_LIBC_MAIN_STACK_SIZE): |
Use CYGNUM_HAL_STACK_SIZE_TYPICAL for the stack size instead of |
CYGNUM_HAL_MINIMUM_STACK_SIZE. |
|
1999-03-22 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/PKGconf.mak: Add -Wno-format when building strftime otherwise |
it generates warnings for things that we do want to test (null |
string, and %y format) |
|
1999-03-19 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE): |
Put brackets back round negative number since sdf says the config |
tool is fixed now (PR 19537) |
|
Add new CYGSEM_LIBC_RAND_SIMPLEST and CYGSEM_LIBC_RAND_KNUTH1 |
options for different rand() algorithms in a so far failed attempt |
to fix PR 19562 |
|
* src/stdlib/rand.cxx: |
Add new optional algorithm from Knuth vol.2 |
|
* tests/stdlib/rand4.c: |
Some tidies |
Don't run test when using simplest algorithm |
|
* tests/signal/signal2.c (main): |
Don't try to make an FPE on tx39 - its possible to detect but requires |
too much HAL work to be sensible |
|
1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler): |
Use HAL_ENABLE_INTERRUPTS() rather than kernel to enable interrupts |
|
1999-03-18 Mark Galassi <rosalia@cygnus.com> |
|
* tests/PKGconf.mak (TESTS): added rand4 compilation. |
|
* tests/stdlib/rand4.c: added this test for periodicity in the |
least significant bit of rand(). |
|
1999-03-18 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: Remove CYGFUN_LIBC_TIME_POSIX dependency |
on CYGPKG_LIBC_STDIO |
|
* src/stdlib/itoa.cxx: |
New file to convert integers to ascii |
|
* include/stdlib.h: |
Add proto for new cyg_libc_itoa() function |
|
* include/time.inl: |
Rework __asctime_r() to use memcpy() and cyg_libc_itoa() rather than |
sprintf() |
|
* src/PKGconf.mak: |
Build stdlib/itoa.cxx |
|
The above changes fix PR 19448 |
|
1999-03-17 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/time.h: Add #define of __time_t_defined to placate newlib |
if it is used by accident. This is just a temporary workaround though. |
|
1999-03-16 Gary Thomas <gthomas@cygnus.co.uk> |
|
* src/PKGconf.mak: Add compile option to step around ARM compiler bug. |
|
1999-03-16 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGNUM_LIBC_TIME_DST_DEFAULT_STATE): |
Don't use parentheses for now |
|
* src/stdio/common/stream.cxx (refill_read_buffer): |
Silence bogus compiler warning |
|
1999-03-16 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/signal/signal2.c (main): Enable SIGSEGV test for |
i386/Linux. |
|
|
1999-03-15 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/signal/siginit.cxx (cyg_libc_signals_hwexcept_handler): |
Only enable interrupts if they were disabled |
|
* include/sys/timeutil.h: |
* src/time/timeutil.cxx: |
Add FIX ME line as a reminder that the workaround there can go away |
in future |
|
* include/pkgconf/libc.h: |
Add proper define for CYGSEM_LIBC_EXIT_CALLS_FFLUSH |
Put brackets round negative CYGNUM_LIBC_TIME_DST_DEFAULT_STATE define |
Fix run time typo |
|
* include/time.inl (__localtime_r): |
Include sys/timeutil.h before this to get |
cyg_libc_time_normalize_structtm() |
|
1999-03-12 Gary Thomas <gthomas@cygnus.co.uk> |
|
* include/sys/timeutil.h: |
* src/time/timeutil.cxx: Remove 'const' from char arrays since |
this fails [silently] on ARM when -fwritable-strings (PR19440) |
|
1999-03-12 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/signal/signal2.c (main): Compiler warnings fix was |
slightly broken. |
|
1999-03-12 Jesper Skov <jskov@cygnus.co.uk> |
PR 19473 |
* tests/signal/signal2.c (main): |
Disabling SIGTRAP handling on i386/Linux is not a good idea. |
1999-03-11 Jesper Skov <jskov@cygnus.co.uk> |
PR 19473 |
* tests/signal/signal2.c: |
Added compiler warnings fix. |
Added N/A handling for i386/Linux. |
|
1999-03-10 Gary Thomas <gthomas@cygnus.co.uk> |
|
* include/pkgconf/libc.h: Force "haldiag" device to be present. |
'asctime' and friends need 'stdio' as well. |
|
* include/time.inl: Fix syntax error on difftime() declaration. |
|
1999-03-08 Gary Thomas <gthomas@cygnus.co.uk> |
|
* src/clibincl/stream.hxx: <cyg/infra/cyg_ass.h> needed for this file. |
|
* src/stdio/common/vsscanf.cxx (str_read): Fix problem with string |
pointer [created by merge with new I/O package]. |
|
1999-03-05 John Dallaway <jld@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add legal values for CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET |
and CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET. |
|
1999-03-05 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/time.inl (cyg_libc_time_year_is_leap): |
Fix bug with modulo year 400 |
Fix typo in asctime_r macro |
Fix gmtime_r, and mktime as a result of testing |
|
* tests/time/asctime.c, tests/time/ctime.c, tests/time/gmtime.c, |
tests/time/gmtime.c, tests/time/localtime.c, tests/time/mktime.c, |
tests/time/strftime.c, tests/time/time.c: |
New tests |
|
* tests/PKGconf.mak: |
Build above new tests |
|
* include/pkgconf/libc.h: |
Add reminder FIX ME about extra config option |
|
* src/time/strftime.cxx: |
Fix %w and %Y parameters as a result of testing |
|
* src/time/timeutil.cxx: |
Fix cyg_libc_time_normalize_structtm() as a result of testing |
of mktime() |
|
* tests/time/clock.c: |
Reformat, remove obsolete bits and tidy |
|
* include/time.h: |
Add Cyg_libc_time_dst type and new functions |
cyg_libc_time_setzoneoffsets(), cyg_libc_time_setdst(), |
cyg_libc_time_getzoneoffsets(), cyg_libc_time_settime() |
|
* include/time.inl: |
Implement the above functions. This allows us to adjust for timezone |
diffences and set the time. |
Change localtime() to adjust for STD/DST |
Change mktime() to adjust for STD/DST |
|
* include/libc.h: |
Add new config options CYGSEM_LIBC_TIME_SETTIME_WORKING |
and component CYGPKG_LIBC_TIME_ZONES containing options |
CYGNUM_LIBC_TIME_DST_DEFAULT_STATE, |
CYGNUM_LIBC_TIME_STD_DEFAULT_OFFSET, |
CYGNUM_LIBC_TIME_DST_DEFAULT_OFFSET |
|
* src/strftime.cxx: |
Adjust handling of %Z to _not_ deal with STD/DST |
|
* src/time/settime.cxx: |
New file to implement cyg_libc_time_settime() |
|
* src/PKGconf.mak: |
Build settime.cxx |
|
* src/time/timeutil.cxx: |
Supply outline versions of cyg_libc_time_setzoneoffsets(), |
cyg_libc_time_setdst(), and cyg_libc_time_getzoneoffsets() |
Add variables for STD/DST state |
Some minor comment changes |
|
* include/errno.h: |
Use CYGBLD_ATTRIB_CONST instead of __attribute__((const)) directly |
|
* include/signal.h: |
Change format of function comment headers |
|
* include/signal.inl: |
Restrict errno.h inclusion to when its actually used |
Fix a spelling typo |
|
* include/stdlib.h: |
Add CYGBLD_ATTRIB_CONST to abs, div, labs, ldiv |
|
* include/stdlib.inl: |
Reformat and tidy |
Include new versions of div and ldiv which are more portable and |
are cleanly rewritten so aren't covered by the BSD licence, which |
is now removed |
|
* src/stdlib/div.cxx, src/stdlib/ldiv.cxx: |
Non-inline, non-BSD and portable versions of the new versions of div |
and ldiv from stdlib.inl |
|
* include/time.h: |
Much reformatting, tidying and improving comments |
Change CLOCKS_PER_SEC from 1000 to 1000000 |
Add new functions asctime_r, ctime_r, gmtime_r, localtime_r, clock, |
difftime, mktime, time, asctime, ctime, gmtime, localtime, strftime |
Include new time.inl file |
|
* include/pkgconf/libc.h: |
Add new options CYGSEM_LIBC_TIME_CLOCK_WORKING, |
CYGSEM_LIBC_TIME_TIME_WORKING, CYGFUN_LIBC_TIME_POSIX, |
CYGNUM_LIBC_TIME_CLOCK_TRACE_LEVEL, CYGIMP_LIBC_TIME_ASCTIME_INLINE, |
CYGIMP_LIBC_TIME_CTIME_INLINE, CYGIMP_LIBC_TIME_DIFFTIME_INLINE, |
CYGIMP_LIBC_TIME_GMTIME_INLINE, CYGIMP_LIBC_TIME_LOCALTIME_INLINE, |
CYGIMP_LIBC_TIME_MKTIME_INLINE, CYGIMP_LIBC_TIME_ASCTIME_R_INLINE, |
CYGIMP_LIBC_TIME_CTIME_R_INLINE, CYGIMP_LIBC_TIME_GMTIME_R_INLINE, |
and CYGIMP_LIBC_TIME_LOCALTIME_R_INLINE |
|
* time/asctime.cxx, time/asctime_r.cxx, time/clock.cxx, time/ctime.cxx, |
time/ctime_r.cxx, time/difftime.cxx, time/gmtime.cxx, |
time/gmtime_r.cxx, time/localtime.cxx, time/localtime_r.cxx, |
time/mktime.cxx, time/strftime.cxx, time/time.cxx, time/timeutil.cxx, |
include/time.inl: |
New files to implement the new time functions. Many of them simply |
provide the outline definitions, but the real body of the function |
comes from time.inl |
|
* src/PKGconf.mak: |
Build new .cxx files |
|
* src/clibincl/stdlibsupp.hxx: |
Remove _div and _ldiv prototypes since they're no longer needed |
|
* src/clibincl/timesupp.hxx: |
Delete as its now obsolete |
|
* src/time/clock.cxx: |
Use new CYGSEM_LIBC_TIME_CLOCK_WORKING option to control whether it |
just returns (clock_t)-1 or not. |
Much reformatting and tidying |
Change real imlpementation from _clock to __clock |
Use CYGBLD_ATTRIB_WEAK_ALIAS now |
|
* tests/stdlib/div.c, tests/stdlib/ldiv.c: |
Add some extra tests for handling of negative numbers |
Reformat and tidy a bit, including removing the test for CYGPKG_LIBC |
since its now always defined if the test is to be compiled |
|
* tests/time/clock.c: |
Remove duplication CYG_TEST_INFO line |
Check if unimplemented using "(clock_t)-1" and not just "-1" |
|
1999-03-04 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/system.cxx: |
Make sure system() is a weak alias for __system() |
|
* include/pkgconf/libc.h: Rework CDL description for |
CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE and change its default to |
"/dev/haldiag" |
|
* src/stdio/common/stream.cxx: |
Check that dev is valid when passed to stream constructor |
|
* src/stdio/common/stdiosupp.cxx: |
Tidy |
|
* src/support/mainthread.cxx: Make this depend on |
CYGSEM_LIBC_STARTUP_MAIN_THREAD rather than just CYGPKG_KERNEL |
|
1999-03-04 Gary Thomas <gthomas@cygnus.co.uk> |
|
Merged in changes from 'ecos-new_devs-19990216-branch' |
|
(1999-02-24 Jonathan Larmour <jlarmour@cygnus.co.uk>) |
|
* src/stdio/common/stream.cxx: |
Add "fix me" comments and remove a couple of commented out lines |
|
* src/stdio/common/vsnprintf.cxx: |
* src/stdio/common/vsscanf.cxx: |
Revert to using pointer to string for private data, not just string. |
This preserves the state across multiple calls |
|
(1999-02-24 Gary Thomas <gthomas@cygnus.co.uk>) |
|
* src/stdio/common/vsscanf.cxx: |
* src/stdio/common/vsnprintf.cxx: |
* src/stdio/common/stream.cxx: |
* src/stdio/common/stdiosupp.cxx: |
* src/stdio/common/fopen.cxx: |
* src/clibincl/stream.inl: |
* src/clibincl/stream.hxx: |
* src/clibincl/stdiosupp.hxx: |
* include/pkgconf/libc.h: Changes for new I/O system. |
|
1999-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/atexit.c: Forgot to config atexit test for |
CYGFUN_LIBC_ATEXIT option |
|
* include/pkgconf/libc.h: |
Require CYGVAR_KERNEL_THREADS_DATA for CYGSEM_LIBC_PER_THREAD_STRTOK |
This fixes PR 19362 |
Require CYGPKG_KERNEL for thread safe streams |
Also don't need "requires CYGPKG_KERNEL" for per-thread rand and errno |
if we already require a finer granularity kernel option |
|
1999-02-25 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: Fix CYGNUM_LIBC_MAIN_STACK_SIZE by changing |
CYGPKG_LIBC_STARTUP_MAIN_THREAD -> CYGSEM_LIBC_STARTUP_MAIN_THREAD |
Fix for PR 19304 |
|
1999-02-23 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/system.cxx: Add to implement trivial system() call |
* include/stdlib.h: Add system() prototype |
* src/PKGconf.mak: Build system.cxx |
|
* tests/ctype/ctype.c, tests/i18n/setlocale.c, tests/setjmp/setjmp.c, |
tests/signal/signal1.c, tests/signal/signal2.c, |
tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c, |
tests/stdio/stdiooutput.c, tests/stdlib/atexit.c, |
tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c, |
tests/stdlib/div.c, tests/stdlib/getenv.c, tests/stdlib/labs.c, |
tests/stdlib/ldiv.c, tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, |
tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c, |
tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/realloc.c, |
tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c, |
tests/string/memchr.c, tests/string/memcmp1.c, |
tests/string/memcmp2.c, tests/string/memcpy1.c, |
tests/string/memcpy2.c, tests/string/memmove1.c, |
tests/string/memmove2.c, tests/string/memset.c, |
tests/string/strcat1.c, tests/string/strcat2.c, |
tests/string/strchr.c, tests/string/strcmp1.c, |
tests/string/strcmp2.c, tests/string/strcoll1.c, |
tests/string/strcpy1.c, tests/string/strcpy2.c, |
tests/string/strcspn.c, tests/string/strlen.c, |
tests/string/strncat1.c, tests/string/strncat2.c, |
tests/string/strncpy1.c, tests/string/strncpy2.c, |
tests/string/strpbrk.c, tests/string/strrchr.c, |
tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c, |
tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c: |
Use CYG_TEST_NA() macro for non-applicable test configurations |
|
1999-02-20 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/signal.h: |
* include/signal.inl: |
* src/signal/raise.cxx: |
* src/signal/siginit.cxx: |
* src/signal/signal.cxx: |
* tests/signal/signal1.c |
* tests/signal/signal2.c: |
New files to implement ISO standard signals |
|
* src/PKGconf.mak (TESTS): |
* tests/PKGconf.mak (TESTS): |
Update to build new files above |
|
* include/stdlib.h: |
* src/clibincl/stdlibsupp.hxx: |
Comment and QA changes (including giving better names to some types) |
|
* include/libc.h: |
Add new configuration options for signals |
Add new CYGSEM_LIBC_STARTUP_MAIN_THREAD option |
Add a note to CYGNUM_LIBC_MAIN_STACK_SIZE option that it may be |
overriden by HAL |
Add new CYGFUN_LIBC_ATEXIT option and move ...ATEXIT_HANDLERS under |
it |
Add new CYGSEM_LIBC_EXIT_CALLS_FFLUSH option |
Require CYGSEM_LIBC_STARTUP_MAIN_THREAD for "Invoke default static |
constructors" option |
|
* src/stdlib/atexit.cxx: |
Support above CYGFUN_LIBC_ATEXIT and QA changes |
|
* src/stdlib/exit.cxx: |
Support for above new libc.h options, and some QA changes |
|
* src/support/cstartup.cxx: |
Add support for new CYGSEM_LIBC_STARTUP_MAIN_THREAD option |
|
* src/support/mainthread.cxx: |
Override main stack size if the HAL has a minimum |
|
* src/string/strncpy.cxx: |
Use improved algorithm for aligned copies - imported from newlib |
QA changes |
|
* src/stdlib/abort.cxx: |
Support raise(SIGABRT), and some QA |
|
* include/errno.h: |
Add const attribute |
|
* tests/stdlib/abs.c: |
QA improvements |
|
1999-02-04 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/support/cstartup.cxx: Only define cyg_libc_main_thread when |
the kernel is around. |
|
1999-02-01 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/time/clock.c: Joined the two test/NOP checks into |
one. |
Increased tolerance in attempt to fix PRs 18737,18787,18846. |
Fixed typo. |
|
1999-01-28 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strtok.cxx: |
* src/stdlib/rand.cxx: |
Include <pkgconf/kernel.h> if we use kernel header files |
|
1999-01-25 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sscanf.c (test): |
CYGSEM_LIBC_STDIO_PRINTF_FLOATING_POINT should be |
CYGSEM_LIBC_STDIO_SCANF_FLOATING_POINT |
Fix for PR 18786 |
|
* src/string/strtok.cxx: |
* src/stdio/common/stdiofiles.cxx: |
* src/errno/errno.cxx: |
* src/stdlib/rand.cxx: |
Give mutex protection objects a libc constructor priority |
|
* src/support/invokemain.cxx: |
Add prototype for cyg_hal_invoke_constructors() |
|
* src/support/mainthread.cxx: |
Give cyg_libc_dummy_constructor_obj a libc constructor priority, |
and make its class have a public constructor |
|
* src/stdio/common/stderr.cxx: |
* src/stdio/common/stdout.cxx: |
* src/stdio/common/stdin.cxx: |
Give cyg_libc_stdio_stdin/out/err static objects a libc constructor |
priority |
|
* src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer): |
* src/clibincl/stream.hxx (class Cyg_StdioStream): |
Remove private copy constructor. Needed to make prioritised |
static constructors work. Fix for PR 18898 |
|
1999-01-22 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/errno/errno.cxx: |
Include pkgconf/kernel.h otherwise it fails with per-thread errno |
enabled |
|
* include/pkgconf/libc.h: |
Enable per-thread errno by default since that is what POSIX would |
want |
|
* tests/time/clock.c (test): |
Placate compiler by initializing clock_first/second/third anyway, |
even though they won't be in practice. This is only a test program |
so adding an extra instruction doesn't matter. |
|
* src/i18n/locale.cxx (_setlocale): |
Placate compiler, since it is dumb, by nesting, not serializing, if's |
This is an idempotent change, but screws up the formatting :-(. |
|
* src/string/strpbrk.cxx (_strpbrk): |
Change while loop to do loop to placate compiler. It'll even save an |
instruction too (wow!) |
|
1999-01-22 John Dallaway <jld@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add closing curly brace to CYGPKG_LIBC_STRING_STRTOK definition |
|
1999-01-21 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/errno.h: |
Tidy up and add to header description |
Change cyg_get_errno_p() to cyg_libc_get_errno_p() |
Remove ifdef CYGPKG_LIBC |
|
* include/sys/file_if.h: |
Remove - move contents to stdio.h |
|
* include/stdio.h: |
Tidy up header description |
Move FILE typedef here from sys/file_if.h |
SEEK_SET, SEEK_CUR, SEEK_END defined to 0, 1, 2 respectively |
for backwards compatibility with old UNIX |
Change definitions of stdin/out/err to be addresses of FILE |
globals - even though they're actually Cyg_StdioStream it'll work |
|
* include/pkgconf/libc.h: |
Make CYGPRI_LIBC_WEAK et al macros depend on new ones in infra |
Reorganise trace options under the individual components they are |
associated with. |
Reorganise thread-safety options under the individual components |
they are associated with. |
Add new CYGSEM_LIBC_INVOKE_DEFAULT_STATIC_CONSTRUCTORS option |
Misc. reformatting |
Remove dependency on pkgconf/kernel.h - Configuration Tool will |
generate check macros anyway. |
Remove CYGPKG_LIBC_TRACE, CYGFUN_LIBC_strtok, CYGPKG_LIBC_RAND |
options |
Tidy up description header |
|
* src/clibincl/clibdata.hxx: |
* src/clibincl/clibdata.inl: |
* src/support/clibdata.cxx: |
Remove and instead rely on each component to initialise its own data |
|
* src/clibincl/stdiofiles.hxx, src/clibincl/stdiofiles.inl: |
New files to contain global file list and lock (if applicable). |
Implemented as class with member access functions |
|
* src/errno/errno.cxx: |
Reorganise with self-contained per-thread data, if applicable |
Remove ifdef CYGPKG_LIBC |
Tidy up description header |
Rename cyg_get_errno_p() to cyg_libc_get_errno_p() |
|
* src/stdio/common/fclose.cxx: |
* src/stdio/common/fflush.cxx: |
* src/stdio/common/fopen.cxx: |
* src/stdio/common/freopen.cxx: |
Remove ifdef CYGPKG_LIBC |
Use new global file access method from stdiofiles.hxx |
Tidy up description header |
Use new CYGBLD_ATTRIB_WEAK_ALIAS |
Access errno "normally" rather than clibdata way |
|
* src/stdio/common/stdin.cxx: |
* src/stdio/common/stdout.cxx |
* src/stdio/common/stderr.cxx: |
New files. Implement Cyg_StdioStream objects for each stream. In |
separate self-contained files so using one doesn't bring in the |
others |
|
* src/stdio/common/stdiofiles.cxx: |
New file. Implements global files array and lock |
|
* src/stdlib/_exit.cxx: |
Tidy up description header |
Remove ifdef CYGPKG_LIBC |
Use infra CYGBLD* macros |
|
* src/stdlib/malloc.cxx: |
Tidy up description header |
Remove ifdef CYGPKG_LIBC |
Add pkgconf/kernel.h now that pkgconf/libc.h doesn't have it |
Use infra CYGBLD* macros |
Make pool visible externally with weak attribute and new name |
cyg_libc_malloc_memorypool |
|
* src/stdlib/rand.cxx: |
* src/stdlib/strtok.cxx: |
Reorganise with self-contained per-thread data, if applicable |
Remove ifdef CYGPKG_LIBC |
Tidy up description header |
Use infra CYGBLD* macros |
|
* src/support/cstartup.cxx: |
Split into smaller files to make selective linking work better, |
fix i386 port problem and make GDB happy |
|
* src/support/environ.cxx: |
* src/support/invokemain.cxx: |
* src/support/main.cxx: |
* src/support/mainthread.cxx: |
New files from bits of the old cstartup.cxx |
Add support for CYGSEM_HAL_STOP_CONSTRUCTORS_ON_FLAG |
|
* src/PKGconf.mak: |
Update to reflect file additions/deletion |
|
* tests/stdlib/rand1.c: |
* tests/stdlib/rand2.c: |
* tests/stdlib/rand3.c: |
* tests/stdlib/srand.c: |
Make conform to coding standards |
Remove ifdef CYGPKG_LIBC_RAND |
Tidy up description header |
|
* tests/string/strtok.c: |
Make conform to coding standards |
Remove ifdef CYGFUN_LIBC_strtok |
Tidy up description header |
|
1999-01-15 Mark Galassi <rosalia@cygnus.com> |
|
* tests/stdlib/getenv.c (main): added tests for the case in which |
the user does not supply environ and in which the user supplies a |
NULL environ. |
|
1999-01-15 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/support/cstartup.cxx: Added workaround for weak aliasing |
problem in i386 gcc. |
|
|
1999-01-15 Gary Thomas <gthomas@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGNUM_LIBC_MAIN_STACK_SIZE): |
(CYGNUM_LIBC_MALLOC_MEMPOOL_SIZE): Change defaults to be |
more reasonable on small systems. |
|
1999-01-04 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
Minor bug with environ not being initialised correctly by |
default |
|
1998-12-24 Bart Veer <bartv@cygnus.co.uk> |
|
* src/clibincl/stream.inl (Cyg_StdioStream): |
check_this() member functions should now be const |
|
1998-12-22 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/memchr.cxx (_memchr): |
treat search value parameter to memchr as an unsigned byte, |
not a signed int - copied fix from newlib PR 18471 |
|
1998-12-21 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/realloc.c: |
* tests/stdlib/malloc3.c: |
* tests/stdlib/malloc2.c: |
Warning cleanup |
|
1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/malloc2.c, tests/stdlib/malloc3.c, |
tests/stdlib/realloc.c: |
Only run these tests when we have a coalescing memory allocator |
|
1998-12-14 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stream.cxx: |
Only check buffer init success if buffering |
|
* src/stdio/common/streambuf.cxx (set_buffer): |
Check for diff of requested size against buffer_size, not |
get_buffer_size(), since this may return -1, which won't be |
equal to size, and will cause malloc to be called |
|
1998-12-01 Jesper Skov <jskov@cygnus.co.uk> |
|
* tests/stdlib/getenv.c (main): Don't declare variables when they |
are not used. |
|
Thu Nov 26 17:59:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/string/strncpy1.c: |
Fix off-by-one error since it called my_strcmp() and not |
my_strncmp(), which meant in included the trailing NULL when it |
shouldn't have. |
|
1998-11-26 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/stdlib/qsort.cxx (_qsort): |
* src/stdlib/rand.cxx (_srand): |
Changed CYG_REPORT_FUNCNAMETYPE to CYG_REPORT_FUNCNAME in void |
functions. |
|
Mon Oct 26 18:49:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/cstartup.cxx (cyg_libc_dummy_main): |
Silence compiler warning with cast of char * to CYG_ADDRWORD |
|
Wed Oct 28 17:31:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/time/clock.cxx (_clock): |
Reorder scaling expression as it was both incorrect and risked |
overflow. |
Fix for PR 18076 |
|
Mon Oct 19 14:40:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdio.h (EOF): |
Change from -64 to (-1), to allow broken code to work :-/ |
Also change other negative defines to be within parentheses |
|
1998-10-19 Mark Galassi <rosalia@cygnus.com> |
|
* include/pkgconf/libc.h: updated the doc URL |
|
Thu Oct 15 21:33:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx: |
Only include kernel thread headers when we're in thread-safe mode |
|
* src/time/clock.cxx: |
Only include kernel clock headers if there's a kernel with the |
right functionality available |
|
* tests/time/clock.c: |
Remove unnecessary inclusion of <pkgconf/kernel.h> |
|
Above changes are required for PR 17229 |
|
Wed Oct 14 16:38:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl: |
Conditionalise inclusion of clibincl/stdiosupp.hxx and |
clibincl/stream.hxx. Tidying up PR 17502 |
|
Wed Oct 14 14:08:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Rename CYGPKG_LIBC_STRING_OPTIMISATIONS to |
CYGPKG_LIBC_STRING_OPTIMIZATIONS to make it truely merkin. |
|
Tue Oct 13 19:34:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGDAT_LIBC_ARGUMENTS): |
Add a default argv[0] of "" as many programs assume argc>0 |
The standard allows argv[0] to be "" if the program name |
is not available |
|
1998-09-26 Bart Veer <bartv@cygnus.co.uk> |
|
* src/clibincl/stdiosupp.hxx: |
PR 17502: this header file now does nothing if the stdio option |
is disabled completely. This is the same behaviour is |
clibincl/stream.hxx, although arguably the #ifdef protection |
should happen wherever the header file is #include'd rather than |
in the header file itself. |
|
* src/clibincl/clibdata.hxx: |
PR 17502: this header file still #include's internal stdio-related |
header files and references the FILE structure, even if stdio is |
disabled. There were some #ifdef's for CYGPKG_LIBC_STDIO already. |
One more has been added for _fopen() and _fclose(). |
|
1998-09-25 Bart Veer <bartv@cygnus.co.uk> |
|
* src/clibincl/streambuf.inl (Cyg_StdioStreamBuffer): |
PR 17487: Reorder the calls to initialize member fields, to |
eliminate a compiler warning. |
|
Fri Sep 25 19:04:29 1998 Jonathan Larmour <jlarmour@peshwari.cygnus.co.uk> |
|
* src/errno/errno.cxx, src/stdlib/bsearch.cxx, |
src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/string/strtok.cxx, |
src/time/clock.cxx: |
Only define tracing variable and tracing level macro when |
the relevant tracing level config options are set. Otherwise |
keep the tracing level fixed at 0 |
Fix for PR 17476 |
|
* include/pkgconf/libc.h: |
Define trace levels only if parent CYGPKG_LIBC_TRACE is defined |
for consistency with Configuration Tool |
|
|
Fri Sep 25 17:24:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stdioinlines.cxx: |
Make definition of vscanf() dependent on CYGFUN_LIBC_STDIO_ungetc |
otherwise _vfscanf() won't be compiled. This therefore would |
cause a link fail iff selective linking is not enabled. |
Fix for PR 17455 |
|
Fri Sep 25 17:23:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/rand.cxx: |
Make compilation dependent on CYGPKG_LIBC_RAND |
Fix for PR 17473 |
|
* tests/stdlib/srand.c: |
Make definition of dummy test pass conditional on CYGPKG_LIBC_RAND |
not being defined, as well as CYGPKG_LIBC |
Caused compilation failure when testing PR 17473 fix |
|
Mon Sep 21 17:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sscanf.c: |
Make sscanf test conditional on CYGFUN_LIBC_STDIO_ungetc since |
_vfscanf() only gets compiled if this is defined |
Fix for PR 17346 |
|
1998-09-20 Mark Galassi <rosalia@cygnus.com> |
|
* include/pkgconf/libc.h: updated CDL doc strings. |
|
Fri Sep 18 22:18:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.inl (get_errno_p): |
Rather than this function only being available in thread-safe mode, |
instead make what it returns be either the per-thread errno, or |
global errno depending on the configuration. |
Include <errno.h> (conditionally) to support this change |
|
Wed Sep 16 11:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Remove "fix me" comment which I forgot to remove before |
|
Tue Sep 15 19:27:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Updated descriptions and a few other minor things after review. |
Notably though, the NDEBUG config option has been removed |
|
1998-09-15 Bart Veer <bartv@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
PR 17201: removed dependency on CYGPKG_KERNEL in the option |
CYGNUM_LIBC_MAIN_STACK_SIZE, since the actual dependencies cannot |
be expressed sensibly in the current system. |
|
1998-09-11 Bart Veer <bartv@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Sorting out dependencies for error package. |
|
1998-09-10 Mark Galassi <rosalia@cygnus.com> |
|
* include/pkgconf/libc.h: started adding doc fields to the |
cdl_package data, as a pilot for now. |
|
Wed Sep 9 17:41:23 1998 Hugo Tyson <hmt@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add option CYGIMP_LIBC_MALLOC_CXX_DELETE_CALLS_FREE to explicitly |
control whether the empty delete functions (currently) in |
kernel/.../common/delete.cxx are enabled; controls code bloat, see |
the comments in delete.cxx. |
|
Fri Sep 4 16:43:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/stdiooutput.c: |
Add a default CYG_TEST_PASS() to make sure the test infra doesn't |
complain. |
Also remove the unused string functionsa |
|
Fri Sep 4 15:43:48 1998 Hugo Tyson <hmt@cygnus.co.uk> |
|
* src/stdlib/exit.cxx (__libc_exit): |
* src/stdlib/_exit.cxx (__libc__exit): |
* src/stdlib/malloc.cxx (_free): |
* src/stdlib/abort.cxx (abort): |
* src/support/cstartup.cxx (invoke_main): |
Tracing system asserted cos it was being called incorrectly; these |
are void functions so you shouldn't give a type to the function |
reporting call. |
|
Fri Sep 4 15:03:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Fix CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE description to refer to |
the table.cxx file, not table.h |
|
Fri Sep 4 14:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add description for CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE since |
Proven won't be making any changes to the device driver |
implementation after all. |
Fix for PR 17148 |
|
* src/clibincl/stream.inl (set_position): |
Remove "fix me" line. It is obvious that this will have to change |
with a filesystem interface |
Fix for PR 17147 |
|
* src/stdio/common/freopen.cxx: |
Remove "fix me" - I know about this issue |
Fix for PR 17145 |
|
* src/stdio/common/stream.cxx (read): |
Remove "fix me" and change to use memcpy |
Fix for PR 17144 |
|
Fri Sep 4 14:36:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/stdiooutput.c: |
Actually add it this time! |
|
Fri Sep 4 13:48:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/stdiooutput.c: |
Add new tests for misc stdio output functions |
|
* tests/PKGconf.mak: |
Build stdiooutput.c test |
|
Fri Sep 4 12:52:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.inl (write_byte): |
Remove bogus assert |
|
* tests/stdlib/getenv.c (main): |
Check whether str is NULL before doing a strcmp() |
|
* tests/stdio/sprintf2.c (main): |
Reformat to 76 columns |
|
Fri Sep 4 02:10:54 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.hxx, src/stdio/common/stream.cxx: |
Add new peek_byte method to Cyg_StdioStream |
|
* src/stdio/input/vfscanf.cxx (_vfscanf): |
Fix up buffer access to work with new peek_byte method above |
Fix for PR 16954 |
|
Thu Sep 3 19:40:11 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/rand1.c, tests/stdlib/rand2.c, |
tests/stdlib/rand3.c: |
Add extra check for CYGPKG_LIBC_RAND to decide whether the test |
is applicable or not |
|
* tests/stdlib/rand2.c (test): |
Use CYGNUM_LIBC_RAND_SEED for default seed, not 1 |
|
* tests/string/strtok.c: |
Add extra check for CYGFUN_LIBC_strtok to decide whether the |
test is applicable or not |
|
Wed Sep 2 19:11:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/fread.cxx, src/stdio/output/fwrite.cxx: |
Add fread() and fwrite() functions |
|
* src/PKGconf.mak: |
Build fread.cxx and fwrite.cxx from above |
|
* src/stdio/common/stream.cxx: |
Reformat to 76 columns |
In write(), move initialisation of *bytes_written to start |
In read(), move initialisation of *bytes_read to start |
|
* include/stdio.h: |
Reformat to 76 columns |
|
Replace all references to the ANSI |
standard to instead by the ISO C standard |
|
Add commented argument names for "documentation" |
|
Add fread() and fwrite() prototypes |
|
* src/clibincl/stdiosupp.hxx: |
Copy the above changes from stdio.h, and add _fread() and _fwrite() |
prototypes |
|
* src/stdio/output/fputs.cxx, src/stdio/input/fgets.cxx: |
Reformat to 76 columns |
|
Wed Sep 2 15:41:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/vfscanf.cxx: |
Reformat to 76 columns |
|
Wed Sep 2 14:46:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/fflush.cxx: |
Use trylock_me() instead of lock_me(), and loop to prevent |
deadlocks |
|
* src/clibincl/stream.hxx, src/clibincl/stream.inl: |
Add trylock_me() method |
|
* src/clibincl/stream.hxx, src/clibincl/stream.inl, |
src/stdio/common/fflush.cxx: |
Reformat to 76 columns |
|
Wed Sep 2 12:24:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Change 0x7fff to 0x7fffffff. Oops! |
give main stack size option a legal_values field |
Undefine tracing by default |
Add some more description in the header |
|
Tue Sep 1 20:02:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/i18n/setlocale.c (cyg_package_start): |
Fix typo - extra "x" for no reason at all! :-) |
|
Tue Sep 1 19:44:58 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/i18n/locale.cxx: |
Fix bug in find_locale_data() that miscalculated size of |
all_locales |
|
Make find_locale_data() match the locale "" and add some |
other things in _setlocale() to ensure that "C" gets returned |
when the default locale "" is passed. |
|
Only check the locale pointer when it is non-NULL |
|
* tests/i18n/setlocale.c: |
New tests for setlocale() |
|
* tests/PKGconf.mak: |
Update to build setlocale.c test |
|
* src/support/cstartup.cxx: |
Don't actually call system default main() "main" otherwise GDB |
gets confused and thinks its the entry point. Instead make a weak |
alias and call the real function something different. |
|
Tue Sep 1 18:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/i18n/locale.cxx (_setlocale): |
Fix tracing macro name and remove "str maybe used before |
initialised" warning |
|
* tests/stdlib/qsort.c: |
Correct file description header |
|
Tue Sep 1 17:04:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/locale.h, src/clibincl/i18nsupp.hxx, src/i18n/locale.cxx: |
New files to add support for locales as defined by the ISO C |
standard. i.e. setlocale() and localeconv() functions and some |
other bits |
|
* include/pkgconf/libc.h: |
Add CYGNUM_LIBC_MAX_LOCALE_NAME_SIZE config option for locale |
support |
|
* src/PKGconf.mak: |
build locale.cxx |
|
* include/errno.h, src/clibincl/ctypesupp.hxx: |
Tidy up to 76 columns |
|
Tue Sep 1 00:24:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Move environment-related options from stdlib into new |
CYGPKG_LIBC_STARTUP component. Also add options for main()'s |
arguments (CYGPKG_LIBC_ARGUMENTS), main()'s default stack size |
(CYGNUM_LIBC_MAIN_STACK_SIZE), number of atexit handlers |
(CYGNUM_LIBC_ATEXIT_HANDLERS), and whether _exit() stops the |
system (CYGSEM_LIBC_EXIT_STOPS_SYSTEM). |
|
* src/clibincl/stdlibsupp.hxx: |
Fix a few comment bugs, and add new |
cyg_libc_invoke_atexit_handlers() function prototype |
|
* src/stdlib/_exit.cxx, src/stdlib/atexit.cxx, src/stdlib/exit.cxx: |
Implement exit(), atexit() and _exit() correctly now. Also |
includes cyg_libc_invoke_atexit_handlers() in atexit.cxx. Now |
we get the correct behaviour of atexit(), and exit() invokes the |
atexit handlers and fflushs all the stdio streams. Add plenty of |
tracing of asserts too. |
|
* src/support/cstartup.cxx: |
Make main_thread object an exported global. Allow user-settable |
arguments. Add MUCH more tracing and asserts. Improve comments. |
Tidy up to 76 columns |
|
* tests/stdlib/atexit.c: |
Add simple test for atexit() and it calling registered functions |
|
* tests/PKGconf.mak: |
Build atexit.c test |
|
Mon Aug 31 18:54:48 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/getenv.cxx, tests/stdlib/getenv.c: |
Add support for getenv(), and some tests to ensure it works |
|
* src/PKGconf.mak, tests/PKGconf.mak: |
Update to include getenv.cxx and getenv.c test |
|
* src/clibincl/clibdata.hxx: |
remove prototype for environ - we expect files needing it to |
define it themselves |
|
* src/support/clibdata.cxx: |
Tidy up to 76 columns and add definition of char **environ, but |
with a configurable initialiser (see libc.h below) |
|
* tests/stdlib/abs.c (main): |
Tidy up to 76 columns |
|
* src/stdlib/malloc.cxx: |
Tidy up to 76 columns and remove warning for undefined _memcpy() |
by changing to memcpy(), and casting away signedness |
|
* include/pkgconf/libc.h: |
Add CYGPKG_LIBC_ENVIRONMENT and CYGDAT_LIBC_DEFAULT_ENVIRONMENT |
configuration options |
|
* include/pkgconf/libc.h, src/clibincl/clibdata.hxx: |
Tidy up to 76 columns |
|
* include/stdlib.h: |
Add getenv() prototype and tidy up to 76 columns |
|
* src/clibincl/stdlibsupp.hxx: |
Add _getenv() prototype |
|
Mon Aug 31 13:37:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/malloc.cxx: |
Add realloc() |
|
* tests/stdlib/realloc.c: |
Add this file to test new realloc() functionality |
|
* tests/PKGconf.mak: |
Build realloc test |
|
* tests/stdlib/malloc3.c (main), tests/stdlib/malloc2.c (main), |
tests/stdlib/malloc1.c (main): |
Conditionalise local vars to prevent warnings |
|
* tests/stdlib/malloc3.c (fill_with_data): |
Move '{' into "verb" line |
|
* include/pkgconf/libc.h: |
Require infra tracing support to allow tracing |
|
* include/stdlib.h: |
Add realloc() |
|
* src/clibincl/stdlibsupp.hxx: |
Update the commented argument names from stdlib.h, including realloc() |
|
1998-08-28 Bart Veer <bartv@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
* src/clibincl/clibdata.hxx, src/time/clock.cxx: |
|
Updated for new kernel configuration option symbol names |
|
Fri Aug 28 19:18:25 1998 Hugo Tyson <hmt@cygnus.co.uk> |
|
Changed the entry below to sat "tx39" instead of "mn10300". |
It's been a long week. |
|
Fri Aug 28 18:59:20 1998 Hugo Tyson <hmt@cygnus.co.uk> |
|
* src/support/cstartup.cxx: Add a weakly named main to allow the |
default configuration to link on the tx39 which has no |
scalextric linking yet. The static Cyg_Thread main_thread object |
below continues to exist, though unreferenced, so all its |
descendants must exist too. |
|
Fri Aug 28 08:54:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdlib.h: |
Add commented argument names Add exit(), and atexit(). And move |
these along with abort() and _exit() to a new section. |
|
* src/stdlib/atexit.cxx, src/stdlib/exit.cxx: |
Add trivial versions of atexit() and exit() |
|
* include/pkgconf/libc.h: |
Add CYGNUM_LIBC_MAIN_STACK_SIZE config option |
|
* include/sys/cstartup.h, src/support/cstartup.cxx, src/PKGconf.mak: |
New files to provide a new function cyg_iso_c_support(), which |
invokes main "correctly". |
|
* tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c, |
tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c, |
tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c, |
tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c, |
tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, |
tests/stdlib/malloc3.c, tests/stdlib/qsort.c, tests/stdlib/rand1.c, |
tests/stdlib/rand2.c, tests/stdlib/rand3.c, tests/stdlib/srand.c, |
tests/stdlib/strtol.c, tests/stdlib/strtoul.c, |
tests/string/memchr.c, tests/string/memcmp1.c, |
tests/string/memcmp2.c, tests/string/memcpy1.c, |
tests/string/memcpy2.c, tests/string/memmove1.c, |
tests/string/memmove2.c, tests/string/memset.c, |
tests/string/strcat1.c, tests/string/strcat2.c, |
tests/string/strchr.c, tests/string/strcmp1.c, |
tests/string/strcmp2.c, tests/string/strcoll1.c, |
tests/string/strcoll2.c, tests/string/strcpy1.c, |
tests/string/strcpy2.c, tests/string/strcspn.c, |
tests/string/strlen.c, tests/string/strncat1.c, |
tests/string/strncat2.c, tests/string/strncpy1.c, |
tests/string/strncpy2.c, tests/string/strpbrk.c, |
tests/string/strrchr.c, tests/string/strspn.c, |
tests/string/strstr.c, tests/string/strtok.c, |
tests/string/strxfrm1.c, tests/string/strxfrm2.c, |
tests/time/clock.c: |
|
Modify all tests to use new startup mechanism, and cyg_iso_c_start() |
|
Fri Aug 28 00:29:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stream.cxx: |
Add #ifdef CYGSEM_LIBC_STDIO_WANT_BUFFERED_IO around all accesses to |
flags.last_buffer_op_was_read. Fix for PR 16997 |
|
Thu Aug 27 01:12:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/sys/file_if.h: |
Fix comments and remove cyg_get_file_star() |
|
Wed Aug 26 20:24:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Remove #define CYGPKG_LIBC is that is meant to live in |
<pkgconf/system.h> after all |
|
Wed Aug 26 19:39:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
More fixes to CDL stuff to make it work better, and look better on |
the screen |
|
Tue Aug 25 20:21:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Make some fixes after running the ConfigTool |
|
Tue Aug 25 16:46:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h (CYGNUM_LIBC_STDIO_BUFSIZE): |
Fix typo of CYGNUM_LIBC_STDIO_BUFSIZE |
|
Tue Aug 25 15:10:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Tidy up CDL stuff a bit more, prior to checking it actually works. |
|
Tue Aug 25 11:38:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/malloc2.c (main): |
Prevent calls to CYG_TEST_STILL_ALIVE for now |
|
Tue Aug 25 05:39:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Change cosmetic paragraph alignment. |
|
Tue Aug 25 03:11:34 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
Make stderr initialise with buffer size 0. |
For PR 16955 |
|
Mon Aug 24 17:38:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
First pass at CDL-ifying the C library configuration. Currently |
deliberately disabled as there a few outstanding issues. |
|
Mon Aug 24 16:14:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/output/vfnprintf.cxx (_vfnprintf): |
clear up warning for unused argument |
|
* tests/stdlib/malloc2.c (NUM_ITERATIONS): |
Lower to 100 from 50000 so it won't take too long under the simulator |
|
Thu Aug 20 17:48:43 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/malloc.cxx: |
Remove now unnecessary inclusion of kernel/ktypes.h |
|
Wed Aug 19 19:19:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, |
tests/stdio/sscanf.c, tests/stdlib/atoi.c, tests/stdlib/atol.c, |
tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c, |
tests/stdlib/srand.c, tests/stdlib/strtol.c, |
tests/stdlib/strtoul.c, tests/string/strtok.c, |
tests/time/clock.c: |
Add parameters to "main()" to silence warnings |
|
Wed Aug 19 18:52:59 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stream.cxx (refill_read_buffer): |
Put conditional error check into same #ifdef and if as what was being |
checked in the first place! |
|
Wed Aug 19 18:49:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.inl: |
Reorder Cyg_StdioStream::check_this() to be first to silence |
warnings |
|
Tue Aug 18 16:10:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* ecc/language/c/libc/current/src/clibincl/clibdata.hxx, |
ecc/language/c/libc/current/src/errno/errno.cxx, |
ecc/language/c/libc/current/src/stdio/common/fopen.cxx, |
ecc/language/c/libc/current/src/stdlib/rand.cxx, |
ecc/language/c/libc/current/src/string/strtok.cxx: |
Rename CYGIMP_LIBC_INTERNAL_DATA_PREAMBLE, |
CYGIMP_LIBC_INTERNAL_DATA_ALLOC_CHECK_PREAMBLE, |
CYGVAR_LIBC_INTERNAL_DATA, and |
CYGIMP_LIBC_INTERNAL_DATA_CHECK to all have CYGPRI_ prefix instead |
as recommended by the config name rules |
|
|
Tue Aug 18 14:31:19 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/setvbuf.cxx (_setvbuf): |
Rename variable names in assert line, otherwise doesn't build |
with asserts on! |
|
Sun Aug 16 18:15:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/vfscanf.cxx (_vfscanf): |
Fix some bugs, although there are some left to fix still. Unrelated |
to the rest of the checkins, so I will check the partial fix in now. |
|
* src/clibincl/stream.hxx, src/clibincl/stream.inl, |
src/stdio/common/stream.cxx: |
Add parameters to constructor to allow more things to be done at |
construction time. |
|
Now we have "new", remove separate "construct" method |
|
Add more documentation on constructor |
|
As requested by code review, where possible, move boolean flags |
into separate packed bitfield structure for space efficiency |
|
Make readbuf_char be usable all the time rather than when configured |
not to be buffering, as it is also needed for non-buffered mode i.e. |
_IONBF |
|
* src/stdio/common/fopen.cxx: |
Change to use new method of construction from above, using new |
|
Use thread-specific data, rather than global. And so change errnos |
to access errno entry specifically |
|
Make process_mode() check for append mode too |
|
Reformat for coding standards to have { in same line as "verb" |
|
* src/stdio/common/setvbuf.cxx: |
|
Change to cope with different way of dealing with buffering policy |
flags etc. in Cyg_StdioStream |
|
* src/stdio/common/vsnprintf.cxx, src/stdio/common/vsscanf.cxx, |
src/support/clibdata.cxx: |
Change construction of streams to use new parameters added above, |
and change to use _IONBF mode for string stdio functions, |
otherwise its a waste of memory. And use _IONBF for stderr as the |
ISO standard tells us to! |
|
Reformat for coding standards to have { in same line as "verb" |
|
* src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl: |
Change constructor so that it can be set with default size and |
dynamic buffer (if applicable) |
|
Fix minor bug in destructor - should only call free when allocated |
dynamically |
|
Change get_buffer_size to return -1 if the buffer was not allowed |
to be set up |
|
* src/stdio/common/streambuf.cxx: |
Remove unnecessary stdio.h include and add extra comment to whether |
to free bit in set_buffer() |
|
* src/stdio/common/freopen.cxx: |
Change @@@ to standard fix me string |
|
* src/stdio/output/fputc.cxx: |
Remove unnecessary "written" variable |
|
Thu Aug 13 15:37:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/_exit.cxx: |
Included use of "fix me" line to ensure this is discussed before |
release |
|
* include/stdlib.h, src/stdlib/abort.cxx, src/PKGconf.mak: |
Add abort.cxx to implement abort(), albeit naively |
|
Thu Jul 30 18:03:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/vsscanf.cxx (_vsscanf), |
src/stdio/common/vsnprintf.cxx (_vsnprintf): |
Fix initialiser of pseudo string device table that didn't get updated |
when the table changed (Bad proven, no biscuit). |
|
* src/clibincl/stream.inl (~Cyg_StdioStream): |
Move invalidation of magic_validity_word to after unlock_me(), |
otherwise it always fails! |
|
Tue Jul 28 21:29:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx: |
Shorten over-long lines |
|
Tue Jul 28 20:28:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.hxx (class Cyg_StdioStream), |
src/clibincl/stream.inl, src/stdio/common/stream.cxx: |
Clarify some comments and get the CYGDBG_DEFINE_CHECK_THIS and |
CYG_ASSERTCLASS stuff going |
|
* src/clibincl/stream.inl: |
Put '{'s on same line as "action" as per coding standards |
Shorten over-long lines |
|
Tue Jul 28 15:31:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/streambuf.inl, src/stdio/common/streambuf.cxx: |
Move set_buffer() from streambuf.inl to new file streambuf.cxx |
|
* src/PKGconf.mak (COMPILE): |
Build new file streambuf.cxx |
|
* src/clibincl/streambuf.hxx (class Cyg_StdioStreamBuffer): |
Add METHODS comment |
|
* src/stdio/common/stream.cxx: |
Put '{'s on same line as "action" as per coding standards |
Shorten over-long lines |
|
Tue Jul 28 00:26:36 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdlib.inl, src/stdio/input/vfscanf.cxx, |
src/stdio/output/vfnprintf.cxx, src/stdlib/div.cxx, |
src/stdlib/ldiv.cxx, src/stdlib/qsort.cxx, src/stdlib/strtol.cxx, |
src/stdlib/strtoul.cxx, src/string/strtok.cxx: |
|
Include proper Berkeley license inline in the file, rather than |
referring to an external file |
|
* doc/COPYING.UCB: |
Remove, now that it isn't referred to any more |
|
Mon Jul 27 23:34:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/ctype.h, include/ctype.inl, include/errno.h, |
include/stdio.h, include/stdio.inl, include/stdlib.h, |
include/stdlib.inl, include/string.h, include/string.inl, |
include/time.h, include/sys/file_if.h, src/PKGconf.mak, |
src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl, |
src/clibincl/ctypesupp.hxx, src/clibincl/stdiosupp.hxx, |
src/clibincl/stream.hxx, src/clibincl/streambuf.hxx, |
src/clibincl/streambuf.inl, src/clibincl/stringsupp.hxx, |
src/clibincl/timesupp.hxx, src/ctype/isalnum.cxx, |
src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx, |
src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, |
src/ctype/islower.cxx, src/ctype/isprint.cxx, |
src/ctype/ispunct.cxx, src/ctype/isspace.cxx, |
src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, |
src/ctype/tolower.cxx, src/ctype/toupper.cxx, |
src/errno/errno.cxx, src/stdio/common/snprintf.cxx, |
src/stdio/common/sprintf.cxx, src/stdio/common/sscanf.cxx, |
src/stdio/common/stdioinlines.cxx, src/stdio/common/stream.cxx, |
src/stdio/common/ungetc.cxx, src/stdio/common/vsnprintf.cxx, |
src/stdio/common/vsscanf.cxx, src/stdio/input/fgetc.cxx, |
src/stdio/input/fgets.cxx, src/stdio/input/fscanf.cxx, |
src/stdio/input/gets.cxx, src/stdio/input/scanf.cxx, |
src/stdio/output/fnprintf.cxx, src/stdio/output/fprintf.cxx, |
src/stdio/output/fputc.cxx, src/stdio/output/fputs.cxx, |
src/stdio/output/printf.cxx, src/stdlib/_exit.cxx, |
src/stdlib/abs.cxx, src/stdlib/atof.cxx, src/stdlib/atoi.cxx, |
src/stdlib/atol.cxx, src/stdlib/div.cxx, src/stdlib/labs.cxx, |
src/stdlib/ldiv.cxx, src/stdlib/rand.cxx, src/stdlib/strtod.cxx, |
src/string/memchr.cxx, src/string/memcmp.cxx, |
src/string/memmove.cxx, src/string/strcat.cxx, |
src/string/strchr.cxx, src/string/strcmp.cxx, |
src/string/strcoll.cxx, src/string/strcpy.cxx, |
src/string/strcspn.cxx, src/string/strlen.cxx, |
src/string/strncat.cxx, src/string/strncmp.cxx, |
src/string/strncpy.cxx, src/string/strpbrk.cxx, |
src/string/strrchr.cxx, src/string/strspn.cxx, |
src/string/strstr.cxx, src/string/strsuppt.cxx, |
src/string/strtok.cxx, src/string/strxfrm.cxx, |
src/support/clibdata.cxx, src/time/clock.cxx: |
Untabify |
|
Mon Jul 27 23:14:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/errno/errno.cxx, src/stdio/input/vfscanf.cxx, |
src/stdio/output/vfnprintf.cxx, src/stdlib/strtol.cxx, |
src/stdlib/strtoul.cxx, src/stdlib/malloc.cxx, src/stdlib/qsort.cxx, |
tests/ctype/ctype.c, tests/stdlib/rand3.c, tests/stdlib/malloc3.c: |
Remove all mentions of "register" in variable declarations. Also |
untabify where needed |
|
* src/stdlib/bsearch.cxx: |
Untabify this too |
|
|
Mon Jul 27 22:18:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/output/fputc.cxx (_fputc): |
Replace call to stream write() with call to write_byte() |
|
* src/clibincl/stream.inl (write_byte): |
Add asserts for stream write() returning odd values for how much has |
been written |
|
(bytes_available_to_read): |
Remove "register" def for variable declaration |
|
Mon Jul 27 22:06:22 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stdiosupp.cxx: |
Remove #if 0'd cyg_get_file_star() and unnecessary pseudo string |
device definition |
|
Mon Jul 27 21:57:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h, src/support/clibdata.cxx: |
Change CYGXXX_LIBC_STDIO_DEFAULT_CONSOLE to |
CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE |
|
Mon Jul 27 21:49:23 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl, |
src/clibincl/ctypesupp.hxx, src/clibincl/setjmpsupp.hxx, |
src/clibincl/stdiosupp.hxx, src/clibincl/stdlibsupp.hxx, |
src/clibincl/stream.hxx, src/clibincl/stream.inl, |
src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl, |
src/clibincl/stringsupp.hxx, src/clibincl/timesupp.hxx: |
|
Change CYGONCE_LIBC_*_{HXX,INL} to CYGONCE_LIBC_CLIBINCL_*_{HXX,INL} |
|
Mon Jul 27 21:34:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Change #define XXXXX 1 to #define XXXXX where applicable as per code |
review |
|
Also remove obsolete CYGIMP_LIBC_THREAD_START_SUSPENDS_SELF |
|
Mon Jul 27 19:42:27 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/fopen.cxx (_fopen): |
Use #ifdef, not #if for config options |
|
Mon Jul 27 15:01:51 BST 1998 Chris Provenzano <proven@cygnus.com> |
|
* src/stdio/common/stream.cxx, src/stdio/common/vsnprintf.cxx |
* src/stdio/common/vsscanf.cxx: |
Fixes to compile with the new Cyg_IORB field names. |
|
Thu Jul 9 03:40:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/atoi.c, tests/stdlib/atol.c, |
tests/stdlib/strtol.c, tests/stdlib/strtoul.c: |
Adjust starting of tests to possibly start scheduler since |
strtol/stroul rely on errno, which may be a per-thread variable |
|
Thu Jul 9 03:06:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.hxx, src/clibincl/stream.inl, |
src/stdio/common/stream.cxx, src/stdio/common/setvbuf.cxx: |
Consolidate read and write buffers into single buffer, as it should |
have been all along |
|
* src/clibincl/streambuf.hxx, src/clibincl/streambuf.inl: |
Add drain_buffer() method to speed up the case when we want the |
buffer completely emptied |
|
Tue Jul 7 21:26:33 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c: |
Add a couple of new tests that check that very long strings work too |
|
Wed Jul 1 19:52:39 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/stream.hxx, src/clibincl/streambuf.hxx: |
Do not permit copy constructors |
|
* src/clibincl/stream.inl, src/stdio/common/fclose.cxx: |
Make sure we use #ifdef and not #if |
|
* src/clibincl/streambuf.inl: |
Use member initialisation list rather than explicit initialisation to |
reduce warnings |
|
Wed Jul 1 19:17:55 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h and all files using config options: |
Rename configuration defines to make them more standard |
|
Thu Jun 25 20:09:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strcat.cxx: |
Add parentheses on check to silence warning |
(Verified by proven) |
|
Thu Jun 25 19:30:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/malloc.cxx: |
Make sure that the malloc pool is initialised before other things |
can use it. This is done with the hot new constructor ordering |
feature. |
|
Thu Jun 25 18:27:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/vfscanf.cxx: |
Remove bogus ifdef if floating point is _not_ wanted |
|
Thu Jun 25 17:31:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strtok.cxx: |
Fix argument checking to allow first argument of NULL |
|
Thu Jun 25 04:18:50 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.inl (get_strtok_last_p): |
Remove bogus assertion |
|
* src/stdlib/malloc.cxx: |
Got sense of alignment check assertion the wrong way round, so negate |
it |
|
Thu Jun 25 03:56:35 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strxfrm.cxx: |
Fix argument checking assertions with legitimate nulls here too |
|
Thu Jun 25 03:46:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/strtoul.cxx, src/stdlib/strtol.cxx: |
Fix argument checking assertions to cope with legitimate nulls |
|
Wed Jun 24 09:01:45 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c: |
Remove extraneous info messages |
|
Wed Jun 24 05:59:17 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c, |
tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c, |
tests/stdlib/srand.c: |
|
Change large automatic arrays to static arrays to prevent overuse |
of a potentially small stack |
|
Wed Jun 24 05:45:28 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c, tests/stdio/sprintf2.c, tests/stdio/sscanf.c, |
tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c, |
tests/stdlib/srand.c, tests/string/strtok.c, tests/time/clock.c: |
|
Increase thread stack size from 4K to 32K as in some cases it was |
too small. |
|
|
Tue Jun 23 20:12:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sscanf.c: |
Add extra tests, including floating point conversion testing |
|
Tue Jun 23 17:01:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strtok.cxx: |
Make sure this is only compiled if CYGFUN_LIBC_strtok is defined |
|
Tue Jun 23 06:10:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
add some comments - that's all |
|
* src/stdio/common/stream.cxx: |
fix case in refill_read_buffer() for what to do when there's nothing |
left. Now return EAGAIN |
|
* src/stdio/common/vsscanf.cxx, src/stdio/input/vfscanf.cxx: |
Get sscanf working properly and passing tests. Also make sure it |
ignores FP when its not configured |
|
* src/stdlib/atof.cxx: |
Only compile at all if strtod() is present |
|
|
Mon Jun 22 19:13:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl: |
Conditionalise strtok_last and rand_seed better |
|
Mon Jun 22 14:14:12 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/malloc3.c: |
Add test for checking that mallocing and freeing repeatedly works |
|
* tests/PKGconf.mak: |
Update to reflect addition of the above |
|
Mon Jun 22 13:09:33 BST 1998 Chris Provenzano <proven@cygnus.com> |
|
* src/stdio/common/fopen.cxx |
* src/stdio/common/stream.cxx |
* src/stdio/common/vsnprintf.cxx |
* src/stdio/common/vsscanf.cxx |
Include cyg/devs/common/iorb.h instead of iorb.hxx |
|
* src/stdio/common/stream.cxx |
Use read_blocking and write_blocking instead of just read and |
write when accessing devices through the virtual device table. |
|
Sun Jun 21 18:19:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/stdioinlines.cxx: |
Propagate change of return code handling for puts from stdio.inl |
into here |
|
* src/stdio/output/fputc.cxx: |
make sure the right type is used for output - byte not int |
|
* src/support/clibdata.cxx: |
Fix #define config mistook. #endif was in wrong place |
|
Sun Jun 21 16:11:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.hxx, src/clibincl/clibdata.inl: |
Allow explicit construction to get around a bug when |
dynamically allocating per-thread structure |
|
Sun Jun 21 16:02:51 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/ctype/ctype.c, tests/setjmp/setjmp.c, tests/stdio/sprintf1.c, |
tests/stdio/sprintf2.c, tests/stdio/sscanf.c, tests/stdlib/abs.c, |
tests/stdlib/atoi.c, tests/stdlib/atol.c, tests/stdlib/bsearch.c, |
tests/stdlib/div.c, tests/stdlib/labs.c, tests/stdlib/ldiv.c, |
tests/stdlib/malloc1.c, tests/stdlib/malloc2.c, tests/stdlib/qsort.c, |
tests/stdlib/rand1.c, tests/stdlib/rand2.c, tests/stdlib/rand3.c, |
tests/stdlib/srand.c, tests/stdlib/strtol.c, tests/stdlib/strtoul.c, |
tests/string/memchr.c, tests/string/memcmp1.c, |
tests/string/memcmp2.c, tests/string/memcpy1.c, |
tests/string/memcpy2.c, tests/string/memmove1.c, |
tests/string/memmove2.c, tests/string/memset.c, |
tests/string/strcat1.c, tests/string/strcat2.c, |
tests/string/strchr.c, tests/string/strcmp1.c, |
tests/string/strcmp2.c, tests/string/strcoll1.c, |
tests/string/strcpy1.c, tests/string/strcpy2.c, |
tests/string/strcspn.c, tests/string/strlen.c, |
tests/string/strncat1.c, tests/string/strncat2.c, |
tests/string/strncpy1.c, tests/string/strncpy2.c, |
tests/string/strpbrk.c, tests/string/strrchr.c, |
tests/string/strspn.c, tests/string/strstr.c, tests/string/strtok.c, |
tests/string/strxfrm1.c, tests/string/strxfrm2.c, tests/time/clock.c: |
|
Update tests to "do the right thing" with all configuration settings |
|
|
Sun Jun 21 04:54:14 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/setjmp/setjmp.c: |
I have to be careful not to use setjmp() in a way not exactly |
defined by the standard, so make sure I do, and add a comment |
documenting these ways. |
|
Also ensure this test does the right thing in all configurations |
|
Sun Jun 21 04:38:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add extra checks for invalid configurations |
Also make default for thread safety OFF |
|
* src/clibincl/clibdata.inl: |
Adjust indentation |
|
* src/stdio/output/vfnprintf.cxx: |
Make printf of -0.0 floating point do the right thing |
|
Sun Jun 21 04:28:00 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/snprintf.cxx, src/stdio/common/sprintf.cxx, |
src/stdio/common/sscanf.cxx, src/stdio/input/fscanf.cxx, |
src/stdio/input/scanf.cxx, src/stdio/output/fnprintf.cxx, |
src/stdio/output/fprintf.cxx, src/stdio/output/printf.cxx: |
|
Had to remove inline functions with varargs. Which means separating |
out each function from stdioinlines.cxx into a separate file, as they |
no longer belong there. So all the above files were created. |
|
* include/stdio.inl, src/PKGconf.mak, |
src/stdio/common/stdioinlines.cxx: |
Changed to take account of the above |
|
|
Sun Jun 21 03:58:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdio/sprintf1.c, tests/stdio/sprintf2.c: |
Update with floating-point tests. Also make sure they DTRT in all |
configurations |
|
Fri Jun 19 19:33:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
accidentally initialised stdin/out/err twice |
|
Fri Jun 19 19:09:29 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
Another typo |
|
Fri Jun 19 18:59:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
Missing #endif typo |
|
Fri Jun 19 18:51:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/clibdata.cxx: |
Fix initialisation of static data members. Unsure how it worked at |
all before! |
|
Fri Jun 19 18:01:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdio.inl: |
puts should check whether fputs returns non-negative, rather than |
non-zero |
|
Fri Jun 19 17:22:52 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/clibincl/clibdata.inl: |
Make inclusion of get_errno_p conditional on thread-safety |
|
Wed Jun 17 10:55:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/input/vfscanf.cxx: |
Add weak alias of vfscanf() to _vfscanf() |
|
Wed Jun 17 09:10:41 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdio/common/fflush.cxx: |
Initialise err to silence compiler warning |
|
Wed Jun 17 08:59:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Most important is the addition of floating point support in |
src/stdio/output/vfnprintf.cxx and src/stdio/input/vfscanf.cxx. This |
also required the addition of atof() and strtod() in stdlib which is |
definitely no bad thing! Other than that... |
|
* Fix a whole bunch of stuff I messed up first time round. Also the |
sprintf and sscanf tests are included again. |
|
Tue Jun 16 16:38:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/PKGconf.mak: |
Typo with not putting comment character at the beginning. Sigh. |
|
Tue Jun 16 14:53:09 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/PKGconf.mak: |
Forgot to (temporarily) remove fputs test for now |
|
Mon Jun 15 20:40:03 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
Everything to do with stdio has almost completely changed, so there's |
not much point documenting individual changes. |
|
Mon Jun 15 18:36:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/stdlib/malloc2.c: |
Stop it moaning quite as much when it fails by making it exit sooner |
|
* tests/time/clock.c : |
This isn't a compound testcase |
|
Thu Jun 11 17:59:13 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/assert.h |
Reverse sense of NDEBUG ifdef, that was left in accidentally due |
to testing |
|
Thu Jun 11 04:58:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/errno.h, include/string.h, src/clibincl/stringsupp.hxx: |
Modify as I've now added an "error" package which defines the error |
codes and strerror() |
|
* src/errno/strerror.cxx: |
Moved to new error package and thus deleted |
|
Wed Jun 10 18:37:37 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/assert.h: |
create this header and add assert() function |
|
Wed Jun 10 16:23:57 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/stdlib.h, src/clibincl/stdlibsupp.hxx, src/stdlib/malloc.cxx: |
Add malloc(), calloc() and free() functions |
|
* include/pkgconf/libc.h: |
Add malloc memory pool size option |
|
* tests/stdlib/malloc1.c, tests/stdlib/malloc2.c: |
new tests for malloc |
|
* src/PKGconf.mak, tests/PKGconf.mak: |
Update for new files |
|
Wed Jun 10 15:06:16 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/setjmp/setjmp.c: |
Add another test |
|
Tue Jun 9 18:20:31 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/pkgconf/libc.h: |
Add some setjmp config's and a macro for the noreturn attribute |
|
* include/setjmp.h, include/setjmp.inl, src/clibincl/setjmpsupp.hxx, |
src/setjmp/longjmp.cxx, tests/setjmp/setjmp.c: |
Added to implement and test setjmp() and longjmp() |
|
* src/PKGconf.mak, tests/PKGconf.mak: |
Update for newly added files |
|
Thu Jun 4 01:29:18 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/memchr.cxx, src/string/memcmp.cxx, src/string/strcat.cxx, |
src/string/strchr.cxx, src/string/strcmp.cxx, src/string/strcpy.cxx, |
src/string/strlen.cxx, src/string/strncat.cxx, |
src/string/strncmp.cxx, src/string/strncpy.cxx: |
Rename CYGIMP_LIBC_PREFER_SMALL_TO_FAST to |
CYGIMP_LIBC_STRING_PREFER_SMALL_TO_FAST |
|
Also use slower but smaller version when __OPTIMIZE_SIZE__ is |
defined (which comes from using gcc -Os) |
|
Fri May 29 16:15:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/ctype.inl, src/ctype/isxdigit.cxx: |
Fix bug that numerals aren't considered hex digits |
|
* include/time.h: |
Change clock_t and time_t to be signed so that they can accept -1, as |
required by other libc functions |
|
* src/clibincl/clibdata.hxx: |
Fix typo that CYGIMP_LIBC_THREAD_SUPPORT should be ..._SAFETY |
Also fix macro to allocate thread-specific data to not set variables |
in a different stack-frame |
|
* tests/ctype/ctype.c: |
Fix some misunderstandings in tests, and add a few new ones |
|
* tests/stdlib/qsort.c: |
make ctr unsigned to prevent warnings |
|
* tests/stdlib/strtol.c, tests/stdlib/strtoul.c: |
Fix some misunderstandings in tests, and add a few new ones |
|
* tests/string/strrchr.c: |
Fix off by one error |
|
* tests/string/strspn.c: |
Fix case-sensitivity problem, and off-by-one error |
|
* tests/string/strxfrm1.c: |
Remove bogus bit of test that doesn't apply to strxfrm, and fix typo |
|
|
Fri May 22 16:33:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/PKGconf.mak |
Remove CXXFLAGS line now that its redundant |
|
* tests/everything! |
Do a blitz change of all tests - break some of them down into |
different files, add new tests, standardize format, fix bugs, |
update for recent header file changes and much more! |
|
Wed May 20 17:50:04 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* tests/PKGconf.mak: |
interim checkin for different dir structure for Bart |
|
Fri May 15 20:30:46 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Tidy up some loose ends I forgot: rename src/include directory to |
src/clibincl. And add clibdata.inl and timesupp.hxx in there. |
|
Thu May 14 19:56:32 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Basically everything has changed in the C library. Files have |
been moved, renamed, deleted and reworked. This is a major |
revision, and now starts from this new baseline rather than doing |
incremental changes. |
|
Fri Apr 17 18:43:02 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/ECCconf.mak: |
added for new build system (actually Bart did this, but didn't |
update this ChangeLog) |
|
Fri Apr 17 15:03:25 1998 Hugo Tyson <hmt@cygnus.co.uk> |
|
* src/stdio/device/sim.cxx: |
Make it build with CYG_EMPTY_STATEMENT; the unadorned one is being |
removed. |
|
Thu Apr 16 00:24:24 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* All source files: |
replace ECCIMP_LIBC_* conditional ifdef with CYGIMP_LIBC_* |
|
* include/eccconf/libc.h: |
improve comments and reorder a bit |
|
Wed Apr 8 14:35:20 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Makefile.am, src/Makefile.am, tests/Makefile.am, configure.in: |
many changes to integrate build structure from release tree |
|
* src/ctype/Makefile.am, src/ctype/Makefile.in, src/errno/Makefile.am, |
src/errno/Makefile.in, src/stdio/Makefile.am, src/stdio/Makefile.in, |
src/stdio/common/Makefile.am, src/stdio/common/Makefile.in, |
src/stdio/device/Makefile.am, src/stdio/device/Makefile.in, |
src/stdio/output/Makefile.am, src/stdio/output/Makefile.in, |
src/stdio/input/Makefile.am, src/stdio/input/Makefile.in, |
src/stdlib/Makefile.am, src/stdlib/Makefile.in, |
src/string/Makefile.am, src/string/Makefile.in, |
src/support/Makefile.am, src/support/Makefile.in, |
src/time/Makefile.am, src/time/Makefile.in: |
Remove as they are now redundant with above changes |
|
* include/Makefile.am: |
Add to support above changes |
|
* include/eccconf/libc.h: |
Change include file for configuration from kernel to system |
|
* src/include/kerndiag.hxx, src/stdio/device/kerndiag.cxx, |
src/time/clockfn.cxx: |
Change kernel include file to eccconf/kernel.h |
|
* src/include/strngdev.h: |
remove unnecessary kernel include |
|
* Makefile.in, aclocal.m4, configure, src/Makefile.in, |
tests/Makefile.in, include/Makefile.in: |
regenerate |
|
Mon Apr 6 20:55:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/abs.cxx, src/stdlib/atoi.cxx, src/stdlib/atol.cxx, |
src/stdlib/div.cxx, src/stdlib/labs.cxx, src/stdlib/ldiv.cxx: |
Separated out functions from stdlib.cxx into separate files |
|
* src/stdlib/stdlib.cxx: |
removed to be replaced by above files |
|
* Makefile.am, src/stdlib/Makefile.am: |
modified to support building above and not building stdlib.cxx |
|
* src/support/tsd.cxx: |
Remove unnecessary header file includes |
|
* Makefile.in, src/stdlib/Makefile.in: |
regenerated |
|
Mon Apr 6 19:19:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/tsd.cxx, include/eccconf/libc.h: |
remove lame hack for tx39 compiler now that its fixed |
|
* src/include/sim.hxx: |
define constants as static to placate compiler |
|
Thu Apr 2 21:01:21 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/ctype/ctype.cxx: |
deleted and separated out into below files |
|
* src/ctype/isalnum.cxx, src/ctype/isalpha.cxx, src/ctype/iscntrl.cxx, |
src/ctype/isdigit.cxx, src/ctype/isgraph.cxx, src/ctype/islower.cxx, |
src/ctype/isprint.cxx, src/ctype/ispunct.cxx, src/ctype/isspace.cxx, |
src/ctype/isupper.cxx, src/ctype/isxdigit.cxx, src/ctype/tolower.cxx, |
src/ctype/toupper.cxx: |
Separated out individual ctype functions from ctype.cxx into separate |
files |
|
* Makefile.am, src/ctype/Makefile.am: |
modified to reflect above deletion/additions |
|
* Makefile.in, src/ctype/Makefile.in: |
regenerated |
|
Thu Apr 2 19:08:26 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strxfrm.cxx: optimise using prefix increments |
|
Thu Apr 2 15:18:15 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strchr.cxx: optimise setting of mask a little |
|
Thu Mar 26 14:07:01 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/support/tsd.cxx: fixed some typos |
|
Thu Mar 26 11:58:47 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/eccconf/libc.h, src/support/tsd.cxx: |
Implement workaround for tx39 compiler bug. |
|
* src/include/strsuppt.hxx: |
remove prototypes for _memcpy() and _memset() as they are now in the |
kernel |
|
Wed Mar 25 18:31:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Makefile.am, src/string/Makefile.am: memcpy() and memset() are |
now in the kernel so remove them from build |
* include/string.h: add a comment to say as much |
* Makefile.in, src/string/Makefile.in: regenerate |
|
Wed Mar 25 15:30:42 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/_exit.cxx, src/include/file_if.inl: |
Change _exit workaround to not cause a compiler optimisation |
problem. Now just references _exit rather than calls it. |
|
Wed Mar 25 14:59:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strxfrm.cxx: Fix bug causing tests to fail completely |
for this function |
|
Wed Mar 25 12:55:53 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/include/sim.hxx: add types to constants (oops!) |
* Makefile.am: link src/stdio/device/sim.cxx |
* Makefile.in: regenerated |
|
Wed Mar 25 04:14:30 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/include/file_if.hxx, src/include/file_if.inl, |
src/include/kerndiag.hxx, src/include/sim.hxx, |
src/include/stdio_if.hxx, src/include/strngdev.hxx, |
src/include/tsd.hxx, src/stdio/common/clearerr.cxx, |
src/stdio/common/clearerr.cxx, src/stdio/common/feof.cxx, |
src/stdio/common/ferror.cxx, src/stdio/common/file_if.cxx, |
src/stdio/common/vsprintf.cxx, |
src/stdio/device/kerndiag.cxx, src/stdio/device/sim.cxx, |
src/stdio/device/strngdev.cxx, src/stdio/output/fputc.cxx, |
src/stdio/output/fputs.cxx, src/stdio/output/puts.cxx, |
src/stdio/output/vfnprintf.cxx, src/support/tsd.cxx: |
Modified to support buffered reads including renaming |
_EccInternalFileStruct to __EccStdioStream which is what affects |
most of these files |
* src/include/file_if.inl, src/stdio/common/file_if.cxx: added for |
the above reason |
* src/stdio/common/sscanf.cxx, src/stdio/input/vfscanf.cxx, |
src/stdio/input/Makefile.am: added to provide sscanf() functionality |
* include/ctype.h, include/stdio.h, include/stdlib.h, |
include/string.h, include/eccconf/libc.h, src/ctype/ctype.cxx, |
src/stdlib/stdlib.cxx, src/string/strcoll.cxx, |
src/stdio/common/stdio.cxx: |
rename *_INLINES macros with prefix CYG rather than ECC |
* include/errno.h, src/errno/errno.cxx, src/errno/strerror.cxx: |
rename ErrNo to _ErrNo and add EAGAIN and EWOULDBLOCK error codes |
* configure.in, Makefile.am, src/stdio/Makefile.am, |
src/stdio/input/Makefile.am: add support for building |
file_if.cxx sscanf.cxx and vfscanf.cxx |
* src/stdio/Makefile.in, src/stdio/common/Makefile.in, |
src/stdio/input/Makefile.in, configure, Makefile.in: regenerated |
|
Tue Mar 24 19:51:40 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/time/clockfn.cxx, src/time/clock.cxx: |
Renamed clock.cxx to clockfn.cxx (preserving CVS history) |
* Makefile.am, src/time/Makefile.am: updated to reflect name change |
* Makefile.in, src/time/Makefile.in: regenerated |
|
Tue Mar 24 16:28:06 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/ctype.inl: Swap around definitions to get right order so |
inlining works |
|
Tue Mar 24 14:43:05 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/ctype.h, include/stdio.h, include/stdlib.h, include/string.h: |
modify to only conditionally include inlines |
* src/ctype/ctype.cxx, src/stdio/common/stdio.cxx, |
src/stdlib/stdlib.cxx, src/string/strcoll.cxx, |
src/ctype/Makefile.am: Add to provide real linkable alternatives |
to inline functions |
* Makefile.am, configure.in, src/Makefile.am, |
src/stdio/common/Makefile.am, src/stdlib/Makefile.am, |
src/string/Makefile.am: modified to support previous additions |
* include/eccconf/libc.h: redefine inline macro to add extern inline, |
and add conditional defines for inline functions. Also rename |
space vs. speed macro to have CYG instead of ECC prefix |
* include/stdio.inl: fix comment typo |
* src/stdlib/qsort.cxx: fix to define inline functions properly |
* src/string/memchr.cxx, src/string/memcmp.cxx, src/string/memcpy.cxx, |
src/string/memset.cxx, src/string/strcat.cxx, src/string/strchr.cxx, |
src/string/strcmp.cxx, src/string/strcpy.cxx, src/string/strlen.cxx, |
src/string/strncat.cxx, src/string/strncmp.cxx, |
src/string/strncpy.cxx |
* Makefile.in, configure, src/Makefile.in, src/ctype/Makefile.in, |
src/stdio/common/Makefile.in, src/stdlib/Makefile.in, |
src/string/Makefile.in: regenerate |
|
|
Mon Mar 23 19:19:49 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/stdlib/_exit.cxx: added to support temporary _exit |
* include/stdlib.h, include/stdlib.inl: added support for _exit and |
added abs(), labs(), div() and ldiv() functions |
* src/include/file_if.hxx: added support for _exit kludge |
* src/stdlib/qsort.cxx: Added Berkeley copyright message |
* src/time/clock.cxx: Include correct kernel config header as |
CYG_CONFIGURATION rather than <config.h> |
* Makefile.am src/stdlib/Makefile.am: added support for _exit |
* Makefile.in, src/stdlib/Makefile.in: regenerated |
|
Mon Mar 23 14:41:07 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Replace ECCPKG_ANSI_LIBC with CYGPKG_ANSI_LIBC in all source files |
|
Mon Mar 23 14:28:44 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/string.inl: add file to provide strcoll() |
* include/string.h: include string.inl |
* ctype.h: include ctype.inl (oops!) |
* include/stdlib.h: include stdlib.inl (oops!) |
|
Mon Mar 23 13:30:38 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/ctype.h, include/ctype.inl: added to provide ANSI ctype |
functionality |
* include/stdlib.h, include/stdlib.inl, src/include/stdlibbsp.hxx, |
src/stdlib/Makefile.am, src/stdlib/bsearch.cxx, |
src/stdlib/qsort.cxx, src/stdlib/rand.cxx, src/stdlib/srand.cxx, |
src/stdlib/strtol.cxx, src/stdlib/strtoul.cxx: Added to provide |
many stdlib functions |
* src/include/tsd.hxx: modified to support rand() random number |
seed, and added some comments |
* configure.in, Makefile.am, src/Makefile.am: modified to support |
addition of above new sources |
* include/eccconf/libc.h: Add extra helpful comments, and #include |
kernel config file |
* src/time/clock.cxx: #include clock.inl and fix to call |
get_resolution() properly now |
* Makefile.in, configure, src/Makefile.in, src/errno/Makefile.in, |
src/stdio/Makefile.in, src/stdio/common/Makefile.in, |
src/stdio/device/Makefile.in, src/stdio/output/Makefile.in, |
src/stdlib/Makefile.in, src/strings/Makefile.in, |
src/support/Makefile.in, src/time/Makefile.in, |
tests/Makefile.in: regenerated |
|
|
Sun Mar 22 21:29:25 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* include/time.h, src/include/timesupp.hxx, src/time/clock.cxx, |
src/time/Makefile.am: added to provide clock() function |
* src/Makefile.am: modified to try to build in src/time directory |
* include/eccconf/libc.h: added and is now the main configuration |
file for this package |
* acconfig.h, include/libcconf.h.in, include/stamp-h.in: removed |
due to usage of libc.h above instead |
* Almost all *.h, *.hxx and *.cxx: replaced LIBC_CONFIG_HEADER |
defined include with simple <pkgconf/libc.h> |
* configure.in: remove AM_CONFIG_HEADER of libcconf.h and |
LIBC_CONFIG_HEADER definition. Also remove usage of builtin |
memcpy() etc. from gcc, and generate src/time/Makefile |
* Makefile.am: link in src/time/clock.o |
* src/include/file_if.hxx, src/include/sim.hxx: use config header |
to decide whether C library is to be used |
* Makefile.in, aclocal.m4, configure, src/Makefile.in: regenerated |
|
Fri Mar 20 18:08:10 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* src/string/strxfrm.cxx: Fixed bug with ignoring terminating NULL |
|
1998-03-20 Chris Tarpy <ctarpy@bhaji.cygnus.co.uk> |
|
* configure: - regenerated |
* Makefile.am: - Support added for libc testcases |
* Makefile.in: regenerated |
* configure.in: set c compiler, descend test dir |
* tests/Makefile.in: added |
* tests/Makefile.am: added |
* tests/tcdiag.cxx : added |
|
|
Thu Mar 19 11:41:56 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> |
|
* Initial check-in of everything |
|
//=========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//=========================================================================== |
/v2_0/cdl/signals.cdl
0,0 → 1,280
# ==================================================================== |
# |
# signals.cdl |
# |
# C library signal related configuration data |
# |
# ==================================================================== |
#####ECOSGPLCOPYRIGHTBEGIN#### |
## ------------------------------------------- |
## This file is part of eCos, the Embedded Configurable Operating System. |
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
## |
## eCos is free software; you can redistribute it and/or modify it under |
## the terms of the GNU General Public License as published by the Free |
## Software Foundation; either version 2 or (at your option) any later version. |
## |
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
## for more details. |
## |
## You should have received a copy of the GNU General Public License along |
## with eCos; if not, write to the Free Software Foundation, Inc., |
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
## |
## As a special exception, if other files instantiate templates or use macros |
## or inline functions from this file, or you compile this file and link it |
## with other works to produce a work based on this file, this file does not |
## by itself cause the resulting work to be covered by the GNU General Public |
## License. However the source code for this file must still be made available |
## in accordance with section (3) of the GNU General Public License. |
## |
## This exception does not invalidate any other reasons why a work based on |
## this file might be covered by the GNU General Public License. |
## |
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
## at http://sources.redhat.com/ecos/ecos-license/ |
## ------------------------------------------- |
#####ECOSGPLCOPYRIGHTEND#### |
# ==================================================================== |
######DESCRIPTIONBEGIN#### |
# |
# Author(s): jlarmour |
# Contributors: |
# Date: 2000-04-14 |
# |
#####DESCRIPTIONEND#### |
# |
# ==================================================================== |
|
cdl_package CYGPKG_LIBC_SIGNALS { |
display "ISO C library signal functions" |
description " |
This component controls signal functionality, |
as implemented in ISO/IEC 9899:1990 chapter 7.7 with |
the signal() and raise() functions. As well as |
allowing a program to send itself signals, it is |
also possible to cause hardware exceptions to |
be signalled to the program in a similar way." |
doc ref/libc.html |
include_dir cyg/libc/signals |
parent CYGPKG_LIBC |
implements CYGINT_ISO_SIGNAL_NUMBERS |
implements CYGINT_ISO_SIGNAL_IMPL |
requires { CYGBLD_ISO_SIGNAL_NUMBERS_HEADER == \ |
"<cyg/libc/signals/signal.h>" } |
requires { CYGBLD_ISO_SIGNAL_IMPL_HEADER == \ |
"<cyg/libc/signals/signal.h>" } |
requires CYGPKG_ISOINFRA |
compile raise.cxx siginit.cxx signal.cxx |
|
# ==================================================================== |
|
cdl_option CYGSEM_LIBC_SIGNALS_THREAD_SAFE { |
display "Thread safe signals" |
requires CYGPKG_KERNEL |
default_value 1 |
description " |
Because signal handlers are global, and not |
thread-specific (as mandated by POSIX 1003.1) |
it is possible for multiple threads to clash |
and corrupt data if setting the same signal |
handler at the same time. With this option |
enabled, a kernel mutex will be used to protect |
the shared data." |
} |
|
cdl_component CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS { |
display "Hardware exceptions cause signals" |
flavor bool |
requires CYGSEM_KERNEL_EXCEPTIONS_GLOBAL |
requires CYGSEM_KERNEL_EXCEPTIONS_DECODE |
default_value 0 |
description " |
This causes hardware exceptions like |
arithmetic exceptions (e.g. divide by zero) |
or bad memory accesses to be passed through as |
signals. It is thus possible for a program to |
handle these exceptions in a generic way using |
the appropriate signal handlers. The details of |
exactly which exceptions are passed through |
under what circumstances depend on the |
underlying HAL implementation. Consequently it |
must be remembered that signal handlers cannot |
be guaranteed to be invoked in the expected |
circumstances if you do not know about the |
underlying HAL implementation - it is possible |
that the architecture is unable to detect that |
exception." |
|
cdl_option CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS { |
display "Chain old exception handlers" |
default_value 1 |
description " |
When hardware exceptions are generated, it |
is possible to chain into the old kernel exception |
handler before calling any registered signal |
handler. If this is not required, disable this |
option and only the signal handler will be |
called when this exception occurs. Disabling |
this option will also save some space and code |
usage." |
} |
} |
|
cdl_component CYGPKG_LIBC_SIGNALS_INLINE { |
display "Inline versions of functions" |
flavor none |
description " |
Some functions can be made inline instead of |
being function calls. These can be set here." |
|
cdl_option CYGIMP_LIBC_SIGNALS_RAISE_INLINE { |
display "raise()" |
default_value 1 |
description " |
Enabling this option makes raise() an inline function." |
} |
|
cdl_option CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE { |
display "signal()" |
default_value 1 |
description " |
Enabling this option makes signal() an inline function." |
} |
} |
|
cdl_component CYGPKG_LIBC_SIGNALS_ERROR_HANDLING { |
display "Error handling" |
flavor none |
description " |
You may or may not want errno to be set by |
certain functions. Not using errno could save |
both space, code, and avoid worrying about |
interactions between multiple threads when |
setting it." |
|
cdl_option CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL { |
display "Bad signal fatal" |
requires CYGDBG_USE_ASSERTS |
default_value 0 |
description " |
Enabling this option will cause an assertion |
failure if the signal handling code is |
passed a bad signal. Otherwise an error will |
be returned, or in the case of a |
hardware-generated exception it will be silently |
ignored." |
} |
|
cdl_option CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO { |
display "raise() sets errno" |
requires CYGINT_ISO_ERRNO |
requires CYGINT_ISO_ERRNO_CODES |
default_value 1 |
description " |
You may or may not want errno to be set by |
raise() on error conditions. Not using errno |
could save both space, code, and avoid worrying |
about interactions between multiple threads when |
setting it. Strictly ISO C does not mandate |
that errno be set by raise()." |
} |
|
cdl_option CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO { |
display "signal() sets errno" |
requires CYGINT_ISO_ERRNO |
requires CYGINT_ISO_ERRNO_CODES |
default_value 1 |
description " |
You may or may not want errno to be set by |
signal() on error conditions. Not using errno |
could save both space, code, and avoid worrying |
about interactions between multiple threads when |
setting it. Strictly ISO C mandates |
that errno be set by signal()." |
} |
} |
|
cdl_component CYGPKG_LIBC_SIGNALS_TRACING { |
display "Tracing" |
flavor none |
description " |
These options control the trace output for the C |
library internal signal implementation." |
|
cdl_option CYGNUM_LIBC_SIGNALS_RAISE_TRACE_LEVEL { |
display "Default trace level for raise()" |
flavor data |
legal_values 0 to 1 |
default_value 0 |
description " |
This gives the default tracing level for the |
raise() function. Higher numbers are more |
verbose." |
} |
|
cdl_option CYGNUM_LIBC_SIGNALS_HWHANDLER_TRACE_LEVEL { |
display "Default hardware exception handler trace level" |
flavor data |
legal_values 0 to 1 |
default_value 0 |
description " |
This gives the default tracing level for the |
hardware exception handler function (if enabled). |
Higher numbers are more verbose." |
} |
} |
|
# ==================================================================== |
|
cdl_component CYGPKG_LIBC_SIGNALS_OPTIONS { |
display "C library signal functions build options" |
flavor none |
no_define |
description " |
Package specific build options including control over |
compiler flags used only in building this package, |
and details of which tests are built." |
|
|
cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_ADD { |
display "Additional compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the C library. These flags are used in addition |
to the set of global flags." |
} |
|
cdl_option CYGPKG_LIBC_SIGNALS_CFLAGS_REMOVE { |
display "Suppressed compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the C library. These flags are removed from |
the set of global flags if present." |
} |
|
cdl_option CYGPKG_LIBC_SIGNALS_TESTS { |
display "C library signal function tests" |
flavor data |
no_define |
calculated { |
"tests/signal1" |
. ((CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS) ? " tests/signal2" : "") |
} |
description " |
This option specifies the set of tests for the C library |
signal functions." |
} |
} |
} |
|
# ==================================================================== |
# EOF signals.cdl |
/v2_0/tests/signal1.c
0,0 → 1,210
//======================================================================== |
// |
// signal1.c |
// |
// ISO C signal handling test |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Test signal functionality |
// Description: This file contains a number of tests for ISO C signal |
// handling |
// Usage: |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
#include <cyg/infra/testcase.h> // Test infrastructure |
#include <signal.h> // Signal functions |
#include <setjmp.h> // setjmp(), longjmp() |
#include <stdlib.h> // abort() |
|
// STATICS |
|
static int state; |
static jmp_buf jbuf; |
|
// FUNCTIONS |
|
static void |
myhandler1(int signal) |
{ |
CYG_TEST_INFO("myhandler1 called"); |
++state; |
} // myhandler1() |
|
static void |
myhandler2(int signal) |
{ |
CYG_TEST_INFO("myhandler2 called"); |
++state; |
longjmp(jbuf, 1); |
} // myhandler2() |
|
int |
main( int argc, char *argv[] ) |
{ |
__sighandler_t handler1; |
int rc; |
|
// special callout to request GDB to alter its handling of signals |
CYG_TEST_GDBCMD("handle SIGTERM nostop"); |
CYG_TEST_GDBCMD("handle SIGABRT nostop"); |
|
CYG_TEST_INIT(); |
|
CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C " |
"library signal functions"); |
|
// Test 1 |
|
CYG_TEST_INFO("Test 1"); |
state = 1; |
handler1 = signal(SIGTERM, &myhandler1); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGTERM handler initialized to default"); |
|
rc = raise(SIGTERM); |
|
CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error"); |
|
CYG_TEST_PASS_FAIL(2==state, "SIGTERM handler returned correctly"); |
|
// Test 2 |
|
CYG_TEST_INFO("Test 2"); |
|
state = 2; |
handler1 = signal(SIGTERM, &myhandler2); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGTERM handler reset to default after test 1"); |
|
handler1 = signal(SIGTERM, &myhandler1); |
|
CYG_TEST_PASS_FAIL(handler1 == &myhandler2, |
"SIGTERM handler was set correctly"); |
|
rc = raise(SIGTERM); |
|
CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error"); |
|
CYG_TEST_PASS_FAIL(3==state, "SIGTERM handler returned correctly"); |
|
// Test 3 |
|
CYG_TEST_INFO("Test 3"); |
|
handler1 = signal(SIGTERM, &myhandler2); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGTERM handler reset to default after test 2"); |
|
handler1 = signal(SIGTERM, SIG_DFL); |
|
CYG_TEST_PASS_FAIL(handler1 == &myhandler2, |
"SIGTERM handler was set correctly"); |
|
// Test 4 |
|
CYG_TEST_INFO("Test 4"); |
|
state = 4; |
handler1 = signal(SIGTERM, SIG_IGN); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGTERM handler was set correctly after test 3"); |
rc = raise(SIGTERM); |
|
CYG_TEST_PASS_FAIL(0==rc, "raise(SIGTERM) did not return error"); |
|
CYG_TEST_PASS_FAIL(4==state, "SIGTERM ignored"); |
|
// Test 5 |
|
CYG_TEST_INFO("Test 5"); |
|
state = 5; |
handler1 = signal(SIGTERM, &myhandler2); |
|
// SIG_IGN doesn't reset back to SIG_DFL after a raise() |
CYG_TEST_PASS_FAIL(handler1 == SIG_IGN, |
"SIGTERM handler was set correctly after test 4"); |
|
if (0==setjmp(jbuf)) { |
raise(SIGTERM); |
CYG_TEST_FAIL("raise returned"); |
} |
|
CYG_TEST_PASS_FAIL(6==state, "SIGTERM handler returned correctly"); |
|
// Test 6 |
|
CYG_TEST_INFO("Test 6"); |
|
state = 6; |
handler1 = signal(SIGABRT, &myhandler2); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGABRT handler initialized to default"); |
|
if (0==setjmp(jbuf)) { |
abort(); |
CYG_TEST_FAIL("abort returned"); |
} |
|
CYG_TEST_PASS_FAIL(7==state, "SIGABRT handler returned correctly"); |
|
CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C " |
"library signal functions"); |
|
return 0; |
} // main() |
|
// EOF signal1.c |
/v2_0/tests/signal2.c
0,0 → 1,299
//======================================================================== |
// |
// signal2.c |
// |
// ISO C signal handling test |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Test hardware signal functionality |
// Description: This file contains a number of tests for ISO C signal |
// handling when used with hardware exceptions |
// Usage: |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/system.h> |
#include <pkgconf/libc_signals.h> // C library signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
#include <cyg/infra/testcase.h> // Test infrastructure |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
#include <cyg/hal/hal_intr.h> // exception ranges & |
// HAL_VSR_SET_TO_ECOS_HANDLER |
|
#include <signal.h> // Signal functions |
#include <setjmp.h> // setjmp(), longjmp() |
|
// STATICS |
|
static int state; |
static jmp_buf jbuf; |
#endif |
|
// FUNCTIONS |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
static void |
myhandler(int sig) |
{ |
__sighandler_t handler1; |
|
CYG_TEST_INFO("myhandler() called"); |
++state; |
|
handler1 = signal(sig, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"handler reset itself to default"); |
|
longjmp(jbuf, 1); |
} // myhandler() |
|
static void |
cause_memerror(void) |
{ |
#ifdef CYGPKG_HAL_I386 |
|
// In the x86 architecture, although we have the DATA_ACCESS |
// exception available, it is not possible to provoke it using the |
// normal code of this test. This is because the normal segments we |
// have installed in the segment registers cover all of memory. Instead we |
// set GS to a descriptor that does not cover 0xF0000000-0xFFFFFFFF and |
// poke at that. |
|
__asm__ ( "movw $0x20,%%ax\n" |
"movw %%ax,%%gs\n" |
"movl %%gs:0xF0000000,%%eax\n" |
: |
: |
: "eax" |
); |
|
#else |
volatile int x; |
volatile CYG_ADDRESS p=(CYG_ADDRESS) &state; |
|
do { |
// do a read which prevents us accidentally writing over something |
// important. Make it misaligned to increase the chances of an |
// exception happening |
x = *(volatile int *)(p+1); |
p += (CYG_ADDRESS)0x100000; |
} while(p != 0); |
#endif |
} // cause_memerror() |
|
// num must always be 0 - do it this way in case the optimizer tries to |
// get smart |
static int |
cause_fpe(int num) |
{ |
double a; |
|
a = 1.0/num; // Depending on FPU emulation and/or |
// the FPU architecture, this may |
// cause an exception. |
// (float division by zero) |
|
return ((int)a)/num; // This may cause an exception if |
// the architecture supports it. |
// (integer division by zero). |
} // cause_fpe() |
|
volatile int tmp; |
|
#endif |
|
|
int |
main( int argc, char *argv[] ) |
{ |
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
__sighandler_t handler1; |
|
// special callout to request GDB to alter its handling of signals |
CYG_TEST_GDBCMD("handle SIGBUS nostop"); |
CYG_TEST_GDBCMD("handle SIGSEGV nostop"); |
CYG_TEST_GDBCMD("handle SIGILL nostop"); |
CYG_TEST_GDBCMD("handle SIGFPE nostop"); |
CYG_TEST_GDBCMD("handle SIGSYS nostop"); |
#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
CYG_TEST_INIT(); |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
// Avoid compiler warnings if tests are not applicable. |
if (0) cause_memerror(); |
if (0) cause_fpe(0); |
#endif |
|
CYG_TEST_INFO("Starting tests from testcase " __FILE__ " for C " |
"library signal functions"); |
|
// Now reset the exception handlers various to eCos handlers so that we |
// have control; this is the target side equivalent of the CYG_TEST_GDBCMD |
// lines above: |
#ifdef HAL_VSR_SET_TO_ECOS_HANDLER |
// Reclaim the VSR off CygMon possibly |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_ACCESS |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_ACCESS, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_FPU, NULL ); |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO |
HAL_VSR_SET_TO_ECOS_HANDLER( CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO, NULL ); |
#endif |
#endif |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
|
// Test 1 |
|
CYG_TEST_INFO("Test 1"); |
|
handler1 = signal(SIGSEGV, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGSEGV handler initialized to default"); |
|
|
handler1 = signal(SIGBUS, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGBUS handler initialized to default"); |
|
|
handler1 = signal(SIGILL, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGILL handler initialized to default"); |
|
handler1 = signal(SIGSYS, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGSYS handler initialized to default"); |
|
handler1 = signal(SIGTRAP, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGTRAP handler initialized to default"); |
|
handler1 = signal(SIGFPE, &myhandler); |
|
CYG_TEST_PASS_FAIL(handler1 == SIG_DFL, |
"SIGFPE handler initialized to default"); |
|
// Test 2 |
|
CYG_TEST_INFO("Test 2"); |
|
state = 2; |
|
#if defined(CYGPKG_HAL_POWERPC_SIM) |
// The exception generated by the SIM is not recognized by GDB. |
// PR 19945 workaround. |
CYG_TEST_PASS("Test 2 not applicable to PowerPC SIM"); |
#else |
if (0==setjmp(jbuf)) { |
cause_memerror(); |
CYG_TEST_FAIL("Didn't cause exception"); |
} |
|
CYG_TEST_PASS_FAIL(3==state, "handler returned correctly"); |
#endif |
|
// Test 3 |
|
CYG_TEST_INFO("Test 3"); |
|
state = 3; |
|
#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO |
|
if (0==setjmp(jbuf)) { |
// It is necessary to save the return value in a volatile |
// variable, or GCC will get rid of the call. |
tmp = cause_fpe(0); |
CYG_TEST_FAIL("Didn't cause exception"); |
} |
|
CYG_TEST_PASS_FAIL(4==state, "handler returned correctly"); |
|
#else |
|
CYG_TEST_INFO("Test 3 - provoke FP error - not supported"); |
|
#endif |
|
#else |
CYG_TEST_NA("Testing not applicable to this configuration"); |
#endif |
|
CYG_TEST_FINISH("Finished tests from testcase " __FILE__ " for C " |
"library signal functions"); |
|
return 0; |
} // main() |
|
// EOF signal2.c |
/v2_0/include/signal.h
0,0 → 1,224
#ifndef CYGONCE_LIBC_SIGNALS_SIGNAL_H |
#define CYGONCE_LIBC_SIGNALS_SIGNAL_H |
//======================================================================== |
// |
// signal.h |
// |
// Definitions for ISO C and POSIX 1003.1 signals |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Provides description of interface to ISO C and POSIX 1003.1 |
// signal functionality |
// Description: |
// Usage: Do not include this file directly - use #include <signal.h> |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
|
#ifdef CYGSEM_LIBC_SIGNALS_POSIX |
# include <unistd.h> // _POSIX_* macros |
#endif |
|
|
// TYPE DEFINITIONS |
|
// Integral type that can be accessed atomically - from ISO C 7.7 |
typedef cyg_atomic sig_atomic_t; |
|
// Type of signal handler functions |
typedef void (*__sighandler_t)(int); |
|
#ifdef CYGSEM_LIBC_SIGNALS_POSIX |
|
// Signal sets from POSIX 1003.1 chap 3.3.3 and other chaps |
typedef cyg_uint32 sigset_t; |
|
// POSIX 1003.1 chap 3.3.1.2 |
union sigval { |
int sival_int; // used when application-defined value is an int |
void *sival_ptr; // used when application-defined value is a pointer |
}; |
|
// Signal information structure passed to a __siginfoaction_t style handler |
// from POSIX 1003.1 chap 3.3.1.3 |
typedef struct { |
int si_signo; // signal number |
int si_code; // cause of signal |
union sigval si_value; // signal value |
} siginfo_t; |
|
|
// Type of signal handler used if SA_SIGINFO is set in flags to sigaction |
// from POSIX 1003.1 chap 3.3.1.3 |
typedef void (*__siginfoaction_t)(int __signo, siginfo_t *__info, |
void *__context); |
|
// struct sigaction describes the action to be taken when we get a signal |
// From POSIX 1003.1 chap. 3.3.4.2 |
struct sigaction { |
sigset_t sa_mask; // Additional signals to be blocked |
int sa_flags; // Special flags |
union { |
__sighandler_t sa_handler; // signal handler |
__siginfoaction_t sa_sigaction; // Function to call instead of |
// sa_handler if SA_SIGINFO is |
// set in sa_flags |
} __sigactionhandler; |
#define sa_handler __sigactionhandler.sa_handler |
#define sa_sigaction __sigactionhandler.sa_sigaction |
}; |
|
|
#endif // ifdef CYGSEM_LIBC_SIGNALS_POSIX |
|
|
// CONSTANTS |
|
// Signal handlers for use with signal(). We avoid 0 because in an embedded |
// system this may be e.g. start of ROM and thus a possible function pointer |
// for reset! |
|
#define SIG_DFL ((__sighandler_t) 1) // Default action |
#define SIG_IGN ((__sighandler_t) 2) // Ignore action |
#define SIG_ERR ((__sighandler_t)-1) // Error return |
|
// NB. We do not need to restrict SIG* definitions (e.g. by eliminating |
// POSIX signals) when using strict ISO C (permitted in 7.7) |
|
#define SIGNULL 0 // Reserved signal - do not use (POSIX 3.3.1.1) |
#define SIGHUP 1 // Hangup on controlling terminal (POSIX) |
#define SIGINT 2 // Interactive attention (ISO C) |
#define SIGQUIT 3 // Interactive termination (POSIX) |
#define SIGILL 4 // Illegal instruction (not reset when caught) (ISO C) |
#define SIGTRAP 5 // Trace trap (not reset when caught) |
#define SIGIOT 6 // IOT instruction |
#define SIGABRT 6 // Abnormal termination - used by abort() (ISO C) |
#define SIGEMT 7 // EMT instruction |
#define SIGFPE 8 // Floating Point Exception e.g. div by 0 (ISO C) |
#define SIGKILL 9 // Kill (cannot be caught or ignored) (POSIX) |
#if 1 // FIXME - should be #ifdef _POSIX_MEMORY_PROTECTION? |
# define SIGBUS 10 // Bus error (POSIX) |
#endif |
#define SIGSEGV 11 // Invalid memory reference (ISO C) |
#define SIGSYS 12 // Bad argument to system call (used by anything?) |
#define SIGPIPE 13 // Write on a pipe with no one to read it (POSIX) |
#define SIGALRM 14 // Alarm timeout (POSIX) |
#define SIGTERM 15 // Software termination request (ISO C) |
#define SIGUSR1 16 // Application-defined signal 1 (POSIX) |
#define SIGUSR2 17 // Application-defined signal 2 (POSIX) |
|
#define CYGNUM_LIBC_SIGNALS 18 // Maximum signal number + 1 |
|
#ifdef _POSIX_JOB_CONTROL |
# define SIGCHLD 18 // Child process terminated or stopped (POSIX) |
# define SIGCONT 19 // Continue if stopped (POSIX) |
# define SIGSTOP 20 // Stop (cannot be caught or ignored) (POSIX) |
# define SIGTSTP 21 // Interactive stop (POSIX) |
# define SIGTTIN 22 // Terminal read attempted by backgrounded |
// process (POSIX) |
# define SIGTTOU 23 // Terminal write attempted by backgrounded |
// process (POSIX) |
#undef CYGNUM_LIBC_SIGNALS |
#define CYGNUM_LIBC_SIGNALS 24 |
#endif |
|
// FIXME - strictly by POSIX in 3.3.1.1 we should define SIGRTMIN/SIGRTMAX |
// But if so, to what value if it _isn't_ supported?! |
|
#ifdef CYGSEM_LIBC_SIGNALS_POSIX |
// sa_flag bits in struct sigaction |
#define SA_NOCLDSTOP 1 // Don't generate SIGCHLD when children stop |
#define SA_SIGINFO 2 // Use the __siginfoaction_t style signal |
// handler, instead of the single argument handler |
#endif // ifdef CYGSEM_LIBC_SIGNALS_POSIX |
|
|
// FUNCTION PROTOTYPES |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
//=========================================================================== |
|
// ISO C functions |
|
////////////////////////////// |
// signal() - ISO C 7.7.1 // |
////////////////////////////// |
// |
// Installs a new signal handler for the specified signal, and returns |
// the old handler |
// |
|
extern __sighandler_t |
signal(int __sig, __sighandler_t __handler); |
|
/////////////////////////// |
// raise() - ISO C 7.7.2 // |
/////////////////////////// |
// |
// Raises the signal, which will cause the current signal handler for |
// that signal to be called |
// |
|
extern int |
raise(int __sig); |
|
|
#ifdef __cplusplus |
} // extern "C" |
#endif |
|
#include <cyg/libc/signals/signal.inl> |
|
#endif // CYGONCE_LIBC_SIGNALS_SIGNAL_H multiple inclusion protection |
|
// EOF signal.h |
/v2_0/include/signal.inl
0,0 → 1,270
#ifndef CYGONCE_LIBC_SIGNALS_SIGNAL_INL |
#define CYGONCE_LIBC_SIGNALS_SIGNAL_INL |
//======================================================================== |
// |
// signal.inl |
// |
// Inline functions for implementation of ISO C and POSIX signals |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Implements required inline functions of ISO C and |
// POSIX 1003.1 signals |
// Description: |
// Usage: Do not include this file directly, instead use <signal.h> |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <signal.h> // Header for this file, just in case |
#include <cyg/infra/cyg_ass.h> // Assertion infrastructure |
#include <cyg/infra/cyg_trac.h> // Tracing infrastructure |
|
// GLOBALS |
|
extern __sighandler_t cyg_libc_signal_handlers[]; |
#ifdef CYGDBG_USE_TRACING |
extern cyg_uint8 cyg_libc_signals_raise_trace_level; |
#endif |
|
// DEFINES |
|
// The following are overriden by the libc implementation to get a non-inline |
// version to prevent duplication of code |
#ifndef CYGPRI_LIBC_SIGNALS_RAISE_INLINE |
# define CYGPRI_LIBC_SIGNALS_RAISE_INLINE extern __inline__ |
#endif |
|
#ifndef CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE |
# define CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE extern __inline__ |
#endif |
|
// FUNCTION PROTOTYPES |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
// Default signal handler - SIG_DFL |
extern void cyg_libc_signals_default_handler(int __sig); |
|
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
extern cyg_bool cyg_libc_signals_lock_do_lock(void); |
extern void cyg_libc_signals_lock_do_unlock(void); |
#endif |
|
// INLINE FUNCTIONS |
|
///////////////////////////// |
// cyg_libc_signals_lock() // |
///////////////////////////// |
|
static inline cyg_bool |
cyg_libc_signals_lock(void) |
{ |
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
return cyg_libc_signals_lock_do_lock(); |
#else |
return true; |
#endif |
} // cyg_libc_signals_lock() |
|
/////////////////////////////// |
// cyg_libc_signals_unlock() // |
/////////////////////////////// |
|
static inline void |
cyg_libc_signals_unlock(void) |
{ |
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
cyg_libc_signals_lock_do_unlock(); |
#else |
return; |
#endif |
} // cyg_libc_signals_unlock() |
|
// ISO C functions |
|
////////////////////////////// |
// signal() - ISO C 7.7.1 // |
////////////////////////////// |
|
|
#ifdef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE |
|
#ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO |
# include <errno.h> // errno |
#endif |
|
CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE __sighandler_t |
signal(int __sig, __sighandler_t __handler) |
{ |
__sighandler_t __old_handler; |
CYG_REPORT_FUNCNAMETYPE( "__signal", "returning %08x" ); |
|
CYG_REPORT_FUNCARG2( "signal number = %d, requested handler is at %08x", |
__sig, __handler ); |
|
// check valid signal - raise should not raise the null signal either |
if ( (__sig >= CYGNUM_LIBC_SIGNALS) || (__sig <= 0) ) { |
|
#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL |
CYG_FAIL("__signal() passed bad signal number"); |
#else |
# ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO |
errno = EINVAL; |
# endif |
return SIG_ERR; |
#endif |
} |
|
// paranoia |
CYG_CHECK_DATA_PTR( cyg_libc_signal_handlers, |
"signal handler array is invalid!" ); |
if ( (__handler != SIG_IGN) && (__handler != SIG_DFL) ) |
CYG_CHECK_FUNC_PTR( __handler, "__signal() passed invalid handler"); |
|
if (!cyg_libc_signals_lock()) { |
#ifdef CYGSEM_LIBC_SIGNALS_SIGNAL_SETS_ERRNO |
errno = EINTR; |
#endif |
return SIG_ERR; |
} // if |
|
__old_handler = cyg_libc_signal_handlers[__sig]; |
cyg_libc_signal_handlers[__sig] = __handler; |
|
cyg_libc_signals_unlock(); |
|
CYG_REPORT_RETVAL( __old_handler ); |
|
return __old_handler; |
} // signal() |
#endif // ifdef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE |
|
|
/////////////////////////// |
// raise() - ISO C 7.7.2 // |
/////////////////////////// |
|
#ifdef CYGIMP_LIBC_SIGNALS_RAISE_INLINE |
|
#ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO |
# include <errno.h> // errno |
#endif |
|
CYGPRI_LIBC_SIGNALS_RAISE_INLINE int |
raise(int __sig) |
{ |
int __ret=0; |
__sighandler_t __sigfun; |
|
CYG_REPORT_FUNCNAMETYPE( "__raise", "returning %d" ); |
|
CYG_REPORT_FUNCARG1( "signal number = %d", __sig ); |
|
// check valid signal - raise should not raise the null signal either |
if ( (__sig >= CYGNUM_LIBC_SIGNALS) || (__sig <= 0) ) { |
|
#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL |
CYG_FAIL("__raise() passed bad signal number"); |
#else |
# ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO |
errno = EINVAL; |
# endif |
return -1; |
#endif |
} |
|
// paranoia |
CYG_CHECK_DATA_PTR( cyg_libc_signal_handlers, |
"signal handler array is invalid!" ); |
|
if (!cyg_libc_signals_lock()) { |
#ifdef CYGSEM_LIBC_SIGNALS_RAISE_SETS_ERRNO |
errno = EINTR; |
#endif |
return -1; |
} // if |
|
__sigfun = cyg_libc_signal_handlers[__sig]; |
|
if ( __sigfun == SIG_DFL ) { |
CYG_TRACE0(cyg_libc_signals_raise_trace_level, |
"signal handler returned is SIG_DFL"); |
cyg_libc_signals_unlock(); |
cyg_libc_signals_default_handler(__sig); |
} else if ( __sigfun == SIG_IGN ) { |
CYG_TRACE0(cyg_libc_signals_raise_trace_level, |
"signal handler returned is SIG_IGN"); |
cyg_libc_signals_unlock(); |
} else { |
CYG_TRACE1(cyg_libc_signals_raise_trace_level, |
"signal handler returned is at %08x", __sigfun); |
// call the signal handler directly |
cyg_libc_signal_handlers[__sig] = SIG_DFL; |
|
cyg_libc_signals_unlock(); |
CYG_CHECK_FUNC_PTR( __sigfun, "returned signal handler invalid!"); |
|
(*__sigfun)(__sig); |
} |
|
CYG_REPORT_RETVAL( __ret ); |
|
return __ret; |
} // raise() |
#endif // ifdef CYGIMP_LIBC_SIGNALS_RAISE_INLINE |
|
|
#ifdef __cplusplus |
} // extern "C" |
#endif |
|
#endif // CYGONCE_LIBC_SIGNALS_SIGNAL_INL multiple inclusion protection |
|
// EOF signal.inl |
/v2_0/ChangeLog
0,0 → 1,101
2003-02-24 Jonathan Larmour <jifl@eCosCentric.com> |
|
* cdl/signals.cdl: Fix doc link. |
|
2003-02-13 Jonathan Larmour <jifl@eCosCentric.com> |
|
* include/signal.inl (raise): Use if/else rather than switch to |
avoid GCC 3.2 bug. |
|
2002-05-23 Jesper Skov <jskov@redhat.com> |
|
* cdl/signals.cdl: Don't build signal2 test when it'll N/A |
anyway. |
|
2002-04-30 Jesper Skov <jskov@redhat.com> |
|
* cdl/signals.cdl: Added |
CYGPKG_LIBC_SIGNALS_TESTS_SIGNAL2_TEST3_SKIP. |
Removed again. |
|
* tests/signal2.c: Instead check for |
CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO to decide if test3 is |
appropriate. |
|
2001-05-02 Nick Garnett <nickg@cygnus.co.uk> |
|
[x86 branch] |
* tests/signal2.c (cause_memerror): Added code for I386 |
architecture to provoke General Protection Fault. |
|
2001-04-27 Bart Veer <bartv@redhat.com> |
|
* tests/signal2.c (main): |
The FPE test is applicable to the updated synthetic target. |
|
2001-04-17 Bart Veer <bartv@redhat.com> |
|
* cdl/signals.cdl: |
Synthetic target now supports exceptions |
|
2000-09-14 Jesper Skov <jskov@redhat.com> |
|
* tests/signal/signal2.c: Prevent that GCC optimizes away the |
cause_fpe call. |
|
2000-09-07 Jesper Skov <jskov@redhat.com> |
|
* tests/signal2.c: Fix compiler warning. Also reset FPU exception |
vectors. Check for SH7708, not EDK7708 in test3 skip code. |
* tests/signal1.c: Fix compiler warning. |
|
2000-05-16 Jesper Skov <jskov@redhat.com> |
|
* tests/signal2.c: Also reset DIV_BY_ZERO vector. |
|
2000-05-08 Jesper Skov <jskov@redhat.com> |
|
* tests/signal2.c: Skip test3 on SH7709A. |
|
2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk> |
|
* New package |
Separated original libc out into separate packages on functional |
boundaries. |
Header files are now managed by isoinfra package |
Plenty of cleanups done, but no major functionality changes |
|
//=========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//=========================================================================== |
/v2_0/src/raise.cxx
0,0 → 1,78
//======================================================================== |
// |
// raise.cxx |
// |
// ISO C and POSIX 1003.1 signals implementation for raise() |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Provide implementation of ISO C and POSIX 1003.1 raise() |
// Description: This file provides the linkable symbol version of raise() |
// Usage: |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
|
// The following lines allow __raise() to be included non-inline which |
// actually defines it as a function here |
#define CYGPRI_LIBC_SIGNALS_RAISE_INLINE |
#ifndef CYGIMP_LIBC_SIGNALS_RAISE_INLINE |
# define CYGIMP_LIBC_SIGNALS_RAISE_INLINE |
#endif |
|
#include <signal.h> // Main signals definitions |
|
// GLOBALS |
|
#ifdef CYGDBG_USE_TRACING |
cyg_uint8 |
cyg_libc_signals_raise_trace_level = CYGNUM_LIBC_SIGNALS_RAISE_TRACE_LEVEL; |
#endif |
|
// EOF raise.cxx |
/v2_0/src/siginit.cxx
0,0 → 1,434
//======================================================================== |
// |
// siginit.cxx |
// |
// ISO C and POSIX 1003.1 signals implementation |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Provide implementation of ISO C and POSIX 1003.1 signals |
// Description: This file initializes all hardware exceptions, |
// initializes the signal handler table and provides the |
// default action function for signals |
// Usage: |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
#include <signal.h> // Main signals definitions |
#include <cyg/infra/cyg_ass.h> // Assertion infrastructure |
#include <cyg/infra/cyg_trac.h> // Tracing infrastructure |
#include <stdlib.h> // exit() |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
# include <pkgconf/kernel.h> // required for kernel includes |
# include <cyg/kernel/except.hxx> // Kernel exception API |
# include <cyg/kernel/thread.hxx> // Cyg_Thread::self() |
# include <cyg/kernel/thread.inl> // inline definitions for above |
# include <cyg/kernel/intr.hxx> // Interrupt enable |
# include <cyg/hal/hal_intr.h> // HAL interrupt control |
#endif |
|
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
# include <pkgconf/kernel.h> // required for kernel includes |
# include <cyg/kernel/mutex.hxx> |
#endif |
|
// TYPE DEFINITIONS |
|
// define dummy class to allow initialization of cyg_libc_signal_handlers |
|
class Cyg_libc_signals_dummy_init_class { |
public: |
Cyg_libc_signals_dummy_init_class(); |
}; |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
struct exception_signal_mapping_t { |
cyg_code exception; |
int signal; |
}; |
|
// EXTERNS |
|
extern cyg_exception_handler cyg_null_exception_handler; |
|
#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
// GLOBALS |
|
// main signal handlers |
__sighandler_t cyg_libc_signal_handlers[CYGNUM_LIBC_SIGNALS]; |
|
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
Cyg_Mutex cyg_libc_signal_handlers_mutex CYG_INIT_PRIORITY(LIBC); |
#endif |
|
// STATICS |
|
// dummy object to invoke constructor |
static Cyg_libc_signals_dummy_init_class |
cyg_libc_signals_dummy_init_obj CYG_INIT_PRIORITY(LIBC); |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
# ifdef CYGDBG_USE_TRACING |
static cyg_uint8 cyg_libc_signals_hwhandler_trace_level = |
CYGNUM_LIBC_SIGNALS_HWHANDLER_TRACE_LEVEL; |
# define TL1 (0 < cyg_libc_signals_hwhandler_trace_level) |
# endif |
|
# ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS |
// old exception info so we can chain |
// FIXME: consider malloced linked list config option |
static struct { |
cyg_exception_handler *old_handler; |
CYG_ADDRWORD old_data; |
} exception_chain_data[CYGNUM_HAL_EXCEPTION_COUNT]; |
# endif |
|
// struct that maps exceptions to signals |
static const struct exception_signal_mapping_t |
exception_signal_mapping[] = { |
|
#ifdef CYGNUM_HAL_EXCEPTION_DATA_ACCESS |
{CYGNUM_HAL_EXCEPTION_DATA_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_WRITE |
{CYGNUM_HAL_EXCEPTION_DATA_WRITE, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_ACCESS |
{CYGNUM_HAL_EXCEPTION_CODE_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_WRITE |
{CYGNUM_HAL_EXCEPTION_CODE_WRITE, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_EXECUTE |
{CYGNUM_HAL_EXCEPTION_CODE_EXECUTE, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_IO_ACCESS |
{CYGNUM_HAL_EXCEPTION_IO_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_IO_WRITE |
{CYGNUM_HAL_EXCEPTION_IO_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS |
{CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_ACCESS, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_WRITE |
{CYGNUM_HAL_EXCEPTION_DATA_TLBMISS_WRITE, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_ACCESS |
{CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_ACCESS, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_WRITE |
{CYGNUM_HAL_EXCEPTION_CODE_TLBMISS_WRITE, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_ACCESS |
{CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_ACCESS, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_WRITE |
{CYGNUM_HAL_EXCEPTION_DATA_TLBERROR_WRITE, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_ACCESS |
{CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_ACCESS, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_WRITE |
{CYGNUM_HAL_EXCEPTION_CODE_TLBERROR_WRITE, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS |
{CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_WRITE |
{CYGNUM_HAL_EXCEPTION_DATA_UNALIGNED_WRITE, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_ACCESS |
{CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_ACCESS, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_WRITE |
{CYGNUM_HAL_EXCEPTION_IO_UNALIGNED_WRITE, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION |
{CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION, SIGILL}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_INTERRUPT |
{CYGNUM_HAL_EXCEPTION_INTERRUPT, SIGINT}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_TRAP |
{CYGNUM_HAL_EXCEPTION_TRAP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO |
{CYGNUM_HAL_EXCEPTION_DIV_BY_ZERO, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_OVERFLOW |
{CYGNUM_HAL_EXCEPTION_OVERFLOW, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_BOUNDS |
{CYGNUM_HAL_EXCEPTION_BOUNDS, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_SINGLE_STEP |
{CYGNUM_HAL_EXCEPTION_SINGLE_STEP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP |
{CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_PERIPHERAL_BP |
{CYGNUM_HAL_EXCEPTION_PERIPHERAL_BP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DATA_BP |
{CYGNUM_HAL_EXCEPTION_DATA_BP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_DEVELOPMENT_BP |
{CYGNUM_HAL_EXCEPTION_DEVELOPMENT_BP, SIGTRAP}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW |
{CYGNUM_HAL_EXCEPTION_STACK_OVERFLOW, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_STACK_FAULT |
{CYGNUM_HAL_EXCEPTION_STACK_FAULT, SIGSEGV}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_PARITY |
{CYGNUM_HAL_EXCEPTION_PARITY, SIGBUS}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU |
{CYGNUM_HAL_EXCEPTION_FPU, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU_NOT_AVAIL |
{CYGNUM_HAL_EXCEPTION_FPU_NOT_AVAIL, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU_OVERFLOW |
{CYGNUM_HAL_EXCEPTION_FPU_OVERFLOW, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU_UNDERFLOW |
{CYGNUM_HAL_EXCEPTION_FPU_UNDERFLOW, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO |
{CYGNUM_HAL_EXCEPTION_FPU_DIV_BY_ZERO, SIGFPE}, |
#endif |
#ifdef CYGNUM_HAL_EXCEPTION_SYSTEM_CALL |
{CYGNUM_HAL_EXCEPTION_SYSTEM_CALL, SIGSYS}, |
#endif |
{0, 0} // dummy value to ensure compiler is happy |
}; |
|
|
// FUNCTIONS |
|
///////////////////////////////////////// |
// cyg_libc_signals_hwexcept_handler() // |
///////////////////////////////////////// |
|
// FIXME: should be able to get this work with |
// CYGSEM_KERNEL_EXCEPTIONS_DECODE disabled as well as enabled |
static void |
cyg_libc_signals_hwexcept_handler( CYG_ADDRWORD data, cyg_code exception, |
CYG_ADDRWORD info) |
{ |
int signal = (int)data; |
int ret; |
|
CYG_REPORT_FUNCNAME("cyg_libc_signals_hwexcept_handler"); |
|
CYG_REPORT_FUNCARG3( "data = %08x, exception = %d, info = %08x", |
data, exception, info ); |
|
#ifdef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL |
CYG_PRECONDITION((signal > 0) && (signal < CYGNUM_LIBC_SIGNALS), |
"Signal number not valid!"); |
#endif |
|
// chain first as it may be more useful more low-level stuff needed |
#ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS |
// map exception to 0..CYGNUM_HAL_EXCEPTION_COUNT |
exception -= CYGNUM_HAL_EXCEPTION_MIN; |
|
// special case for null handler since it is only for uncaught exceptions |
|
if (exception_chain_data[exception].old_handler != |
cyg_null_exception_handler) { |
(*exception_chain_data[exception].old_handler)( |
exception_chain_data[exception].old_data, exception, info); |
CYG_TRACE0(TL1, "Chained exception handler returned"); |
} // if |
#endif |
|
#ifndef CYGSEM_LIBC_SIGNALS_BAD_SIGNAL_FATAL |
// if not fatal, silently return |
if ((signal <= 0) || (signal >= CYGNUM_LIBC_SIGNALS)) { |
CYG_REPORT_RETURN(); |
return; |
} |
#endif |
|
CYG_TRACE0(TL1, "Enabling interrupts"); |
HAL_ENABLE_INTERRUPTS(); |
|
CYG_TRACE0(TL1, "Raising signal"); |
ret = raise(signal); |
|
if (ret) { |
CYG_TRACE1(TL1, "raise() returned non-zero value %d!!!", ret); |
} // if |
|
CYG_REPORT_RETURN(); |
} // cyg_libc_signals_hwexcept_handler() |
|
|
////////////////// |
// reg_except() // |
////////////////// |
|
static void inline |
reg_except( cyg_code exception, int signal ) |
{ |
Cyg_Thread::self()->register_exception( |
exception, &cyg_libc_signals_hwexcept_handler, (CYG_ADDRWORD)signal, |
#ifdef CYGSEM_LIBC_SIGNALS_CHAIN_HWEXCEPTIONS |
&exception_chain_data[exception - |
CYGNUM_HAL_EXCEPTION_MIN].old_handler, |
&exception_chain_data[exception - CYGNUM_HAL_EXCEPTION_MIN].old_data |
#else |
NULL, NULL |
#endif |
); |
|
} // reg_except(); |
|
#endif // ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
|
/////////////////////////////////////////////////// |
// Cyg_libc_signals_dummy_init_class constructor // |
/////////////////////////////////////////////////// |
|
Cyg_libc_signals_dummy_init_class::Cyg_libc_signals_dummy_init_class() |
{ |
cyg_ucount8 i; |
|
CYG_REPORT_FUNCNAME("Cyg_libc_signals_dummy_init_class constructor"); |
|
// FIXME: some should be SIG_IGN? |
for (i=0; i<CYGNUM_LIBC_SIGNALS; i++) |
cyg_libc_signal_handlers[i] = SIG_DFL; |
|
#ifdef CYGSEM_LIBC_SIGNALS_HWEXCEPTIONS |
// go through the entire array of exceptions, _but_ subtract 1 for |
// the dummy at the end |
for (i=0; i < (sizeof(exception_signal_mapping) / |
sizeof(exception_signal_mapping_t) - 1); i++) { |
CYG_ASSERT( (exception_signal_mapping[i].exception <= |
CYGNUM_HAL_EXCEPTION_MAX) && |
(exception_signal_mapping[i].exception >= |
CYGNUM_HAL_EXCEPTION_MIN), |
"Asked to register bad exception"); |
|
CYG_ASSERT( (exception_signal_mapping[i].signal > 0) && |
(exception_signal_mapping[i].signal < |
CYGNUM_LIBC_SIGNALS), "Asked to register bad signal" ); |
|
reg_except( exception_signal_mapping[i].exception, |
exception_signal_mapping[i].signal); |
} |
#endif |
|
CYG_REPORT_RETURN(); |
} // Cyg_libc_signals_dummy_init_class() constructor |
|
|
//////////////////////////////////////// |
// cyg_libc_signals_default_handler() // |
//////////////////////////////////////// |
|
// Default signal handler - SIG_DFL |
externC void |
cyg_libc_signals_default_handler(int sig) |
{ |
CYG_REPORT_FUNCNAME( "cyg_libc_signals_default_handler" ); |
|
CYG_REPORT_FUNCARG1( "signal number = %d", sig ); |
|
exit(1000 + sig); // FIXME |
|
CYG_REPORT_RETURN(); |
} // cyg_libc_signals_default_handler() |
|
#ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
///////////////////////////////////// |
// cyg_libc_signals_lock_do_lock() // |
///////////////////////////////////// |
|
externC cyg_bool |
cyg_libc_signals_lock_do_lock(void) |
{ |
cyg_bool ret; |
CYG_REPORT_FUNCNAMETYPE("cyg_libc_signals_lock_do_lock", "returning %d"); |
|
ret = cyg_libc_signal_handlers_mutex.lock(); |
|
CYG_REPORT_RETVAL(ret); |
|
return ret; |
} // cyg_libc_signals_lock_do_lock() |
|
/////////////////////////////////////// |
// cyg_libc_signals_lock_do_unlock() // |
/////////////////////////////////////// |
|
externC void |
cyg_libc_signals_lock_do_unlock(void) |
{ |
CYG_REPORT_FUNCNAME("cyg_libc_signals_lock_do_unlock"); |
|
cyg_libc_signal_handlers_mutex.unlock(); |
|
CYG_REPORT_RETURN(); |
} // cyg_libc_signals_lock_do_unlock() |
|
#endif // ifdef CYGSEM_LIBC_SIGNALS_THREAD_SAFE |
|
// EOF siginit.cxx |
/v2_0/src/signal.cxx
0,0 → 1,71
//======================================================================== |
// |
// signal.cxx |
// |
// ISO C and POSIX 1003.1 signals implementation |
// |
//======================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//======================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jlarmour |
// Contributors: |
// Date: 2000-04-18 |
// Purpose: Provide implementation of ISO C and POSIX 1003.1 signals |
// Description: This file provides the linkable symbol version of raise() |
// Usage: |
// |
//####DESCRIPTIONEND#### |
// |
//======================================================================== |
|
// CONFIGURATION |
|
#include <pkgconf/libc_signals.h> // libc signals configuration |
|
// INCLUDES |
|
#include <cyg/infra/cyg_type.h> // Common type definitions and support |
|
// The following lines allow __raise() to be included non-inline which |
// actually defines it as a function here |
#define CYGPRI_LIBC_SIGNALS_SIGNAL_INLINE |
#ifndef CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE |
# define CYGIMP_LIBC_SIGNALS_SIGNAL_INLINE |
#endif |
|
#include <signal.h> // Main signals definitions |
|
// EOF signal.cxx |