diff --git a/programs/develop/open watcom/trunk/clib.wpj b/programs/develop/open watcom/trunk/clib.wpj index aec13c7f8a..4fed42714b 100644 --- a/programs/develop/open watcom/trunk/clib.wpj +++ b/programs/develop/open watcom/trunk/clib.wpj @@ -4,10 +4,10 @@ projectIdent VpeMain 1 WRect --32 -330 -10304 -9950 +0 +370 +10240 +9870 2 MProject 3 @@ -42,8 +42,8 @@ WRect WFileName 10 clib_r.tgt -0 -0 +10 +42 11 VComponent 12 @@ -59,5 +59,5 @@ WFileName 7 crt.tgt 0 -0 -11 +17 +8 diff --git a/programs/develop/open watcom/trunk/clib/crt/chk8087.c b/programs/develop/open watcom/trunk/clib/crt/chk8087.c index e64584e90f..1ebbd5efde 100644 --- a/programs/develop/open watcom/trunk/clib/crt/chk8087.c +++ b/programs/develop/open watcom/trunk/clib/crt/chk8087.c @@ -1,344 +1,191 @@ -/**************************************************************************** -* -* Open Watcom Project -* -* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. -* -* ======================================================================== -* -* This file contains Original Code and/or Modifications of Original -* Code as defined in and that are subject to the Sybase Open Watcom -* Public License version 1.0 (the 'License'). You may not use this file -* except in compliance with the License. BY USING THIS FILE YOU AGREE TO -* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is -* provided with the Original Code and Modifications, and is also -* available at www.sybase.com/developer/opensource. -* -* The Original Code and all software distributed under the License are -* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM -* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF -* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR -* NON-INFRINGEMENT. Please see the License for the specific language -* governing rights and limitations under the License. -* -* ======================================================================== -* -* Description: __chk8087 and other FPU related functions. -* -****************************************************************************/ - - -#include "variety.h" -#include -#include -#if defined( __OS2__ ) -#endif -#if defined( __WINDOWS__ ) - #include -#endif - -#include "rtdata.h" -#include "exitwmsg.h" -#include "87state.h" - -extern void __GrabFP87( void ); - -extern unsigned short __8087cw; -#pragma aux __8087cw "*"; - -#if defined( __DOS_086__ ) -extern unsigned char __dos87real; -#pragma aux __dos87real "*"; - -extern unsigned short __dos87emucall; -#pragma aux __dos87emucall "*"; -#endif - -extern void __init_80x87( void ); -#if defined( __DOS_086__ ) -#pragma aux __init_80x87 "*" = \ - ".8087" \ - "cmp __dos87real,0" \ - "jz l1" \ - "finit" \ - "fldcw __8087cw" \ -"l1: cmp __dos87emucall,0" \ - "jz l2" \ - "mov ax,1" \ - "call __dos87emucall" \ -"l2:" ; -#else -#pragma aux __init_80x87 "*" = \ - ".8087" \ - "finit" \ - "fldcw __8087cw" ; -#endif - -/* 0 => no 8087; 2 => 8087,287; 3=>387 */ -extern unsigned char _WCI86NEAR __x87id( void ); -#pragma aux __x87id "*"; - -#if !defined( __UNIX__ ) && !defined( __OS2_386__ ) - -extern void __fsave( _87state * ); -extern void __frstor( _87state * ); - -#if defined( __386__ ) - - #pragma aux __fsave = \ - 0x9b 0xdd 0x30 /* fsave [eax] ; save the 8087 state */ \ - 0x9b /* wait */ \ - parm routine [eax]; - - #pragma aux __frstor = \ - 0xdd 0x20 /* frstor [eax] ; restore the 8087 */ \ - 0x9b /* wait ; wait */ \ - parm routine [eax]; - -#else /* __286__ */ - - #if defined( __BIG_DATA__ ) - #pragma aux __fsave = \ - 0x53 /* push bx */ \ - 0x1e /* push ds */ \ - 0x8e 0xda /* mov ds,dx */ \ - 0x8b 0xd8 /* mov bx,ax */ \ - 0x9b 0xdd 0x37 /* fsave [bx] */ \ - 0x90 0x9b /* fwait */ \ - 0x1f /* pop ds */ \ - 0x5b /* pop bx */ \ - parm routine [dx ax]; - #else - #pragma aux __fsave = \ - 0x53 /* push bx */ \ - 0x8b 0xd8 /* mov bx,ax */ \ - 0x9b 0xdd 0x37 /* fsave [bx] */ \ - 0x90 0x9b /* fwait */ \ - 0x5b /* pop bx */ \ - parm routine [ax]; - #endif - - #if defined( __BIG_DATA__ ) - #pragma aux __frstor = \ - 0x53 /* push bx */ \ - 0x1e /* push ds */ \ - 0x8e 0xda /* mov ds,dx */ \ - 0x8b 0xd8 /* mov bx,ax */ \ - 0x9b 0xdd 0x27 /* frstor [bx] */ \ - 0x90 0x9b /* fwait */ \ - 0x1f /* pop ds */ \ - 0x5b /* pop bx */ \ - parm routine [dx ax]; - #else - #pragma aux __frstor = \ - 0x53 /* push bx */ \ - 0x8b 0xd8 /* mov bx,ax */ \ - 0x9b 0xdd 0x27 /* frstor [bx] */ \ - 0x90 0x9b /* fwait */ \ - 0x5b /* pop bx */ \ - parm routine [ax]; - #endif - -#endif - -static void __save_8087( _87state * __fs ) -{ - __fsave( __fs ); -} - -static void __rest_8087( _87state * __fs ) -{ - __frstor( __fs ); -} -#endif /* !__UNIX__ && && !__OS2__ */ - -_WCRTLINK void _fpreset( void ) -{ - if( _RWD_8087 != 0 ) { - __init_80x87(); - } -} - -void __init_8087( void ) -{ -#if !defined( __UNIX__ ) && !defined( __OS2_386__ ) - if( _RWD_real87 != 0 ) - { /* if our emulator, don't worry */ - _RWD_Save8087 = __save_8087; /* point to real save 8087 routine */ - _RWD_Rest8087 = __rest_8087; /* point to real restore 8087 routine */ - } -#endif - _fpreset(); -} - -#if defined( __DOS__ ) || defined( __OS2_286__ ) - -void _WCI86FAR __default_sigfpe_handler( int fpe_sig ) -{ - __fatal_runtime_error( "Floating point exception\r\n", EXIT_FAILURE ); -} -#endif - -#if defined( __OS2__ ) - -void __chk8087( void ) -/********************/ -{ - char devinfo; - -#if defined( __386__ ) - DosDevConfig( &devinfo, DEVINFO_COPROCESSOR ); - if( devinfo == 0 ) { - _RWD_real87 = 0; - } else { - _RWD_real87 = __x87id(); - } - _RWD_8087 = _RWD_real87; -#else - if( _RWD_8087 == 0 ) { - DosDevConfig( &devinfo, 3, 0 ); - if( devinfo == 0 ) { - _RWD_real87 = 0; - } else { - _RWD_real87 = __x87id(); - } - _RWD_8087 = _RWD_real87; - } - if( _RWD_real87 ) { - __GrabFP87(); - } - if( _RWD_8087 ) { - _RWD_FPE_handler = __default_sigfpe_handler; - } -#endif - _fpreset(); -} - -#elif defined( __QNX__ ) - -void __chk8087( void ) -/********************/ -{ - extern char __87; - extern char __r87; - - _RWD_real87 = __r87; - _RWD_8087 = __87; - _fpreset(); -} - -#elif defined( __LINUX__ ) - -void __chk8087( void ) -/********************/ -{ - // TODO: We really need to call Linux and determine if the machine - // has a real FPU or not, so we can properly work with an FPU - // emulator. - _RWD_real87 = __x87id(); - _RWD_8087 = _RWD_real87; - _fpreset(); -} - -#elif defined( __NETWARE__ ) - -extern short __87present( void ); -#pragma aux __87present = \ - "smsw ax ", \ - "test ax, 4 ", \ - "jne no_emu ", \ - "xor ax, ax ", \ - "no_emu: ", \ - "mov ax, 1 " \ -value [ ax ]; - -extern void __chk8087( void ) -/*****************************/ -{ - if( _RWD_8087 == 0 ) { - if( __87present() ) { - _RWD_8087 = 3; /* 387 */ - _RWD_real87 = 3; - } - __init_80x87(); - } -} - -#elif defined( __NT__ ) - -void __chk8087( void ) -/********************/ -{ - _RWD_real87 = __x87id(); - _RWD_8087 = _RWD_real87; - __init_8087(); -} - -#elif defined( __DOS__ ) - -void __chk8087( void ) -/********************/ -{ - if( _RWD_8087 != 0 ) { /* if we already know we have an 80x87 */ -#if !defined( __386__ ) - if( __dos87real ) - __GrabFP87(); -#endif - _RWD_FPE_handler = __default_sigfpe_handler; - return; /* this prevents real87 from being set */ - } /* when we have an emulator */ - _RWD_real87 = __x87id(); /* if a coprocessor is present then we */ - _RWD_8087 = _RWD_real87; /* initialize even when NO87 is defined */ -#if !defined( __386__ ) - __dos87real = _RWD_real87; -#endif - __init_8087(); /* this handles the fpi87 and NO87 case */ - if( _RWD_no87 != 0 ) { /* if NO87 environment var is defined */ - _RWD_8087 = 0; /* then we want to pretend that the */ - _RWD_real87 = 0; /* coprocessor doesn't exist */ - } - if( _RWD_real87 ) { - __GrabFP87(); - } - if( _RWD_8087 ) { - _RWD_FPE_handler = __default_sigfpe_handler; - } -} - -#elif defined( __WINDOWS__ ) - -void __chk8087( void ) -/********************/ -{ - if( _RWD_8087 != 0 ) /* if we already know we have an 80x87 */ - return; /* this prevents real87 from being set */ - /* when we have an emulator */ - if( GetWinFlags() & WF_80x87 ) { /* if a coprocessor is present then we */ - #if defined( __386__ ) - extern void pascal _FloatingPoint( void ); - _FloatingPoint(); - #endif - _RWD_real87 = __x87id(); /* initialize even when NO87 is defined */ - _RWD_8087 = _RWD_real87; /* this handles the fpi87 and NO87 case */ - __init_8087(); - } else { - #if defined( __386__ ) - // check to see if emulator is loaded - union REGS regs; - regs.w.ax = 0xfa00; - int86( 0x2f, ®s, ®s ); - if( regs.w.ax == 0x0666 ) { /* check for emulator present */ - _RWD_real87 = __x87id(); /* initialize even when NO87 is defined */ - _RWD_8087 = _RWD_real87; /* this handles the fpi87 and NO87 case */ - __init_8087(); - } - #endif - } - if( _RWD_no87 != 0 ) { /* if NO87 environment var is defined */ - _RWD_8087 = 0; /* then we want to pretend that the */ - _RWD_real87 = 0; /* coprocessor doesn't exist */ - } -} - -#endif +/**************************************************************************** +* +* Open Watcom Project +* +* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +* +* ======================================================================== +* +* This file contains Original Code and/or Modifications of Original +* Code as defined in and that are subject to the Sybase Open Watcom +* Public License version 1.0 (the 'License'). You may not use this file +* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +* provided with the Original Code and Modifications, and is also +* available at www.sybase.com/developer/opensource. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +* NON-INFRINGEMENT. Please see the License for the specific language +* governing rights and limitations under the License. +* +* ======================================================================== +* +* Description: __chk8087 and other FPU related functions. +* +****************************************************************************/ + + +#include "variety.h" +#include +#include +#if defined( __OS2__ ) +#endif +#if defined( __WINDOWS__ ) + #include +#endif + +#include "rtdata.h" +#include "exitwmsg.h" +#include "87state.h" + +extern void __GrabFP87( void ); + +extern unsigned short __8087cw; +#pragma aux __8087cw "*"; + +#if defined( __DOS_086__ ) +extern unsigned char __dos87real; +#pragma aux __dos87real "*"; + +extern unsigned short __dos87emucall; +#pragma aux __dos87emucall "*"; +#endif + +extern void __init_80x87( void ); +#if defined( __DOS_086__ ) +#pragma aux __init_80x87 "*" = \ + ".8087" \ + "cmp __dos87real,0" \ + "jz l1" \ + "finit" \ + "fldcw __8087cw" \ +"l1: cmp __dos87emucall,0" \ + "jz l2" \ + "mov ax,1" \ + "call __dos87emucall" \ +"l2:" ; +#else +#pragma aux __init_80x87 "*" = \ + ".8087" \ + "finit" \ + "fldcw __8087cw" ; +#endif + +/* 0 => no 8087; 2 => 8087,287; 3=>387 */ +extern unsigned char _WCI86NEAR __x87id( void ); +#pragma aux __x87id "*"; + +#if !defined( __UNIX__ ) && !defined( __OS2_386__ ) + +extern void __fsave( _87state * ); +extern void __frstor( _87state * ); + +#if defined( __386__ ) + + #pragma aux __fsave = \ + 0x9b 0xdd 0x30 /* fsave [eax] ; save the 8087 state */ \ + 0x9b /* wait */ \ + parm routine [eax]; + + #pragma aux __frstor = \ + 0xdd 0x20 /* frstor [eax] ; restore the 8087 */ \ + 0x9b /* wait ; wait */ \ + parm routine [eax]; + +#else /* __286__ */ + + #if defined( __BIG_DATA__ ) + #pragma aux __fsave = \ + 0x53 /* push bx */ \ + 0x1e /* push ds */ \ + 0x8e 0xda /* mov ds,dx */ \ + 0x8b 0xd8 /* mov bx,ax */ \ + 0x9b 0xdd 0x37 /* fsave [bx] */ \ + 0x90 0x9b /* fwait */ \ + 0x1f /* pop ds */ \ + 0x5b /* pop bx */ \ + parm routine [dx ax]; + #else + #pragma aux __fsave = \ + 0x53 /* push bx */ \ + 0x8b 0xd8 /* mov bx,ax */ \ + 0x9b 0xdd 0x37 /* fsave [bx] */ \ + 0x90 0x9b /* fwait */ \ + 0x5b /* pop bx */ \ + parm routine [ax]; + #endif + + #if defined( __BIG_DATA__ ) + #pragma aux __frstor = \ + 0x53 /* push bx */ \ + 0x1e /* push ds */ \ + 0x8e 0xda /* mov ds,dx */ \ + 0x8b 0xd8 /* mov bx,ax */ \ + 0x9b 0xdd 0x27 /* frstor [bx] */ \ + 0x90 0x9b /* fwait */ \ + 0x1f /* pop ds */ \ + 0x5b /* pop bx */ \ + parm routine [dx ax]; + #else + #pragma aux __frstor = \ + 0x53 /* push bx */ \ + 0x8b 0xd8 /* mov bx,ax */ \ + 0x9b 0xdd 0x27 /* frstor [bx] */ \ + 0x90 0x9b /* fwait */ \ + 0x5b /* pop bx */ \ + parm routine [ax]; + #endif + +#endif + +static void __save_8087( _87state * __fs ) +{ + __fsave( __fs ); +} + +static void __rest_8087( _87state * __fs ) +{ + __frstor( __fs ); +} +#endif /* !__UNIX__ && && !__OS2__ */ + +_WCRTLINK void _fpreset( void ) +{ + if( _RWD_8087 != 0 ) { + __init_80x87(); + } +} + +void __init_8087( void ) +{ +#if !defined( __UNIX__ ) && !defined( __OS2_386__ ) + if( _RWD_real87 != 0 ) + { /* if our emulator, don't worry */ + _RWD_Save8087 = __save_8087; /* point to real save 8087 routine */ + _RWD_Rest8087 = __rest_8087; /* point to real restore 8087 routine */ + } +#endif + _fpreset(); +} + +#if defined( __DOS__ ) || defined( __OS2_286__ ) + +void _WCI86FAR __default_sigfpe_handler( int fpe_sig ) +{ + __fatal_runtime_error( "Floating point exception\r\n", EXIT_FAILURE ); +} +#endif + +void __chk8087( void ) +/********************/ +{ + _RWD_real87 = __x87id(); + _RWD_8087 = _RWD_real87; + __init_8087(); + __GrabFP87(); +} + diff --git a/programs/develop/open watcom/trunk/clib/fpu/fpe387.asm b/programs/develop/open watcom/trunk/clib/fpu/fpe387.asm new file mode 100644 index 0000000000..531508d0aa --- /dev/null +++ b/programs/develop/open watcom/trunk/clib/fpu/fpe387.asm @@ -0,0 +1,102 @@ +;***************************************************************************** +;* +;* Open Watcom Project +;* +;* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +;* +;* ======================================================================== +;* +;* This file contains Original Code and/or Modifications of Original +;* Code as defined in and that are subject to the Sybase Open Watcom +;* Public License version 1.0 (the 'License'). You may not use this file +;* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +;* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +;* provided with the Original Code and Modifications, and is also +;* available at www.sybase.com/developer/opensource. +;* +;* The Original Code and all software distributed under the License are +;* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +;* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +;* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +;* NON-INFRINGEMENT. Please see the License for the specific language +;* governing rights and limitations under the License. +;* +;* ======================================================================== +;* +;* Description: Connect/disconnect 80x87 interrupt handler. +;* +;***************************************************************************** + + +.8087 +.386p + +include struct.inc +include mdef.inc + + xref __FPE2Handler_ + + modstart fpe387 + + datasegment + +Save87 dd 0 + enddata + + + xdefp "C",__Init_FPE_handler +defp __Init_FPE_handler + _guess ; guess initialization required + cmp dword ptr Save87,0 ; - quit if already initialized + _quif ne ; - ... + _admit ; admit: already initialized + ret ; - return + _endguess ; endguess + push EAX ; save registers + push EBX ; ... + push ECX ; ... + + mov EAX, 68 + mov EBX, 15 + lea ECX, __FPE2Handler_ + int 40h ; set new #FPE handler + mov Save87, EAX ; save old handler + + pop ECX ; ... + pop EBX ; ... + pop EAX ; ... + ret ; return +endproc __Init_FPE_handler + + + xdefp "C",__Fini_FPE_handler +defp __Fini_FPE_handler + cmp dword ptr Save87,0 ; if not initialized + _if e ; - then + ret ; - return + _endif ; endif + push EAX ; save registers + push EBX ; ... + push EDX ; ... + sub ESP,4 ; allocate space for control word + fstcw word ptr [ESP] ; get control word + fwait ; ... + mov byte ptr [ESP],7Fh ; disable exception interrupts + fldcw word ptr [ESP] ; ... + fwait ; ... + add ESP,4 ; remove temporary + + mov EAX, 68 + mov EBX, 15 + mov ECX, dword ptr Save87 + int 40h ; set new #FPE handler + + pop EDX ; ... + pop EBX ; ... + pop EAX ; ... + ret +endproc __Fini_FPE_handler + + endmod + end diff --git a/programs/develop/open watcom/trunk/clib/fpu/fpeinth.asm b/programs/develop/open watcom/trunk/clib/fpu/fpeinth.asm index c97a77be56..8b131f1720 100644 --- a/programs/develop/open watcom/trunk/clib/fpu/fpeinth.asm +++ b/programs/develop/open watcom/trunk/clib/fpu/fpeinth.asm @@ -1,374 +1,329 @@ -;***************************************************************************** -;* -;* Open Watcom Project -;* -;* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. -;* -;* ======================================================================== -;* -;* This file contains Original Code and/or Modifications of Original -;* Code as defined in and that are subject to the Sybase Open Watcom -;* Public License version 1.0 (the 'License'). You may not use this file -;* except in compliance with the License. BY USING THIS FILE YOU AGREE TO -;* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is -;* provided with the Original Code and Modifications, and is also -;* available at www.sybase.com/developer/opensource. -;* -;* The Original Code and all software distributed under the License are -;* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -;* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM -;* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF -;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR -;* NON-INFRINGEMENT. Please see the License for the specific language -;* governing rights and limitations under the License. -;* -;* ======================================================================== -;* -;* Description: 80x87 interrupt handler. -;* -;***************************************************************************** - - -;;; //e:\watcom\src\bld\watcom\h;E:\WATCOM\H;E:\WATCOM\H\NT - -.8087 -.386p - -include struct.inc -include mdef.inc -include stword.inc -include env387.inc -include fstatus.inc - -ifndef __NETWARE__ - xref __GETDS -endif - xref __8087 ; indicate that NDP instructions are present - - modstart fpeinth - - datasegment - - extrn __FPE_exception_: proc - extrn "C",_STACKLOW : dword - -TInf db 00h,00h,00h,00h,00h,00h,00h,80h,0ffh,7fh -F8Inf db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0efh,7fh -F4Inf db 0ffh,0ffh,7fh,7fh - db 512 dup(0) -FPEStk label byte -SaveSS dw 0 -SaveESP dd 0 - enddata - - -; Interrupt handler for 80x87 exceptions. - -xdefp __FPEHandler_ -defp __FPEHandler_ -public "C",__FPEHandlerStart_ -__FPEHandlerStart_ label byte - push EAX ; save reg - mov AL,20h ; issue EOI to 8259 controller - out 20h,AL ; ... - out 0a0h,AL ; issue EOI to slave 8259 - xor AX,AX ; clear busy signal - out 0f0h,AL ; ... - pop EAX ; restore regs -public __FPE2Handler_ -__FPE2Handler_ label byte - push EAX ; save regs - push EBX ; ... - push ECX ; ... - push EDX ; ... - push ESI ; ... - push EDI ; ... - push EBP ; ... - push DS ; ... - push ES ; ... - sub ESP,ENV_SIZE ; make room for environment information - mov EBP,ESP ; point to buffer for 80x87 environment - fnstenv [EBP] ; get 80x87 environment - fwait ; wait for 80x87 - fdisi ; disable interrupts - sti ; enable CPU interrupts -ifndef __NETWARE__ - ; call __GETDS ; load DS -endif -ifdef __NETWARE__ - ; push SS ; load DS - ; pop DS ; ... -endif - mov EDX,ENV_CW[EBP] ; get control word - not EDX ; flip the mask bits - mov DH,0FFh ; turn on top byte - and EDX,ENV_SW[EBP] ; get status word - ; mov ES,ENV_IP+4[EBP] ; get intruction address - mov EDI,ENV_IP[EBP] ; ... -opcode: mov BX,[EDI] ; get opcode - inc EDI ; point to next opcode - cmp BL,0d8h ; check if its the opcode - jb opcode ; ... - cmp BL,0dfh ; ... - ja opcode ; ... - ; mov ES,ENV_OP+4[EBP] ; get pointer to operand - mov EDI,ENV_OP[EBP] ; ... - xchg BL,BH ; get opcode in right position - mov CL,FPE_OK ; assume exception to be ignored - _guess ; guess precision exception - test DL,ST_EF_PR ; - check for precision exception - _quif e ; - quit if not precision exception - mov CL,FPE_INEXACT ; - indicate precision exception - _admit ; guess stack under/overflow - test DL,ST_EF_SF ; - check for stack under/overflow - _quif e ; - quit if not stack under/overflow - test DX,ST_C1 ; - check if underflow - _if e ; - if underflow - mov CL,FPE_STACKUNDERFLOW ; - - indicate stack underflow - _else ; - else - mov CL,FPE_STACKOVERFLOW ; - - indicate stack overflow - _endif ; - endif - _admit ; guess invalid operation - test DL,ST_EF_IO ; - check for invalid operation - _quif e ; - quit if not invalid operation - call InvalidOp ; - process invalid operation - _admit ; guess denormal operand - test DL,ST_EF_DO ; - check for denormal operand - _quif e ; - quit if not denormal operand - mov CL,FPE_DENORMAL ; - indicate underflow - _admit ; guess overflow - test DL,ST_EF_OF ; - check for overflow - _quif e ; - quit if not overflow - call KOOverFlow ; - process overflow exception - mov CL,FPE_OVERFLOW ; - set floating point error code - _admit ; guess underflow - test DL,ST_EF_UF ; - check for underflow - _quif e ; - quit if not underflow - mov CL,FPE_UNDERFLOW ; - indicate underflow - _admit ; guess divide by 0 - test DL,ST_EF_ZD ; - check for divide by zero - _quif e ; - quit if not divide by zero - call GetInf ; - process divide by zero - mov CL,FPE_ZERODIVIDE ; - indicate divide by zero - _endguess ; endguess - _guess ; guess exception to be handled - cmp CL,FPE_OK ; - check if exception allowed - _quif e ; - quit if exception not allowed -; cmp SaveSS,0 ; - check if already in handler -; _quif ne ; - quit if already in handler - push _STACKLOW ; - save old stack low - mov SaveSS,SS ; - save current stack pointer - mov SaveESP,ESP ; - ... - push DS ; - get new stack pointer - pop SS ; - ... - lea ESP,FPEStk ; - ... - lea EAX,FPEStk-512 ; - set stack low variable - mov _STACKLOW,EAX ; - set stack low variable - movzx EAX,CL ; - set floating point status - call __FPE_exception_ ; - call user's handler - mov SS,SaveSS ; - restore stack pointer - mov ESP,SaveESP ; - ... - pop _STACKLOW ; - restore old stacklow - mov SaveSS,0 ; - indicate handler can be re-entered - _endguess ; endguess - fclex ; clear exceptions that may have - ; occurred as a result of handling the - ; exception - and word ptr ENV_CW[EBP],0FF72h - fldcw word ptr ENV_CW[EBP] ; enable interrupts - fwait ; ... - add ESP,ENV_SIZE ; clean up stack - pop ES ; restore registers - pop DS ; ... - pop EBP ; ... - pop EDI ; ... - pop ESI ; ... - pop EDX ; ... - pop ECX ; ... - pop EBX ; ... - pop EAX ; ... - iretd ; return from interrupt handler -public "C",__FPEHandlerEnd_ -__FPEHandlerEnd_ label byte -endproc __FPEHandler_ - - -; Process invalid operation. - -InvalidOp proc near - mov CL,FPE_INVALID ; assume invalid operation - _guess ; guess it's square root - cmp BX,0D9FAh ; - ... - _quif ne ; - quit if it's not that instruction - mov CL,FPE_SQRTNEG ; - indicate sqrt(negative number) - ret ; - return - _endguess ; endguess - _guess ; guess it's square root - cmp BX,0D9F1h ; - ... - _quif ne ; - quit if it's not that instruction - mov CL,FPE_LOGERR ; - indicate sqrt(negative number) - ret ; - return - _endguess ; endguess - _guess ; guess: 'fprem' instruction - cmp BX,0D9F8h ; - check for 'fprem' 10-may-90 - _if ne ; - if not 'fprem' - cmp BX,0D9F5h ; - - check for 'fprem1' - _endif ; - endif - _quif ne ; - quit if not 'fprem' or 'fprem1' - mov CL,FPE_MODERR ; - indicate mod(negative number) - _admit ; guess: integer overflow - mov DX,BX ; - save op code - and DX,0310h ; - check for fist/fistp instruction - cmp DX,0310h ; - ... - _quif ne ; - quit if its not that instruction - mov CL,FPE_IOVERFLOW ; - indicate integer overflow - _admit ; guess it's floating point underflow -;; mov DX,BX ; - save op code - and DX,0110h ; - check if fst or fstp instruction - cmp DX,0110h ; - ... - _quif ne ; - quit if it's not that instruction -; Destination is short or long real and source register is an unnormal -; with exponent in range. - fstp st(0) ; - pop old result - fldz ; - load zero - mov DL,BL ; - save op code - and DL,0C0h ; - check the MOD bits of instruction - cmp DL,0C0h ; - ... - _if ne ; - if result to be placed in memory - call Store ; - - store result in memory - _endif ; - endif - test BL,08h ; - check if result to be popped - _if ne ; - if result to be popped - fstp st(0) ; - - pop the result - _endif ; - endif - mov CL,FPE_UNDERFLOW ; - indicate underflow - _admit ; guess it's divide - mov DX,BX ; - save op code - and DX,0130h ; - check for fdiv/fidiv instruction - cmp DX,0030h ; - ... - _quif ne ; - quit if it's not that instruction - mov DX,ENV_TW[EBP] ; - get tag word - mov CL,AH ; - get stack pointer - and CL,38h ; - ... - shr CL,2 ; - ... - ror DX,CL ; - make stack top low order bits - and DL,05h ; - check if top two elements are 0 - cmp DL,05h ; - ... - _quif ne ; - quif if they are not 0 - mov CL,FPE_ZERODIVIDE ; - indicate divide by zero - _endguess ; endguess - ret -endproc InvalidOp - - -; Process overflow exception (note that only floating point overflows -; are handled - integer overflows are invalid operations). - -KOOverFlow proc near - _guess ; guess: fscale instruction 10-may-90 - cmp BX,0D9FDh ; - quit if not 'fscale' instruction - _quif ne ; - ... - _admit ; guess: fst/fstp instruction - mov DX,BX ; - save op code - and DX,0110h ; - check if fst or fstp instruction - cmp DX,0110h ; - ... - _quif ne ; - quit if not an fst/fstp instr. - call GetInf ; - load infinity - mov DL,BL ; - save op code - and DL,0C0h ; - check the MOD bits of instruction - cmp DL,0C0h ; - ... - _if ne ; - if result to be placed in memory - call Store ; - - store infinity - _endif ; - endif - test BL,08h ; - check if result to be popped - _if ne ; - if result to be popped - fstp st(0) ; - - pop result - _endif ; - endif - _admit ; admit arithmetic operation - mov DL,BL ; - save op code - and DL,0C0h ; - check if both operands on stack - cmp DL,0C0h ; - ... - _quif ne ; - quif both operands not on stack -; -; This code handles overflow on the following intructions: -; fxxx ST,ST(i) -; fxxx ST(i),ST where xxx is one of mul,div,sub or add -; fxxxp ST(i),ST -; - lea ESI,TInf ; - load internal infinity - call Load ; - ... - _admit ; admit -; -; This admit block is to handle overflow on the following intructions: -; fxxx short real -; fxxx long real where xxx is one of mul,div,sub or add -; - call GetInf ; - load infinity - _endguess ; endguess - ret ; return -endproc KOOverFlow - - -; Replace the top element of the stack with the appropriate signed -; infinity. - -GetInf proc near - ftst ; get sign of result - fstsw word ptr ENV_OP[EBP] - fstp st(0) ; pop argument off stack (does fwait) - test BH,04h ; check if single or double - _if ne ; if double - fld qword ptr F8Inf ; - load double precision infinity - _else ; else - fld dword ptr F4Inf ; - load single precision infinity - _endif ; endif - test word ptr ENV_OP[EBP],ST_C0 - _if ne ; if argument is negative - fchs ; - return negative infinity - _endif ; endif - ret ; return -endproc GetInf - - -; Replace an element on the stack with internal zero or infinity. - -Load proc near - test BH,04h ; check if result is top element - _if e ; if result is not top element - mov DL,0 ; - indicate we are at the top - _else ; else - mov DL,BL ; - get st(i) - and DL,07h ; - . . . - _endif ; endif - push EDX ; save st(i) - _loop ; loop - dec DL ; - decrement counter - _quif l ; - quit if we are at st(i) - fincstp ; - increment stack pointer - _endloop ; endloop - fstp st(0) ; free the stack element - fld tbyte ptr [ESI] ; load internal zero - pop EDX ; get st(i) - _loop ; loop - dec DL ; - decrement counter - _quif l ; - quit if we are at st(i) - fdecstp ; - decrement stack pointer - _endloop ; endloop - ret ; return -endproc Load - - -; Store the top element of the stack at ES:EDI. - -Store proc near - test BH,04h - _if ne ; if double - fst qword ptr ES:[EDI] ; - store as double precision result - _else ; else - fst dword ptr ES:[EDI] ; - store as single precision result - _endif ; endif - ret ; return -endproc Store - - endmod - end +;***************************************************************************** +;* +;* Open Watcom Project +;* +;* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +;* +;* ======================================================================== +;* +;* This file contains Original Code and/or Modifications of Original +;* Code as defined in and that are subject to the Sybase Open Watcom +;* Public License version 1.0 (the 'License'). You may not use this file +;* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +;* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +;* provided with the Original Code and Modifications, and is also +;* available at www.sybase.com/developer/opensource. +;* +;* The Original Code and all software distributed under the License are +;* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +;* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +;* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +;* NON-INFRINGEMENT. Please see the License for the specific language +;* governing rights and limitations under the License. +;* +;* ======================================================================== +;* +;* Description: 80x87 interrupt handler. +;* +;***************************************************************************** + + +;;; //e:\watcom\src\bld\watcom\h;E:\WATCOM\H;E:\WATCOM\H\NT + +.8087 +.386p + +include struct.inc +include mdef.inc +include stword.inc +include env387.inc +include fstatus.inc + + xref __8087 ; indicate that NDP instructions are present + + modstart fpeinth + + datasegment + + extrn __FPE_exception_: proc + extrn "C",_STACKLOW : dword + +TInf db 00h,00h,00h,00h,00h,00h,00h,80h,0ffh,7fh +F8Inf db 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0efh,7fh +F4Inf db 0ffh,0ffh,7fh,7fh + enddata + +; User handler for 80x87 exceptions. + +xdefp __FPEHandler_ +defp __FPEHandler_ + +public __FPE2Handler_ +__FPE2Handler_ label byte + + push EAX ; save regs + push EBX ; ... + push ECX ; ... + push EDX ; ... + push ESI ; ... + push EDI ; ... + push EBP ; ... + sub ESP,ENV_SIZE ; make room for environment information + mov EBP,ESP ; point to buffer for 80x87 environment + fnstenv [EBP] ; get 80x87 environment + fwait ; wait for 80x87 + mov EDX,ENV_CW[EBP] ; get control word + not EDX ; flip the mask bits + mov DH,0FFh ; turn on top byte + and EDX,ENV_SW[EBP] ; get status word + mov EDI,ENV_IP[EBP] ; ... +opcode: + mov BX,[EDI] ; get opcode + inc EDI ; point to next opcode + cmp BL,0d8h ; check if its the opcode + jb opcode ; ... + cmp BL,0dfh ; ... + ja opcode ; ... + mov EDI,ENV_OP[EBP] ; ... + xchg BL,BH ; get opcode in right position + mov CL,FPE_OK ; assume exception to be ignored + _guess ; guess precision exception + test DL,ST_EF_PR ; - check for precision exception + _quif e ; - quit if not precision exception + mov CL,FPE_INEXACT ; - indicate precision exception + _admit ; guess stack under/overflow + test DL,ST_EF_SF ; - check for stack under/overflow + _quif e ; - quit if not stack under/overflow + test DX,ST_C1 ; - check if underflow + _if e ; - if underflow + mov CL,FPE_STACKUNDERFLOW ; - - indicate stack underflow + _else ; - else + mov CL,FPE_STACKOVERFLOW ; - - indicate stack overflow + _endif ; - endif + _admit ; guess invalid operation + test DL,ST_EF_IO ; - check for invalid operation + _quif e ; - quit if not invalid operation + call InvalidOp ; - process invalid operation + _admit ; guess denormal operand + test DL,ST_EF_DO ; - check for denormal operand + _quif e ; - quit if not denormal operand + mov CL,FPE_DENORMAL ; - indicate underflow + _admit ; guess overflow + test DL,ST_EF_OF ; - check for overflow + _quif e ; - quit if not overflow + call KOOverFlow ; - process overflow exception + mov CL,FPE_OVERFLOW ; - set floating point error code + _admit ; guess underflow + test DL,ST_EF_UF ; - check for underflow + _quif e ; - quit if not underflow + mov CL,FPE_UNDERFLOW ; - indicate underflow + _admit ; guess divide by 0 + test DL,ST_EF_ZD ; - check for divide by zero + _quif e ; - quit if not divide by zero + call GetInf ; - process divide by zero + mov CL,FPE_ZERODIVIDE ; - indicate divide by zero + _endguess ; endguess + _guess ; guess exception to be handled + cmp CL,FPE_OK ; - check if exception allowed + _quif e ; - quit if exception not allowed + movzx EAX,CL ; - set floating point status + call __FPE_exception_ ; - call user's handler + _endguess ; endguess + fclex ; clear exceptions that may have + ; occurred as a result of handling the + ; exception + and word ptr ENV_CW[EBP],0FF72h + fldcw word ptr ENV_CW[EBP] ; enable interrupts + fwait ; ... + add ESP,ENV_SIZE ; clean up stack + pop EBP ; ... + pop EDI ; ... + pop ESI ; ... + pop EDX ; ... + pop ECX ; ... + pop EBX ; ... + pop EAX ; ... + ret ; return from interrupt handler + +endproc __FPEHandler_ + +; Process invalid operation. + +InvalidOp proc near + mov CL,FPE_INVALID ; assume invalid operation + _guess ; guess it's square root + cmp BX,0D9FAh ; - ... + _quif ne ; - quit if it's not that instruction + mov CL,FPE_SQRTNEG ; - indicate sqrt(negative number) + ret ; - return + _endguess ; endguess + _guess ; guess it's square root + cmp BX,0D9F1h ; - ... + _quif ne ; - quit if it's not that instruction + mov CL,FPE_LOGERR ; - indicate sqrt(negative number) + ret ; - return + _endguess ; endguess + _guess ; guess: 'fprem' instruction + cmp BX,0D9F8h ; - check for 'fprem' 10-may-90 + _if ne ; - if not 'fprem' + cmp BX,0D9F5h ; - - check for 'fprem1' + _endif ; - endif + _quif ne ; - quit if not 'fprem' or 'fprem1' + mov CL,FPE_MODERR ; - indicate mod(negative number) + _admit ; guess: integer overflow + mov DX,BX ; - save op code + and DX,0310h ; - check for fist/fistp instruction + cmp DX,0310h ; - ... + _quif ne ; - quit if its not that instruction + mov CL,FPE_IOVERFLOW ; - indicate integer overflow + _admit ; guess it's floating point underflow +;; mov DX,BX ; - save op code + and DX,0110h ; - check if fst or fstp instruction + cmp DX,0110h ; - ... + _quif ne ; - quit if it's not that instruction +; Destination is short or long real and source register is an unnormal +; with exponent in range. + fstp st(0) ; - pop old result + fldz ; - load zero + mov DL,BL ; - save op code + and DL,0C0h ; - check the MOD bits of instruction + cmp DL,0C0h ; - ... + _if ne ; - if result to be placed in memory + call Store ; - - store result in memory + _endif ; - endif + test BL,08h ; - check if result to be popped + _if ne ; - if result to be popped + fstp st(0) ; - - pop the result + _endif ; - endif + mov CL,FPE_UNDERFLOW ; - indicate underflow + _admit ; guess it's divide + mov DX,BX ; - save op code + and DX,0130h ; - check for fdiv/fidiv instruction + cmp DX,0030h ; - ... + _quif ne ; - quit if it's not that instruction + mov DX,ENV_TW[EBP] ; - get tag word + mov CL,AH ; - get stack pointer + and CL,38h ; - ... + shr CL,2 ; - ... + ror DX,CL ; - make stack top low order bits + and DL,05h ; - check if top two elements are 0 + cmp DL,05h ; - ... + _quif ne ; - quif if they are not 0 + mov CL,FPE_ZERODIVIDE ; - indicate divide by zero + _endguess ; endguess + ret +endproc InvalidOp + + +; Process overflow exception (note that only floating point overflows +; are handled - integer overflows are invalid operations). + +KOOverFlow proc near + _guess ; guess: fscale instruction 10-may-90 + cmp BX,0D9FDh ; - quit if not 'fscale' instruction + _quif ne ; - ... + _admit ; guess: fst/fstp instruction + mov DX,BX ; - save op code + and DX,0110h ; - check if fst or fstp instruction + cmp DX,0110h ; - ... + _quif ne ; - quit if not an fst/fstp instr. + call GetInf ; - load infinity + mov DL,BL ; - save op code + and DL,0C0h ; - check the MOD bits of instruction + cmp DL,0C0h ; - ... + _if ne ; - if result to be placed in memory + call Store ; - - store infinity + _endif ; - endif + test BL,08h ; - check if result to be popped + _if ne ; - if result to be popped + fstp st(0) ; - - pop result + _endif ; - endif + _admit ; admit arithmetic operation + mov DL,BL ; - save op code + and DL,0C0h ; - check if both operands on stack + cmp DL,0C0h ; - ... + _quif ne ; - quif both operands not on stack +; +; This code handles overflow on the following intructions: +; fxxx ST,ST(i) +; fxxx ST(i),ST where xxx is one of mul,div,sub or add +; fxxxp ST(i),ST +; + lea ESI,TInf ; - load internal infinity + call Load ; - ... + _admit ; admit +; +; This admit block is to handle overflow on the following intructions: +; fxxx short real +; fxxx long real where xxx is one of mul,div,sub or add +; + call GetInf ; - load infinity + _endguess ; endguess + ret ; return +endproc KOOverFlow + + +; Replace the top element of the stack with the appropriate signed +; infinity. + +GetInf proc near + ftst ; get sign of result + fstsw word ptr ENV_OP[EBP] + fstp st(0) ; pop argument off stack (does fwait) + test BH,04h ; check if single or double + _if ne ; if double + fld qword ptr F8Inf ; - load double precision infinity + _else ; else + fld dword ptr F4Inf ; - load single precision infinity + _endif ; endif + test word ptr ENV_OP[EBP],ST_C0 + _if ne ; if argument is negative + fchs ; - return negative infinity + _endif ; endif + ret ; return +endproc GetInf + + +; Replace an element on the stack with internal zero or infinity. + +Load proc near + test BH,04h ; check if result is top element + _if e ; if result is not top element + mov DL,0 ; - indicate we are at the top + _else ; else + mov DL,BL ; - get st(i) + and DL,07h ; - . . . + _endif ; endif + push EDX ; save st(i) + _loop ; loop + dec DL ; - decrement counter + _quif l ; - quit if we are at st(i) + fincstp ; - increment stack pointer + _endloop ; endloop + fstp st(0) ; free the stack element + fld tbyte ptr [ESI] ; load internal zero + pop EDX ; get st(i) + _loop ; loop + dec DL ; - decrement counter + _quif l ; - quit if we are at st(i) + fdecstp ; - decrement stack pointer + _endloop ; endloop + ret ; return +endproc Load + + +; Store the top element of the stack at ES:EDI. + +Store proc near + test BH,04h + _if ne ; if double + fst qword ptr [EDI] ; - store as double precision result + _else ; else + fst dword ptr [EDI] ; - store as single precision result + _endif ; endif + ret ; return +endproc Store + + endmod + end diff --git a/programs/develop/open watcom/trunk/clib/h/sigfunc.h b/programs/develop/open watcom/trunk/clib/h/sigfunc.h new file mode 100644 index 0000000000..15c4e07c03 --- /dev/null +++ b/programs/develop/open watcom/trunk/clib/h/sigfunc.h @@ -0,0 +1,43 @@ +/**************************************************************************** +* +* Open Watcom Project +* +* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +* +* ======================================================================== +* +* This file contains Original Code and/or Modifications of Original +* Code as defined in and that are subject to the Sybase Open Watcom +* Public License version 1.0 (the 'License'). You may not use this file +* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +* provided with the Original Code and Modifications, and is also +* available at www.sybase.com/developer/opensource. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +* NON-INFRINGEMENT. Please see the License for the specific language +* governing rights and limitations under the License. +* +* ======================================================================== +* +* Description: typedef for external signal routines and +* prototypes for other signal internal function +* +****************************************************************************/ + +#include "extfunc.h" + +typedef void (*__sigfpe_func)( int, int ); +#ifdef _M_IX86 + #pragma aux (__outside_CLIB) __sig_func; + #pragma aux (__outside_CLIB) __sigfpe_func; +#endif + +_WCRTLINK extern void __sigfpe_handler( int ); +extern void __sigabort( void ); +extern void __restore_FPE_handler( void ); +extern void __grab_FPE_handler( void ); diff --git a/programs/develop/open watcom/trunk/clib/h/sigtab.h b/programs/develop/open watcom/trunk/clib/h/sigtab.h new file mode 100644 index 0000000000..1efac7e5a5 --- /dev/null +++ b/programs/develop/open watcom/trunk/clib/h/sigtab.h @@ -0,0 +1,33 @@ +/**************************************************************************** +* +* Open Watcom Project +* +* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +* +* ======================================================================== +* +* This file contains Original Code and/or Modifications of Original +* Code as defined in and that are subject to the Sybase Open Watcom +* Public License version 1.0 (the 'License'). You may not use this file +* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +* provided with the Original Code and Modifications, and is also +* available at www.sybase.com/developer/opensource. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +* NON-INFRINGEMENT. Please see the License for the specific language +* governing rights and limitations under the License. +* +* ======================================================================== +* +* Description: WHEN YOU FIGURE OUT WHAT THIS FILE DOES, PLEASE +* DESCRIBE IT HERE! +* +****************************************************************************/ + +#define __SIGNALTABLE SignalTable + diff --git a/programs/develop/open watcom/trunk/clib/intel/grabfp87.c b/programs/develop/open watcom/trunk/clib/intel/grabfp87.c index 29be8e04bc..ab663218b6 100644 --- a/programs/develop/open watcom/trunk/clib/intel/grabfp87.c +++ b/programs/develop/open watcom/trunk/clib/intel/grabfp87.c @@ -36,24 +36,11 @@ extern void __Init_FPE_handler(); extern void __Fini_FPE_handler(); -#ifdef __DOS_386__ -extern int __FPEHandlerStart_; -extern int __FPEHandlerEnd_; -extern int __DPMI_hosted(void); -#endif void __GrabFP87( void ) { -#ifndef __WINDOWS__ if( _RWD_FPE_handler_exit != __Fini_FPE_handler ) { -#ifdef __DOS_386__ - if( !_IsPharLap() && ( __DPMI_hosted() == 1 )) { - DPMILockLinearRegion((long)&__FPEHandlerStart_, - ((long)&__FPEHandlerEnd_ - (long)&__FPEHandlerStart_)); - } -#endif __Init_FPE_handler(); _RWD_FPE_handler_exit = __Fini_FPE_handler; } -#endif } diff --git a/programs/develop/open watcom/trunk/clib/process/signl.c b/programs/develop/open watcom/trunk/clib/process/signl.c new file mode 100644 index 0000000000..215d8715bf --- /dev/null +++ b/programs/develop/open watcom/trunk/clib/process/signl.c @@ -0,0 +1,187 @@ +/**************************************************************************** +* +* Open Watcom Project +* +* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved. +* +* ======================================================================== +* +* This file contains Original Code and/or Modifications of Original +* Code as defined in and that are subject to the Sybase Open Watcom +* Public License version 1.0 (the 'License'). You may not use this file +* except in compliance with the License. BY USING THIS FILE YOU AGREE TO +* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is +* provided with the Original Code and Modifications, and is also +* available at www.sybase.com/developer/opensource. +* +* The Original Code and all software distributed under the License are +* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER +* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM +* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR +* NON-INFRINGEMENT. Please see the License for the specific language +* governing rights and limitations under the License. +* +* ======================================================================== +* +* Description: signal handling ( for DOS, Windows 3.x and ? Netware ) +* +****************************************************************************/ + + +#include "variety.h" +#include +#include + //#include +#include +#include +#include "rtdata.h" +#include "sigtab.h" +#include "sigfunc.h" +#include "seterrno.h" + +#ifndef __WINDOWS_386__ +#ifndef __NETWARE__ +//extern void __grab_int23( void ); +//extern void __restore_int23( void ); +//extern void __grab_int_ctrl_break( void ); +//extern void __restore_int_ctrl_break( void ); +#endif +#endif + +#define __SIGLAST SIGIOVFL + +static __sig_func SignalTable[] = { + SIG_IGN, /* unused */ + SIG_DFL, /* SIGABRT */ + SIG_DFL, /* SIGFPE */ + SIG_DFL, /* SIGILL */ + SIG_DFL, /* SIGINT */ + SIG_DFL, /* SIGSEGV */ + SIG_DFL, /* SIGTERM */ + SIG_DFL, /* SIGBREAK */ + SIG_IGN, /* SIGUSR1 */ + SIG_IGN, /* SIGUSR2 */ + SIG_IGN, /* SIGUSR3 */ + SIG_DFL, /* SIGIDIVZ */ + SIG_DFL /* SIGIOVFL */ +}; + +static FPEhandler *__old_FPE_handler = NULL; + +void __sigabort( void ) +{ + raise( SIGABRT ); +} + +//extern void _fpmath( void ); +//#pragma aux _fpmath "__fpmath"; + +_WCRTLINK void __sigfpe_handler( int fpe_type ) +{ + __sig_func func; + + func = SignalTable[ SIGFPE ]; + if( func != SIG_IGN && func != SIG_DFL && func != SIG_ERR ) { + SignalTable[ SIGFPE ] = SIG_DFL; /* 09-nov-87 FWC */ + (*(__sigfpe_func)func)( SIGFPE, fpe_type ); /* so we can pass 2'nd parm */ + } +} + +_WCRTLINK __sig_func signal( int sig, __sig_func func ) +{ + __sig_func prev_func; + + if(( sig < 1 ) || ( sig > __SIGLAST )) { + __set_errno( EINVAL ); + return( SIG_ERR ); + } + _RWD_abort = __sigabort; /* change the abort rtn address */ + + if( sig == SIGINT ) { + if( func == SIG_DFL ) { + // __restore_int23(); + } else if( func != SIG_ERR ) { + // __grab_int23(); + } + } else if( sig == SIGBREAK ) { + if( func == SIG_DFL ) { + // __restore_int_ctrl_break(); + } else if( func != SIG_ERR ) { + // __grab_int_ctrl_break(); + } + } else if( sig == SIGFPE ) { + if( func == SIG_DFL ) { + __restore_FPE_handler(); + } else if( func != SIG_ERR ) { + __grab_FPE_handler(); + } + } + prev_func = _RWD_sigtab[ sig ]; + _RWD_sigtab[ sig ] = func; + return( prev_func ); +} + + +_WCRTLINK int raise( int sig ) +{ + __sig_func func; + + func = _RWD_sigtab[ sig ]; + switch( sig ) { + case SIGFPE: + __sigfpe_handler( FPE_EXPLICITGEN ); + break; + case SIGABRT: + if( func == SIG_DFL ) { + __terminate(); + } + case SIGINT: + if( func != SIG_IGN && func != SIG_DFL && func != SIG_ERR ) { + _RWD_sigtab[ sig ] = SIG_DFL; /* 09-nov-87 FWC */ + // __restore_int23(); + (*func)( sig ); + } + break; + case SIGBREAK: + if( func != SIG_IGN && func != SIG_DFL && func != SIG_ERR ) { + _RWD_sigtab[ sig ] = SIG_DFL; /* 09-nov-87 FWC */ + // __restore_int_ctrl_break(); + (*func)( sig ); + } + break; + case SIGILL: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGUSR3: + case SIGIDIVZ: + case SIGIOVFL: + if( func != SIG_IGN && func != SIG_DFL && func != SIG_ERR ) { + _RWD_sigtab[ sig ] = SIG_DFL; /* 09-nov-87 FWC */ + (*func)( sig ); + } + break; + default: + return( -1 ); + } + return( 0 ); +} + +void __restore_FPE_handler( void ) +{ + if( __old_FPE_handler == NULL ) { + return; + } + __FPE_handler = __old_FPE_handler; + __old_FPE_handler = NULL; +} + +void __grab_FPE_handler( void ) +{ + if( __old_FPE_handler == NULL ) { + __old_FPE_handler = __FPE_handler; + __FPE_handler = __sigfpe_handler; + } +} diff --git a/programs/develop/open watcom/trunk/clib_r.tgt b/programs/develop/open watcom/trunk/clib_r.tgt index e733571eb8..56e1e6acdb 100644 --- a/programs/develop/open watcom/trunk/clib_r.tgt +++ b/programs/develop/open watcom/trunk/clib_r.tgt @@ -58,7 +58,7 @@ WVList 0 14 WPickList -330 +332 15 MItem 5 @@ -887,8 +887,8 @@ WVList 0 201 MItem -20 -CLIB\FPU\fpeinth.asm +19 +CLIB\FPU\fpe387.asm 202 WString 6 @@ -905,8 +905,8 @@ WVList 0 205 MItem -21 -CLIB\FPU\ini87386.asm +20 +CLIB\FPU\fpeinth.asm 206 WString 6 @@ -923,8 +923,8 @@ WVList 0 209 MItem -22 -CLIB\INTEL\chipvar.asm +21 +CLIB\FPU\ini87386.asm 210 WString 6 @@ -941,8 +941,8 @@ WVList 0 213 MItem -23 -CLIB\INTEL\i64ts386.asm +22 +CLIB\INTEL\chipvar.asm 214 WString 6 @@ -959,8 +959,8 @@ WVList 0 217 MItem -22 -CLIB\STRING\cmp386.asm +23 +CLIB\INTEL\i64ts386.asm 218 WString 6 @@ -977,264 +977,264 @@ WVList 0 221 MItem +22 +CLIB\STRING\cmp386.asm +222 +WString +6 +ASMOBJ +223 +WVList +0 +224 +WVList +0 +15 +1 +1 +0 +225 +MItem 3 *.c -222 +226 WString 4 COBJ -223 +227 WVList 18 -224 -MVState -225 -WString -3 -WCC -226 -WString -25 -n????Include directories: -1 -227 -WString -80 -$(%watcom)\h;$(%watcom)\h\nt; "E:\Kos\programs\develop\open watcom\trunk\clib\h" -0 228 -MRState +MVState 229 WString 3 WCC 230 WString +25 +n????Include directories: +1 +231 +WString +80 +$(%watcom)\h;$(%watcom)\h\nt; "E:\Kos\programs\develop\open watcom\trunk\clib\h" +0 +232 +MRState +233 +WString +3 +WCC +234 +WString 27 ?????Default byte alignment 1 0 -231 +235 MRState -232 +236 WString 3 WCC -233 +237 WString 21 ?????1 byte alignment 1 1 -234 +238 MRState -235 +239 WString 3 WCC -236 +240 WString 21 ?????No optimizations 1 0 -237 +241 MRState -238 +242 WString 3 WCC -239 +243 WString 24 ?????Space optimizations 1 1 -240 +244 MCState -241 +245 WString 3 WCC -242 +246 WString 33 ?????Disable stack depth checking 1 1 -243 +247 MCState -244 +248 WString 3 WCC -245 +249 WString 30 ?????Call/return optimizations 1 1 -246 +250 MCState -247 +251 WString 3 WCC -248 +252 WString 25 ?????Relax alias checking 1 1 -249 +253 MCState -250 +254 WString 3 WCC -251 +255 WString 27 ?????Instruction scheduling 1 1 -252 +256 MRState -253 +257 WString 3 WCC -254 +258 WString 29 ?????No debugging information 1 1 -255 +259 MRState -256 +260 WString 3 WCC -257 +261 WString 24 ?????Full debugging info 1 0 -258 -MRState -259 -WString -3 -WCC -260 -WString -21 -?????Compiler default -1 -0 -261 -MRState 262 -WString -3 -WCC +MRState 263 WString +3 +WCC +264 +WString 21 ?????Compiler default 1 0 -264 -MRState 265 +MRState +266 WString 3 WCC -266 +267 +WString +21 +?????Compiler default +1 +0 +268 +MRState +269 +WString +3 +WCC +270 WString 33 ?????In-line Pentium instructions 1 1 -267 +271 MRState -268 +272 WString 3 WCC -269 +273 WString 21 ?????Compiler default 1 0 -270 +274 MRState -271 +275 WString 3 WCC -272 +276 WString 29 ?????In-line with coprocessor 1 1 -273 +277 MRState -274 +278 WString 3 WCC -275 +279 WString 21 ??2??32bit Flat model 1 0 -276 +280 MRState -277 +281 WString 3 WCC -278 +282 WString 22 ??2??32bit Small model 1 1 -279 +283 WVList 0 -1 1 -1 0 -280 -MItem -20 -CLIB\CHAR\chartest.c -281 -WString -4 -COBJ -282 -WVList -0 -283 -WVList -0 -221 -1 -1 0 284 MItem -19 -CLIB\CHAR\isalnum.c +20 +CLIB\CHAR\chartest.c 285 WString 4 @@ -1245,14 +1245,14 @@ WVList 287 WVList 0 -221 +225 1 1 0 288 MItem 19 -CLIB\CHAR\isalpha.c +CLIB\CHAR\isalnum.c 289 WString 4 @@ -1263,14 +1263,14 @@ WVList 291 WVList 0 -221 +225 1 1 0 292 MItem 19 -CLIB\CHAR\isascii.c +CLIB\CHAR\isalpha.c 293 WString 4 @@ -1281,14 +1281,14 @@ WVList 295 WVList 0 -221 +225 1 1 0 296 MItem 19 -CLIB\CHAR\isblank.c +CLIB\CHAR\isascii.c 297 WString 4 @@ -1299,14 +1299,14 @@ WVList 299 WVList 0 -221 +225 1 1 0 300 MItem 19 -CLIB\CHAR\iscntrl.c +CLIB\CHAR\isblank.c 301 WString 4 @@ -1317,14 +1317,14 @@ WVList 303 WVList 0 -221 +225 1 1 0 304 MItem -18 -CLIB\CHAR\iscsym.c +19 +CLIB\CHAR\iscntrl.c 305 WString 4 @@ -1335,14 +1335,14 @@ WVList 307 WVList 0 -221 +225 1 1 0 308 MItem -19 -CLIB\CHAR\iscsymf.c +18 +CLIB\CHAR\iscsym.c 309 WString 4 @@ -1353,14 +1353,14 @@ WVList 311 WVList 0 -221 +225 1 1 0 312 MItem 19 -CLIB\CHAR\isdigit.c +CLIB\CHAR\iscsymf.c 313 WString 4 @@ -1371,14 +1371,14 @@ WVList 315 WVList 0 -221 +225 1 1 0 316 MItem 19 -CLIB\CHAR\isgraph.c +CLIB\CHAR\isdigit.c 317 WString 4 @@ -1389,14 +1389,14 @@ WVList 319 WVList 0 -221 +225 1 1 0 320 MItem 19 -CLIB\CHAR\islower.c +CLIB\CHAR\isgraph.c 321 WString 4 @@ -1407,14 +1407,14 @@ WVList 323 WVList 0 -221 +225 1 1 0 324 MItem 19 -CLIB\CHAR\isprint.c +CLIB\CHAR\islower.c 325 WString 4 @@ -1425,14 +1425,14 @@ WVList 327 WVList 0 -221 +225 1 1 0 328 MItem 19 -CLIB\CHAR\ispunct.c +CLIB\CHAR\isprint.c 329 WString 4 @@ -1443,14 +1443,14 @@ WVList 331 WVList 0 -221 +225 1 1 0 332 MItem 19 -CLIB\CHAR\isspace.c +CLIB\CHAR\ispunct.c 333 WString 4 @@ -1461,14 +1461,14 @@ WVList 335 WVList 0 -221 +225 1 1 0 336 MItem 19 -CLIB\CHAR\istable.c +CLIB\CHAR\isspace.c 337 WString 4 @@ -1479,14 +1479,14 @@ WVList 339 WVList 0 -221 +225 1 1 0 340 MItem 19 -CLIB\CHAR\isupper.c +CLIB\CHAR\istable.c 341 WString 4 @@ -1497,14 +1497,14 @@ WVList 343 WVList 0 -221 +225 1 1 0 344 MItem -20 -CLIB\CHAR\iswctype.c +19 +CLIB\CHAR\isupper.c 345 WString 4 @@ -1515,14 +1515,14 @@ WVList 347 WVList 0 -221 +225 1 1 0 348 MItem 20 -CLIB\CHAR\isxdigit.c +CLIB\CHAR\iswctype.c 349 WString 4 @@ -1533,14 +1533,14 @@ WVList 351 WVList 0 -221 +225 1 1 0 352 MItem -19 -CLIB\CHAR\tolower.c +20 +CLIB\CHAR\isxdigit.c 353 WString 4 @@ -1551,14 +1551,14 @@ WVList 355 WVList 0 -221 +225 1 1 0 356 MItem 19 -CLIB\CHAR\toupper.c +CLIB\CHAR\tolower.c 357 WString 4 @@ -1569,14 +1569,14 @@ WVList 359 WVList 0 -221 +225 1 1 0 360 MItem -20 -CLIB\CHAR\towctrns.c +19 +CLIB\CHAR\toupper.c 361 WString 4 @@ -1587,14 +1587,14 @@ WVList 363 WVList 0 -221 +225 1 1 0 364 MItem -23 -CLIB\CONVERT\alphabet.c +20 +CLIB\CHAR\towctrns.c 365 WString 4 @@ -1605,14 +1605,14 @@ WVList 367 WVList 0 -221 +225 1 1 0 368 MItem -19 -CLIB\CONVERT\atoi.c +23 +CLIB\CONVERT\alphabet.c 369 WString 4 @@ -1623,14 +1623,14 @@ WVList 371 WVList 0 -221 +225 1 1 0 372 MItem 19 -CLIB\CONVERT\atol.c +CLIB\CONVERT\atoi.c 373 WString 4 @@ -1641,14 +1641,14 @@ WVList 375 WVList 0 -221 +225 1 1 0 376 MItem -20 -CLIB\CONVERT\atoll.c +19 +CLIB\CONVERT\atol.c 377 WString 4 @@ -1659,14 +1659,14 @@ WVList 379 WVList 0 -221 +225 1 1 0 380 MItem -19 -CLIB\CONVERT\itoa.c +20 +CLIB\CONVERT\atoll.c 381 WString 4 @@ -1677,14 +1677,14 @@ WVList 383 WVList 0 -221 +225 1 1 0 384 MItem -20 -CLIB\CONVERT\lltoa.c +19 +CLIB\CONVERT\itoa.c 385 WString 4 @@ -1695,14 +1695,14 @@ WVList 387 WVList 0 -221 +225 1 1 0 388 MItem -19 -CLIB\CONVERT\ltoa.c +20 +CLIB\CONVERT\lltoa.c 389 WString 4 @@ -1713,14 +1713,14 @@ WVList 391 WVList 0 -221 +225 1 1 0 392 MItem -21 -CLIB\CONVERT\strtol.c +19 +CLIB\CONVERT\ltoa.c 393 WString 4 @@ -1731,14 +1731,14 @@ WVList 395 WVList 0 -221 +225 1 1 0 396 MItem -22 -CLIB\CONVERT\strtoll.c +21 +CLIB\CONVERT\strtol.c 397 WString 4 @@ -1749,14 +1749,14 @@ WVList 399 WVList 0 -221 +225 1 1 0 400 MItem 22 -CLIB\DIRECT\gtcwdwnt.c +CLIB\CONVERT\strtoll.c 401 WString 4 @@ -1767,14 +1767,14 @@ WVList 403 WVList 0 -221 +225 1 1 0 404 MItem -23 -CLIB\ENVIRON\clearenv.c +22 +CLIB\DIRECT\gtcwdwnt.c 405 WString 4 @@ -1785,14 +1785,14 @@ WVList 407 WVList 0 -221 +225 1 1 0 408 MItem -22 -CLIB\ENVIRON\environ.c +23 +CLIB\ENVIRON\clearenv.c 409 WString 4 @@ -1803,14 +1803,14 @@ WVList 411 WVList 0 -221 +225 1 1 0 412 MItem -21 -CLIB\ENVIRON\getenv.c +22 +CLIB\ENVIRON\environ.c 413 WString 4 @@ -1821,14 +1821,14 @@ WVList 415 WVList 0 -221 +225 1 1 0 416 MItem -20 -CLIB\ENVIRON\gtcmd.c +21 +CLIB\ENVIRON\getenv.c 417 WString 4 @@ -1839,14 +1839,14 @@ WVList 419 WVList 0 -221 +225 1 1 0 420 MItem -23 -CLIB\ENVIRON\isattwnt.c +20 +CLIB\ENVIRON\gtcmd.c 421 WString 4 @@ -1857,14 +1857,14 @@ WVList 423 WVList 0 -221 +225 1 1 0 424 MItem 23 -CLIB\ENVIRON\searchen.c +CLIB\ENVIRON\isattwnt.c 425 WString 4 @@ -1875,14 +1875,14 @@ WVList 427 WVList 0 -221 +225 1 1 0 428 MItem -22 -CLIB\ENVIRON\setenvp.c +23 +CLIB\ENVIRON\searchen.c 429 WString 4 @@ -1893,14 +1893,14 @@ WVList 431 WVList 0 -221 +225 1 1 0 432 MItem -18 -CLIB\FILE\remove.c +22 +CLIB\ENVIRON\setenvp.c 433 WString 4 @@ -1911,14 +1911,14 @@ WVList 435 WVList 0 -221 +225 1 1 0 436 MItem 18 -CLIB\FPU\cntrl87.c +CLIB\FILE\remove.c 437 WString 4 @@ -1929,14 +1929,14 @@ WVList 439 WVList 0 -221 +225 1 1 0 440 MItem 18 -CLIB\FPU\cntrlfp.c +CLIB\FPU\cntrl87.c 441 WString 4 @@ -1947,14 +1947,14 @@ WVList 443 WVList 0 -221 +225 1 1 0 444 MItem -19 -CLIB\FPU\fclex387.c +18 +CLIB\FPU\cntrlfp.c 445 WString 4 @@ -1965,14 +1965,14 @@ WVList 447 WVList 0 -221 +225 1 1 0 448 MItem -24 -CLIB\HANDLEIO\_clsewnt.c +19 +CLIB\FPU\fclex387.c 449 WString 4 @@ -1983,14 +1983,14 @@ WVList 451 WVList 0 -221 +225 1 1 0 452 MItem -21 -CLIB\HANDLEIO\close.c +24 +CLIB\HANDLEIO\_clsewnt.c 453 WString 4 @@ -2001,14 +2001,14 @@ WVList 455 WVList 0 -221 +225 1 1 0 456 MItem -23 -CLIB\HANDLEIO\filelen.c +21 +CLIB\HANDLEIO\close.c 457 WString 4 @@ -2019,14 +2019,14 @@ WVList 459 WVList 0 -221 +225 1 1 0 460 MItem -21 -CLIB\HANDLEIO\fsync.c +23 +CLIB\HANDLEIO\filelen.c 461 WString 4 @@ -2037,14 +2037,14 @@ WVList 463 WVList 0 -221 +225 1 1 0 464 MItem -22 -CLIB\HANDLEIO\hdlman.c +21 +CLIB\HANDLEIO\fsync.c 465 WString 4 @@ -2055,14 +2055,14 @@ WVList 467 WVList 0 -221 +225 1 1 0 468 MItem 22 -CLIB\HANDLEIO\iomode.c +CLIB\HANDLEIO\hdlman.c 469 WString 4 @@ -2073,14 +2073,14 @@ WVList 471 WVList 0 -221 +225 1 1 0 472 MItem -24 -CLIB\HANDLEIO\iomodtty.c +22 +CLIB\HANDLEIO\iomode.c 473 WString 4 @@ -2091,14 +2091,14 @@ WVList 475 WVList 0 -221 +225 1 1 0 476 MItem -21 -CLIB\HANDLEIO\lseek.c +24 +CLIB\HANDLEIO\iomodtty.c 477 WString 4 @@ -2109,14 +2109,14 @@ WVList 479 WVList 0 -221 +225 1 1 0 480 MItem -24 -CLIB\HANDLEIO\lseekwnt.c +21 +CLIB\HANDLEIO\lseek.c 481 WString 4 @@ -2127,14 +2127,14 @@ WVList 483 WVList 0 -221 +225 1 1 0 484 MItem 24 -CLIB\HANDLEIO\openklbr.c +CLIB\HANDLEIO\lseekwnt.c 485 WString 4 @@ -2145,14 +2145,14 @@ WVList 487 WVList 0 -221 +225 1 1 0 488 MItem -21 -CLIB\HANDLEIO\qread.c +24 +CLIB\HANDLEIO\openklbr.c 489 WString 4 @@ -2163,14 +2163,14 @@ WVList 491 WVList 0 -221 +225 1 1 0 492 MItem 21 -CLIB\HANDLEIO\qwrit.c +CLIB\HANDLEIO\qread.c 493 WString 4 @@ -2181,14 +2181,14 @@ WVList 495 WVList 0 -221 +225 1 1 0 496 MItem -20 -CLIB\HANDLEIO\read.c +21 +CLIB\HANDLEIO\qwrit.c 497 WString 4 @@ -2199,14 +2199,14 @@ WVList 499 WVList 0 -221 +225 1 1 0 500 MItem -24 -CLIB\HANDLEIO\stiomode.c +20 +CLIB\HANDLEIO\read.c 501 WString 4 @@ -2217,14 +2217,14 @@ WVList 503 WVList 0 -221 +225 1 1 0 504 MItem -20 -CLIB\HANDLEIO\tell.c +24 +CLIB\HANDLEIO\stiomode.c 505 WString 4 @@ -2235,14 +2235,14 @@ WVList 507 WVList 0 -221 +225 1 1 0 508 MItem -24 -CLIB\HANDLEIO\unlnkwnt.c +20 +CLIB\HANDLEIO\tell.c 509 WString 4 @@ -2253,14 +2253,14 @@ WVList 511 WVList 0 -221 +225 1 1 0 512 MItem -21 -CLIB\HANDLEIO\write.c +24 +CLIB\HANDLEIO\unlnkwnt.c 513 WString 4 @@ -2271,14 +2271,14 @@ WVList 515 WVList 0 -221 +225 1 1 0 516 MItem -20 -CLIB\HEAP\amblksiz.c +21 +CLIB\HANDLEIO\write.c 517 WString 4 @@ -2289,14 +2289,14 @@ WVList 519 WVList 0 -221 +225 1 1 0 520 MItem -19 -CLIB\HEAP\ambsptr.c +20 +CLIB\HEAP\amblksiz.c 521 WString 4 @@ -2307,14 +2307,14 @@ WVList 523 WVList 0 -221 +225 1 1 0 524 MItem -18 -CLIB\HEAP\calloc.c +19 +CLIB\HEAP\ambsptr.c 525 WString 4 @@ -2325,14 +2325,14 @@ WVList 527 WVList 0 -221 +225 1 1 0 528 MItem 18 -CLIB\HEAP\freect.c +CLIB\HEAP\calloc.c 529 WString 4 @@ -2343,14 +2343,14 @@ WVList 531 WVList 0 -221 +225 1 1 0 532 MItem -20 -CLIB\HEAP\grownear.c +18 +CLIB\HEAP\freect.c 533 WString 4 @@ -2361,14 +2361,14 @@ WVList 535 WVList 0 -221 +225 1 1 0 536 MItem -18 -CLIB\HEAP\heapen.c +20 +CLIB\HEAP\grownear.c 537 WString 4 @@ -2379,14 +2379,14 @@ WVList 539 WVList 0 -221 +225 1 1 0 540 MItem -20 -CLIB\HEAP\heapgrow.c +18 +CLIB\HEAP\heapen.c 541 WString 4 @@ -2397,14 +2397,14 @@ WVList 543 WVList 0 -221 +225 1 1 0 544 MItem -15 -CLIB\HEAP\mem.c +20 +CLIB\HEAP\heapgrow.c 545 WString 4 @@ -2415,14 +2415,14 @@ WVList 547 WVList 0 -221 +225 1 1 0 548 MItem -18 -CLIB\HEAP\memavl.c +15 +CLIB\HEAP\mem.c 549 WString 4 @@ -2433,14 +2433,14 @@ WVList 551 WVList 0 -221 +225 1 1 0 552 MItem 18 -CLIB\HEAP\memmax.c +CLIB\HEAP\memavl.c 553 WString 4 @@ -2451,14 +2451,14 @@ WVList 555 WVList 0 -221 +225 1 1 0 556 MItem -19 -CLIB\HEAP\ncalloc.c +18 +CLIB\HEAP\memmax.c 557 WString 4 @@ -2469,14 +2469,14 @@ WVList 559 WVList 0 -221 +225 1 1 0 560 MItem 19 -CLIB\HEAP\nexpand.c +CLIB\HEAP\ncalloc.c 561 WString 4 @@ -2487,14 +2487,14 @@ WVList 563 WVList 0 -221 +225 1 1 0 564 MItem -17 -CLIB\HEAP\nfree.c +19 +CLIB\HEAP\nexpand.c 565 WString 4 @@ -2505,14 +2505,14 @@ WVList 567 WVList 0 -221 +225 1 1 0 568 MItem -20 -CLIB\HEAP\nheapchk.c +17 +CLIB\HEAP\nfree.c 569 WString 4 @@ -2523,14 +2523,14 @@ WVList 571 WVList 0 -221 +225 1 1 0 572 MItem 20 -CLIB\HEAP\nheapmin.c +CLIB\HEAP\nheapchk.c 573 WString 4 @@ -2541,14 +2541,14 @@ WVList 575 WVList 0 -221 +225 1 1 0 576 MItem 20 -CLIB\HEAP\nheapset.c +CLIB\HEAP\nheapmin.c 577 WString 4 @@ -2559,14 +2559,14 @@ WVList 579 WVList 0 -221 +225 1 1 0 580 MItem 20 -CLIB\HEAP\nheapwal.c +CLIB\HEAP\nheapset.c 581 WString 4 @@ -2577,14 +2577,14 @@ WVList 583 WVList 0 -221 +225 1 1 0 584 MItem -19 -CLIB\HEAP\nmalloc.c +20 +CLIB\HEAP\nheapwal.c 585 WString 4 @@ -2595,14 +2595,14 @@ WVList 587 WVList 0 -221 +225 1 1 0 588 MItem -20 -CLIB\HEAP\nmemneed.c +19 +CLIB\HEAP\nmalloc.c 589 WString 4 @@ -2613,14 +2613,14 @@ WVList 591 WVList 0 -221 +225 1 1 0 592 MItem -18 -CLIB\HEAP\nmsize.c +20 +CLIB\HEAP\nmemneed.c 593 WString 4 @@ -2631,14 +2631,14 @@ WVList 595 WVList 0 -221 +225 1 1 0 596 MItem -20 -CLIB\HEAP\nrealloc.c +18 +CLIB\HEAP\nmsize.c 597 WString 4 @@ -2649,14 +2649,14 @@ WVList 599 WVList 0 -221 +225 1 1 0 600 MItem -19 -CLIB\HEAP\sbrkwnt.c +20 +CLIB\HEAP\nrealloc.c 601 WString 4 @@ -2667,14 +2667,14 @@ WVList 603 WVList 0 -221 +225 1 1 0 604 MItem -20 -CLIB\INTEL\chipbug.c +19 +CLIB\HEAP\sbrkwnt.c 605 WString 4 @@ -2685,14 +2685,14 @@ WVList 607 WVList 0 -221 +225 1 1 0 608 MItem -21 -CLIB\INTEL\grabfp87.c +20 +CLIB\INTEL\chipbug.c 609 WString 4 @@ -2703,14 +2703,14 @@ WVList 611 WVList 0 -221 +225 1 1 0 612 MItem 21 -CLIB\INTEL\save8087.c +CLIB\INTEL\grabfp87.c 613 WString 4 @@ -2721,14 +2721,14 @@ WVList 615 WVList 0 -221 +225 1 1 0 616 MItem -20 -CLIB\INTEL\segread.c +21 +CLIB\INTEL\save8087.c 617 WString 4 @@ -2739,14 +2739,14 @@ WVList 619 WVList 0 -221 +225 1 1 0 620 MItem -21 -CLIB\KANJI\mbdtoupp.c +20 +CLIB\INTEL\segread.c 621 WString 4 @@ -2757,14 +2757,14 @@ WVList 623 WVList 0 -221 +225 1 1 0 624 MItem -15 -CLIB\MATH\abs.c +21 +CLIB\KANJI\mbdtoupp.c 625 WString 4 @@ -2775,14 +2775,14 @@ WVList 627 WVList 0 -221 +225 1 1 0 628 MItem -19 -CLIB\MATH\hugeval.c +15 +CLIB\MATH\abs.c 629 WString 4 @@ -2793,14 +2793,14 @@ WVList 631 WVList 0 -221 +225 1 1 0 632 MItem 19 -CLIB\MATH\hvalptr.c +CLIB\MATH\hugeval.c 633 WString 4 @@ -2811,14 +2811,14 @@ WVList 635 WVList 0 -221 +225 1 1 0 636 MItem 19 -CLIB\MATH\imaxabs.c +CLIB\MATH\hvalptr.c 637 WString 4 @@ -2829,14 +2829,14 @@ WVList 639 WVList 0 -221 +225 1 1 0 640 MItem 19 -CLIB\MATH\imaxdiv.c +CLIB\MATH\imaxabs.c 641 WString 4 @@ -2847,14 +2847,14 @@ WVList 643 WVList 0 -221 +225 1 1 0 644 MItem -16 -CLIB\MATH\labs.c +19 +CLIB\MATH\imaxdiv.c 645 WString 4 @@ -2865,14 +2865,14 @@ WVList 647 WVList 0 -221 +225 1 1 0 648 MItem -17 -CLIB\MATH\llabs.c +16 +CLIB\MATH\labs.c 649 WString 4 @@ -2883,14 +2883,14 @@ WVList 651 WVList 0 -221 +225 1 1 0 652 MItem -15 -CLIB\MATH\max.c +17 +CLIB\MATH\llabs.c 653 WString 4 @@ -2901,14 +2901,14 @@ WVList 655 WVList 0 -221 +225 1 1 0 656 MItem 15 -CLIB\MATH\min.c +CLIB\MATH\max.c 657 WString 4 @@ -2919,14 +2919,14 @@ WVList 659 WVList 0 -221 +225 1 1 0 660 MItem -16 -CLIB\MATH\rand.c +15 +CLIB\MATH\min.c 661 WString 4 @@ -2937,14 +2937,14 @@ WVList 663 WVList 0 -221 +225 1 1 0 664 MItem -21 -CLIB\MBYTE\mbcupper.c +16 +CLIB\MATH\rand.c 665 WString 4 @@ -2955,14 +2955,14 @@ WVList 667 WVList 0 -221 +225 1 1 0 668 MItem -19 -CLIB\MBYTE\mbinit.c +21 +CLIB\MBYTE\mbcupper.c 669 WString 4 @@ -2973,14 +2973,14 @@ WVList 671 WVList 0 -221 +225 1 1 0 672 MItem -21 -CLIB\MBYTE\mbisdbcs.c +19 +CLIB\MBYTE\mbinit.c 673 WString 4 @@ -2991,14 +2991,14 @@ WVList 675 WVList 0 -221 +225 1 1 0 676 MItem 21 -CLIB\MBYTE\mbislead.c +CLIB\MBYTE\mbisdbcs.c 677 WString 4 @@ -3009,14 +3009,14 @@ WVList 679 WVList 0 -221 +225 1 1 0 680 MItem -19 -CLIB\MBYTE\mbsinc.c +21 +CLIB\MBYTE\mbislead.c 681 WString 4 @@ -3027,14 +3027,14 @@ WVList 683 WVList 0 -221 +225 1 1 0 684 MItem -21 -CLIB\MBYTE\mbsnextc.c +19 +CLIB\MBYTE\mbsinc.c 685 WString 4 @@ -3045,14 +3045,14 @@ WVList 687 WVList 0 -221 +225 1 1 0 688 MItem -19 -CLIB\MBYTE\mbterm.c +21 +CLIB\MBYTE\mbsnextc.c 689 WString 4 @@ -3063,14 +3063,14 @@ WVList 691 WVList 0 -221 +225 1 1 0 692 MItem 19 -CLIB\MBYTE\mbtowc.c +CLIB\MBYTE\mbterm.c 693 WString 4 @@ -3081,14 +3081,14 @@ WVList 695 WVList 0 -221 +225 1 1 0 696 MItem -20 -CLIB\MBYTE\setmbcp.c +19 +CLIB\MBYTE\mbtowc.c 697 WString 4 @@ -3099,14 +3099,14 @@ WVList 699 WVList 0 -221 +225 1 1 0 700 MItem -19 -CLIB\MBYTE\wctomb.c +20 +CLIB\MBYTE\setmbcp.c 701 WString 4 @@ -3117,14 +3117,14 @@ WVList 703 WVList 0 -221 +225 1 1 0 704 MItem -18 -CLIB\MEMORY\bcmp.c +19 +CLIB\MBYTE\wctomb.c 705 WString 4 @@ -3135,14 +3135,14 @@ WVList 707 WVList 0 -221 +225 1 1 0 708 MItem -19 -CLIB\MEMORY\bcopy.c +18 +CLIB\MEMORY\bcmp.c 709 WString 4 @@ -3153,14 +3153,14 @@ WVList 711 WVList 0 -221 +225 1 1 0 712 MItem 19 -CLIB\MEMORY\bzero.c +CLIB\MEMORY\bcopy.c 713 WString 4 @@ -3171,14 +3171,14 @@ WVList 715 WVList 0 -221 +225 1 1 0 716 MItem -22 -CLIB\MEMORY\fmemccpy.c +19 +CLIB\MEMORY\bzero.c 717 WString 4 @@ -3189,14 +3189,14 @@ WVList 719 WVList 0 -221 +225 1 1 0 720 MItem -21 -CLIB\MEMORY\fmemchr.c +22 +CLIB\MEMORY\fmemccpy.c 721 WString 4 @@ -3207,14 +3207,14 @@ WVList 723 WVList 0 -221 +225 1 1 0 724 MItem 21 -CLIB\MEMORY\fmemcmp.c +CLIB\MEMORY\fmemchr.c 725 WString 4 @@ -3225,14 +3225,14 @@ WVList 727 WVList 0 -221 +225 1 1 0 728 MItem 21 -CLIB\MEMORY\fmemcpy.c +CLIB\MEMORY\fmemcmp.c 729 WString 4 @@ -3243,14 +3243,14 @@ WVList 731 WVList 0 -221 +225 1 1 0 732 MItem -22 -CLIB\MEMORY\fmemicmp.c +21 +CLIB\MEMORY\fmemcpy.c 733 WString 4 @@ -3261,14 +3261,14 @@ WVList 735 WVList 0 -221 +225 1 1 0 736 MItem 22 -CLIB\MEMORY\fmemmove.c +CLIB\MEMORY\fmemicmp.c 737 WString 4 @@ -3279,14 +3279,14 @@ WVList 739 WVList 0 -221 +225 1 1 0 740 MItem -21 -CLIB\MEMORY\fmemset.c +22 +CLIB\MEMORY\fmemmove.c 741 WString 4 @@ -3297,14 +3297,14 @@ WVList 743 WVList 0 -221 +225 1 1 0 744 MItem 21 -CLIB\MEMORY\memccpy.c +CLIB\MEMORY\fmemset.c 745 WString 4 @@ -3315,14 +3315,14 @@ WVList 747 WVList 0 -221 +225 1 1 0 748 MItem -20 -CLIB\MEMORY\memchr.c +21 +CLIB\MEMORY\memccpy.c 749 WString 4 @@ -3333,14 +3333,14 @@ WVList 751 WVList 0 -221 +225 1 1 0 752 MItem 20 -CLIB\MEMORY\memcmp.c +CLIB\MEMORY\memchr.c 753 WString 4 @@ -3351,14 +3351,14 @@ WVList 755 WVList 0 -221 +225 1 1 0 756 MItem 20 -CLIB\MEMORY\memcpy.c +CLIB\MEMORY\memcmp.c 757 WString 4 @@ -3369,14 +3369,14 @@ WVList 759 WVList 0 -221 +225 1 1 0 760 MItem -22 -CLIB\MEMORY\memcpy_s.c +20 +CLIB\MEMORY\memcpy.c 761 WString 4 @@ -3387,14 +3387,14 @@ WVList 763 WVList 0 -221 +225 1 1 0 764 MItem -21 -CLIB\MEMORY\memicmp.c +22 +CLIB\MEMORY\memcpy_s.c 765 WString 4 @@ -3405,14 +3405,14 @@ WVList 767 WVList 0 -221 +225 1 1 0 768 MItem -22 -CLIB\MEMORY\memmov_s.c +21 +CLIB\MEMORY\memicmp.c 769 WString 4 @@ -3423,14 +3423,14 @@ WVList 771 WVList 0 -221 +225 1 1 0 772 MItem -21 -CLIB\MEMORY\memmove.c +22 +CLIB\MEMORY\memmov_s.c 773 WString 4 @@ -3441,14 +3441,14 @@ WVList 775 WVList 0 -221 +225 1 1 0 776 MItem -20 -CLIB\MEMORY\memset.c +21 +CLIB\MEMORY\memmove.c 777 WString 4 @@ -3459,14 +3459,14 @@ WVList 779 WVList 0 -221 +225 1 1 0 780 MItem -21 -CLIB\MEMORY\memtest.c +20 +CLIB\MEMORY\memset.c 781 WString 4 @@ -3477,14 +3477,14 @@ WVList 783 WVList 0 -221 +225 1 1 0 784 MItem -22 -CLIB\MEMORY\movedata.c +21 +CLIB\MEMORY\memtest.c 785 WString 4 @@ -3495,14 +3495,14 @@ WVList 787 WVList 0 -221 +225 1 1 0 788 MItem -18 -CLIB\MEMORY\swab.c +22 +CLIB\MEMORY\movedata.c 789 WString 4 @@ -3513,14 +3513,14 @@ WVList 791 WVList 0 -221 +225 1 1 0 792 MItem -21 -CLIB\SEARCH\bsearch.c +18 +CLIB\MEMORY\swab.c 793 WString 4 @@ -3531,14 +3531,14 @@ WVList 795 WVList 0 -221 +225 1 1 0 796 MItem -21 -CLIB\SEARCH\bsrch_s.c +20 +CLIB\PROCESS\signl.c 797 WString 4 @@ -3549,14 +3549,14 @@ WVList 799 WVList 0 -221 +225 1 1 0 800 MItem -19 -CLIB\SEARCH\lfind.c +21 +CLIB\SEARCH\bsearch.c 801 WString 4 @@ -3567,14 +3567,14 @@ WVList 803 WVList 0 -221 +225 1 1 0 804 MItem 21 -CLIB\SEARCH\lsearch.c +CLIB\SEARCH\bsrch_s.c 805 WString 4 @@ -3585,14 +3585,14 @@ WVList 807 WVList 0 -221 +225 1 1 0 808 MItem 19 -CLIB\SEARCH\qsort.c +CLIB\SEARCH\lfind.c 809 WString 4 @@ -3603,14 +3603,14 @@ WVList 811 WVList 0 -221 +225 1 1 0 812 MItem 21 -CLIB\SEARCH\qsort_s.c +CLIB\SEARCH\lsearch.c 813 WString 4 @@ -3621,14 +3621,14 @@ WVList 815 WVList 0 -221 +225 1 1 0 816 MItem -23 -CLIB\STREAMIO\allocfp.c +19 +CLIB\SEARCH\qsort.c 817 WString 4 @@ -3639,14 +3639,14 @@ WVList 819 WVList 0 -221 +225 1 1 0 820 MItem -22 -CLIB\STREAMIO\chktty.c +21 +CLIB\SEARCH\qsort_s.c 821 WString 4 @@ -3657,14 +3657,14 @@ WVList 823 WVList 0 -221 +225 1 1 0 824 MItem -24 -CLIB\STREAMIO\clearerr.c +23 +CLIB\STREAMIO\allocfp.c 825 WString 4 @@ -3675,14 +3675,14 @@ WVList 827 WVList 0 -221 +225 1 1 0 828 MItem -24 -CLIB\STREAMIO\comtflag.c +22 +CLIB\STREAMIO\chktty.c 829 WString 4 @@ -3693,14 +3693,14 @@ WVList 831 WVList 0 -221 +225 1 1 0 832 MItem -23 -CLIB\STREAMIO\dsetefg.c +24 +CLIB\STREAMIO\clearerr.c 833 WString 4 @@ -3711,14 +3711,14 @@ WVList 835 WVList 0 -221 +225 1 1 0 836 MItem -22 -CLIB\STREAMIO\fclose.c +24 +CLIB\STREAMIO\comtflag.c 837 WString 4 @@ -3729,14 +3729,14 @@ WVList 839 WVList 0 -221 +225 1 1 0 840 MItem -22 -CLIB\STREAMIO\fdopen.c +23 +CLIB\STREAMIO\dsetefg.c 841 WString 4 @@ -3747,14 +3747,14 @@ WVList 843 WVList 0 -221 +225 1 1 0 844 MItem -20 -CLIB\STREAMIO\feof.c +22 +CLIB\STREAMIO\fclose.c 845 WString 4 @@ -3765,14 +3765,14 @@ WVList 847 WVList 0 -221 +225 1 1 0 848 MItem 22 -CLIB\STREAMIO\ferror.c +CLIB\STREAMIO\fdopen.c 849 WString 4 @@ -3783,14 +3783,14 @@ WVList 851 WVList 0 -221 +225 1 1 0 852 MItem -22 -CLIB\STREAMIO\fflush.c +20 +CLIB\STREAMIO\feof.c 853 WString 4 @@ -3801,14 +3801,14 @@ WVList 855 WVList 0 -221 +225 1 1 0 856 MItem -21 -CLIB\STREAMIO\fgetc.c +22 +CLIB\STREAMIO\ferror.c 857 WString 4 @@ -3819,14 +3819,14 @@ WVList 859 WVList 0 -221 +225 1 1 0 860 MItem -24 -CLIB\STREAMIO\fgetchar.c +22 +CLIB\STREAMIO\fflush.c 861 WString 4 @@ -3837,14 +3837,14 @@ WVList 863 WVList 0 -221 +225 1 1 0 864 MItem -23 -CLIB\STREAMIO\fgetpos.c +21 +CLIB\STREAMIO\fgetc.c 865 WString 4 @@ -3855,14 +3855,14 @@ WVList 867 WVList 0 -221 +225 1 1 0 868 MItem -21 -CLIB\STREAMIO\fgets.c +24 +CLIB\STREAMIO\fgetchar.c 869 WString 4 @@ -3873,14 +3873,14 @@ WVList 871 WVList 0 -221 +225 1 1 0 872 MItem -21 -CLIB\STREAMIO\flush.c +23 +CLIB\STREAMIO\fgetpos.c 873 WString 4 @@ -3891,14 +3891,14 @@ WVList 875 WVList 0 -221 +225 1 1 0 876 MItem -24 -CLIB\STREAMIO\flushall.c +21 +CLIB\STREAMIO\fgets.c 877 WString 4 @@ -3909,14 +3909,14 @@ WVList 879 WVList 0 -221 +225 1 1 0 880 MItem 21 -CLIB\STREAMIO\fopen.c +CLIB\STREAMIO\flush.c 881 WString 4 @@ -3927,14 +3927,14 @@ WVList 883 WVList 0 -221 +225 1 1 0 884 MItem -23 -CLIB\STREAMIO\fopen_s.c +24 +CLIB\STREAMIO\flushall.c 885 WString 4 @@ -3945,14 +3945,14 @@ WVList 887 WVList 0 -221 +225 1 1 0 888 MItem -23 -CLIB\STREAMIO\fprintf.c +21 +CLIB\STREAMIO\fopen.c 889 WString 4 @@ -3963,14 +3963,14 @@ WVList 891 WVList 0 -221 +225 1 1 0 892 MItem -24 -CLIB\STREAMIO\fprntf_s.c +23 +CLIB\STREAMIO\fopen_s.c 893 WString 4 @@ -3981,14 +3981,14 @@ WVList 895 WVList 0 -221 +225 1 1 0 896 MItem -21 -CLIB\STREAMIO\fprtf.c +23 +CLIB\STREAMIO\fprintf.c 897 WString 4 @@ -3999,14 +3999,14 @@ WVList 899 WVList 0 -221 +225 1 1 0 900 MItem -23 -CLIB\STREAMIO\fprtf_s.c +24 +CLIB\STREAMIO\fprntf_s.c 901 WString 4 @@ -4017,14 +4017,14 @@ WVList 903 WVList 0 -221 +225 1 1 0 904 MItem 21 -CLIB\STREAMIO\fputc.c +CLIB\STREAMIO\fprtf.c 905 WString 4 @@ -4035,14 +4035,14 @@ WVList 907 WVList 0 -221 +225 1 1 0 908 MItem -24 -CLIB\STREAMIO\fputchar.c +23 +CLIB\STREAMIO\fprtf_s.c 909 WString 4 @@ -4053,14 +4053,14 @@ WVList 911 WVList 0 -221 +225 1 1 0 912 MItem 21 -CLIB\STREAMIO\fputs.c +CLIB\STREAMIO\fputc.c 913 WString 4 @@ -4071,14 +4071,14 @@ WVList 915 WVList 0 -221 +225 1 1 0 916 MItem -21 -CLIB\STREAMIO\fread.c +24 +CLIB\STREAMIO\fputchar.c 917 WString 4 @@ -4089,14 +4089,14 @@ WVList 919 WVList 0 -221 +225 1 1 0 920 MItem -22 -CLIB\STREAMIO\freefp.c +21 +CLIB\STREAMIO\fputs.c 921 WString 4 @@ -4107,14 +4107,14 @@ WVList 923 WVList 0 -221 +225 1 1 0 924 MItem -23 -CLIB\STREAMIO\freop_s.c +21 +CLIB\STREAMIO\fread.c 925 WString 4 @@ -4125,14 +4125,14 @@ WVList 927 WVList 0 -221 +225 1 1 0 928 MItem 22 -CLIB\STREAMIO\fscanf.c +CLIB\STREAMIO\freefp.c 929 WString 4 @@ -4143,14 +4143,14 @@ WVList 931 WVList 0 -221 +225 1 1 0 932 MItem -24 -CLIB\STREAMIO\fscanf_s.c +23 +CLIB\STREAMIO\freop_s.c 933 WString 4 @@ -4161,14 +4161,14 @@ WVList 935 WVList 0 -221 +225 1 1 0 936 MItem -21 -CLIB\STREAMIO\fseek.c +22 +CLIB\STREAMIO\fscanf.c 937 WString 4 @@ -4179,14 +4179,14 @@ WVList 939 WVList 0 -221 +225 1 1 0 940 MItem -23 -CLIB\STREAMIO\fsetpos.c +24 +CLIB\STREAMIO\fscanf_s.c 941 WString 4 @@ -4197,14 +4197,14 @@ WVList 943 WVList 0 -221 +225 1 1 0 944 MItem 21 -CLIB\STREAMIO\ftell.c +CLIB\STREAMIO\fseek.c 945 WString 4 @@ -4215,14 +4215,14 @@ WVList 947 WVList 0 -221 +225 1 1 0 948 MItem -21 -CLIB\STREAMIO\fwide.c +23 +CLIB\STREAMIO\fsetpos.c 949 WString 4 @@ -4233,14 +4233,14 @@ WVList 951 WVList 0 -221 +225 1 1 0 952 MItem -22 -CLIB\STREAMIO\fwrite.c +21 +CLIB\STREAMIO\ftell.c 953 WString 4 @@ -4251,14 +4251,14 @@ WVList 955 WVList 0 -221 +225 1 1 0 956 MItem -20 -CLIB\STREAMIO\getc.c +21 +CLIB\STREAMIO\fwide.c 957 WString 4 @@ -4269,14 +4269,14 @@ WVList 959 WVList 0 -221 +225 1 1 0 960 MItem -23 -CLIB\STREAMIO\getchar.c +22 +CLIB\STREAMIO\fwrite.c 961 WString 4 @@ -4287,14 +4287,14 @@ WVList 963 WVList 0 -221 +225 1 1 0 964 MItem 20 -CLIB\STREAMIO\gets.c +CLIB\STREAMIO\getc.c 965 WString 4 @@ -4305,14 +4305,14 @@ WVList 967 WVList 0 -221 +225 1 1 0 968 MItem -22 -CLIB\STREAMIO\gets_s.c +23 +CLIB\STREAMIO\getchar.c 969 WString 4 @@ -4323,14 +4323,14 @@ WVList 971 WVList 0 -221 +225 1 1 0 972 MItem 20 -CLIB\STREAMIO\getw.c +CLIB\STREAMIO\gets.c 973 WString 4 @@ -4341,14 +4341,14 @@ WVList 975 WVList 0 -221 +225 1 1 0 976 MItem -24 -CLIB\STREAMIO\initfile.c +22 +CLIB\STREAMIO\gets_s.c 977 WString 4 @@ -4359,14 +4359,14 @@ WVList 979 WVList 0 -221 +225 1 1 0 980 MItem -23 -CLIB\STREAMIO\ioalloc.c +20 +CLIB\STREAMIO\getw.c 981 WString 4 @@ -4377,14 +4377,14 @@ WVList 983 WVList 0 -221 +225 1 1 0 984 MItem -19 -CLIB\STREAMIO\iob.c +24 +CLIB\STREAMIO\initfile.c 985 WString 4 @@ -4395,14 +4395,14 @@ WVList 987 WVList 0 -221 +225 1 1 0 988 MItem 23 -CLIB\STREAMIO\iobaddr.c +CLIB\STREAMIO\ioalloc.c 989 WString 4 @@ -4413,14 +4413,14 @@ WVList 991 WVList 0 -221 +225 1 1 0 992 MItem -22 -CLIB\STREAMIO\iobptr.c +19 +CLIB\STREAMIO\iob.c 993 WString 4 @@ -4431,14 +4431,14 @@ WVList 995 WVList 0 -221 +225 1 1 0 996 MItem -24 -CLIB\STREAMIO\noefgfmt.c +23 +CLIB\STREAMIO\iobaddr.c 997 WString 4 @@ -4449,14 +4449,14 @@ WVList 999 WVList 0 -221 +225 1 1 0 1000 MItem 22 -CLIB\STREAMIO\perror.c +CLIB\STREAMIO\iobptr.c 1001 WString 4 @@ -4467,14 +4467,14 @@ WVList 1003 WVList 0 -221 +225 1 1 0 1004 MItem -22 -CLIB\STREAMIO\printf.c +24 +CLIB\STREAMIO\noefgfmt.c 1005 WString 4 @@ -4485,14 +4485,14 @@ WVList 1007 WVList 0 -221 +225 1 1 0 1008 MItem -24 -CLIB\STREAMIO\printf_s.c +22 +CLIB\STREAMIO\perror.c 1009 WString 4 @@ -4503,14 +4503,14 @@ WVList 1011 WVList 0 -221 +225 1 1 0 1012 MItem -20 -CLIB\STREAMIO\prtf.c +22 +CLIB\STREAMIO\printf.c 1013 WString 4 @@ -4521,14 +4521,14 @@ WVList 1015 WVList 0 -221 +225 1 1 0 1016 MItem -22 -CLIB\STREAMIO\prtf_s.c +24 +CLIB\STREAMIO\printf_s.c 1017 WString 4 @@ -4539,14 +4539,14 @@ WVList 1019 WVList 0 -221 +225 1 1 0 1020 MItem 20 -CLIB\STREAMIO\putc.c +CLIB\STREAMIO\prtf.c 1021 WString 4 @@ -4557,14 +4557,14 @@ WVList 1023 WVList 0 -221 +225 1 1 0 1024 MItem -23 -CLIB\STREAMIO\putchar.c +22 +CLIB\STREAMIO\prtf_s.c 1025 WString 4 @@ -4575,14 +4575,14 @@ WVList 1027 WVList 0 -221 +225 1 1 0 1028 MItem 20 -CLIB\STREAMIO\puts.c +CLIB\STREAMIO\putc.c 1029 WString 4 @@ -4593,14 +4593,14 @@ WVList 1031 WVList 0 -221 +225 1 1 0 1032 MItem -20 -CLIB\STREAMIO\putw.c +23 +CLIB\STREAMIO\putchar.c 1033 WString 4 @@ -4611,14 +4611,14 @@ WVList 1035 WVList 0 -221 +225 1 1 0 1036 MItem -22 -CLIB\STREAMIO\rewind.c +20 +CLIB\STREAMIO\puts.c 1037 WString 4 @@ -4629,14 +4629,14 @@ WVList 1039 WVList 0 -221 +225 1 1 0 1040 MItem -21 -CLIB\STREAMIO\scanf.c +20 +CLIB\STREAMIO\putw.c 1041 WString 4 @@ -4647,14 +4647,14 @@ WVList 1043 WVList 0 -221 +225 1 1 0 1044 MItem -23 -CLIB\STREAMIO\scanf_s.c +22 +CLIB\STREAMIO\rewind.c 1045 WString 4 @@ -4665,14 +4665,14 @@ WVList 1047 WVList 0 -221 +225 1 1 0 1048 MItem -20 -CLIB\STREAMIO\scnf.c +21 +CLIB\STREAMIO\scanf.c 1049 WString 4 @@ -4683,14 +4683,14 @@ WVList 1051 WVList 0 -221 +225 1 1 0 1052 MItem -22 -CLIB\STREAMIO\scnf_s.c +23 +CLIB\STREAMIO\scanf_s.c 1053 WString 4 @@ -4701,14 +4701,14 @@ WVList 1055 WVList 0 -221 +225 1 1 0 1056 MItem -22 -CLIB\STREAMIO\setbuf.c +20 +CLIB\STREAMIO\scnf.c 1057 WString 4 @@ -4719,14 +4719,14 @@ WVList 1059 WVList 0 -221 +225 1 1 0 1060 MItem 22 -CLIB\STREAMIO\setefg.c +CLIB\STREAMIO\scnf_s.c 1061 WString 4 @@ -4737,14 +4737,14 @@ WVList 1063 WVList 0 -221 +225 1 1 0 1064 MItem -23 -CLIB\STREAMIO\setvbuf.c +22 +CLIB\STREAMIO\setbuf.c 1065 WString 4 @@ -4755,14 +4755,14 @@ WVList 1067 WVList 0 -221 +225 1 1 0 1068 MItem -21 -CLIB\STREAMIO\tmpfl.c +22 +CLIB\STREAMIO\setefg.c 1069 WString 4 @@ -4773,14 +4773,14 @@ WVList 1071 WVList 0 -221 +225 1 1 0 1072 MItem 23 -CLIB\STREAMIO\tmputil.c +CLIB\STREAMIO\setvbuf.c 1073 WString 4 @@ -4791,14 +4791,14 @@ WVList 1075 WVList 0 -221 +225 1 1 0 1076 MItem -18 -CLIB\STRING\bits.c +21 +CLIB\STREAMIO\tmpfl.c 1077 WString 4 @@ -4809,14 +4809,14 @@ WVList 1079 WVList 0 -221 +225 1 1 0 1080 MItem -21 -CLIB\STRING\bprintf.c +23 +CLIB\STREAMIO\tmputil.c 1081 WString 4 @@ -4827,14 +4827,14 @@ WVList 1083 WVList 0 -221 +225 1 1 0 1084 MItem -22 -CLIB\STRING\fsetbits.c +18 +CLIB\STRING\bits.c 1085 WString 4 @@ -4845,14 +4845,14 @@ WVList 1087 WVList 0 -221 +225 1 1 0 1088 MItem 21 -CLIB\STRING\fstrcat.c +CLIB\STRING\bprintf.c 1089 WString 4 @@ -4863,14 +4863,14 @@ WVList 1091 WVList 0 -221 +225 1 1 0 1092 MItem -21 -CLIB\STRING\fstrchr.c +22 +CLIB\STRING\fsetbits.c 1093 WString 4 @@ -4881,14 +4881,14 @@ WVList 1095 WVList 0 -221 +225 1 1 0 1096 MItem 21 -CLIB\STRING\fstrcmp.c +CLIB\STRING\fstrcat.c 1097 WString 4 @@ -4899,14 +4899,14 @@ WVList 1099 WVList 0 -221 +225 1 1 0 1100 MItem 21 -CLIB\STRING\fstrcpy.c +CLIB\STRING\fstrchr.c 1101 WString 4 @@ -4917,14 +4917,14 @@ WVList 1103 WVList 0 -221 +225 1 1 0 1104 MItem -22 -CLIB\STRING\fstrcspn.c +21 +CLIB\STRING\fstrcmp.c 1105 WString 4 @@ -4935,14 +4935,14 @@ WVList 1107 WVList 0 -221 +225 1 1 0 1108 MItem 21 -CLIB\STRING\fstrdup.c +CLIB\STRING\fstrcpy.c 1109 WString 4 @@ -4953,14 +4953,14 @@ WVList 1111 WVList 0 -221 +225 1 1 0 1112 MItem 22 -CLIB\STRING\fstricmp.c +CLIB\STRING\fstrcspn.c 1113 WString 4 @@ -4971,14 +4971,14 @@ WVList 1115 WVList 0 -221 +225 1 1 0 1116 MItem 21 -CLIB\STRING\fstrlen.c +CLIB\STRING\fstrdup.c 1117 WString 4 @@ -4989,14 +4989,14 @@ WVList 1119 WVList 0 -221 +225 1 1 0 1120 MItem -21 -CLIB\STRING\fstrlwr.c +22 +CLIB\STRING\fstricmp.c 1121 WString 4 @@ -5007,14 +5007,14 @@ WVList 1123 WVList 0 -221 +225 1 1 0 1124 MItem -22 -CLIB\STRING\fstrncat.c +21 +CLIB\STRING\fstrlen.c 1125 WString 4 @@ -5025,14 +5025,14 @@ WVList 1127 WVList 0 -221 +225 1 1 0 1128 MItem -22 -CLIB\STRING\fstrncmp.c +21 +CLIB\STRING\fstrlwr.c 1129 WString 4 @@ -5043,14 +5043,14 @@ WVList 1131 WVList 0 -221 +225 1 1 0 1132 MItem 22 -CLIB\STRING\fstrncpy.c +CLIB\STRING\fstrncat.c 1133 WString 4 @@ -5061,14 +5061,14 @@ WVList 1135 WVList 0 -221 +225 1 1 0 1136 MItem 22 -CLIB\STRING\fstrnicm.c +CLIB\STRING\fstrncmp.c 1137 WString 4 @@ -5079,14 +5079,14 @@ WVList 1139 WVList 0 -221 +225 1 1 0 1140 MItem 22 -CLIB\STRING\fstrnset.c +CLIB\STRING\fstrncpy.c 1141 WString 4 @@ -5097,14 +5097,14 @@ WVList 1143 WVList 0 -221 +225 1 1 0 1144 MItem 22 -CLIB\STRING\fstrpbrk.c +CLIB\STRING\fstrnicm.c 1145 WString 4 @@ -5115,14 +5115,14 @@ WVList 1147 WVList 0 -221 +225 1 1 0 1148 MItem 22 -CLIB\STRING\fstrrchr.c +CLIB\STRING\fstrnset.c 1149 WString 4 @@ -5133,14 +5133,14 @@ WVList 1151 WVList 0 -221 +225 1 1 0 1152 MItem -21 -CLIB\STRING\fstrrev.c +22 +CLIB\STRING\fstrpbrk.c 1153 WString 4 @@ -5151,14 +5151,14 @@ WVList 1155 WVList 0 -221 +225 1 1 0 1156 MItem -21 -CLIB\STRING\fstrset.c +22 +CLIB\STRING\fstrrchr.c 1157 WString 4 @@ -5169,14 +5169,14 @@ WVList 1159 WVList 0 -221 +225 1 1 0 1160 MItem 21 -CLIB\STRING\fstrspn.c +CLIB\STRING\fstrrev.c 1161 WString 4 @@ -5187,14 +5187,14 @@ WVList 1163 WVList 0 -221 +225 1 1 0 1164 MItem -22 -CLIB\STRING\fstrspnp.c +21 +CLIB\STRING\fstrset.c 1165 WString 4 @@ -5205,14 +5205,14 @@ WVList 1167 WVList 0 -221 +225 1 1 0 1168 MItem 21 -CLIB\STRING\fstrstr.c +CLIB\STRING\fstrspn.c 1169 WString 4 @@ -5223,14 +5223,14 @@ WVList 1171 WVList 0 -221 +225 1 1 0 1172 MItem -21 -CLIB\STRING\fstrtok.c +22 +CLIB\STRING\fstrspnp.c 1173 WString 4 @@ -5241,14 +5241,14 @@ WVList 1175 WVList 0 -221 +225 1 1 0 1176 MItem 21 -CLIB\STRING\fstrupr.c +CLIB\STRING\fstrstr.c 1177 WString 4 @@ -5259,14 +5259,14 @@ WVList 1179 WVList 0 -221 +225 1 1 0 1180 MItem -20 -CLIB\STRING\selptr.c +21 +CLIB\STRING\fstrtok.c 1181 WString 4 @@ -5277,14 +5277,14 @@ WVList 1183 WVList 0 -221 +225 1 1 0 1184 MItem -20 -CLIB\STRING\sneptr.c +21 +CLIB\STRING\fstrupr.c 1185 WString 4 @@ -5295,14 +5295,14 @@ WVList 1187 WVList 0 -221 +225 1 1 0 1188 MItem -22 -CLIB\STRING\snprintf.c +20 +CLIB\STRING\selptr.c 1189 WString 4 @@ -5313,14 +5313,14 @@ WVList 1191 WVList 0 -221 +225 1 1 0 1192 MItem -22 -CLIB\STRING\snprtf_s.c +20 +CLIB\STRING\sneptr.c 1193 WString 4 @@ -5331,14 +5331,14 @@ WVList 1195 WVList 0 -221 +225 1 1 0 1196 MItem -21 -CLIB\STRING\sprintf.c +22 +CLIB\STRING\snprintf.c 1197 WString 4 @@ -5349,14 +5349,14 @@ WVList 1199 WVList 0 -221 +225 1 1 0 1200 MItem 22 -CLIB\STRING\sprntf_s.c +CLIB\STRING\snprtf_s.c 1201 WString 4 @@ -5367,14 +5367,14 @@ WVList 1203 WVList 0 -221 +225 1 1 0 1204 MItem -20 -CLIB\STRING\sscanf.c +21 +CLIB\STRING\sprintf.c 1205 WString 4 @@ -5385,14 +5385,14 @@ WVList 1207 WVList 0 -221 +225 1 1 0 1208 MItem 22 -CLIB\STRING\sscanf_s.c +CLIB\STRING\sprntf_s.c 1209 WString 4 @@ -5403,14 +5403,14 @@ WVList 1211 WVList 0 -221 +225 1 1 0 1212 MItem -22 -CLIB\STRING\stncat_s.c +20 +CLIB\STRING\sscanf.c 1213 WString 4 @@ -5421,14 +5421,14 @@ WVList 1215 WVList 0 -221 +225 1 1 0 1216 MItem 22 -CLIB\STRING\stncpy_s.c +CLIB\STRING\sscanf_s.c 1217 WString 4 @@ -5439,14 +5439,14 @@ WVList 1219 WVList 0 -221 +225 1 1 0 1220 MItem -20 -CLIB\STRING\strcat.c +22 +CLIB\STRING\stncat_s.c 1221 WString 4 @@ -5457,14 +5457,14 @@ WVList 1223 WVList 0 -221 +225 1 1 0 1224 MItem 22 -CLIB\STRING\strcat_s.c +CLIB\STRING\stncpy_s.c 1225 WString 4 @@ -5475,14 +5475,14 @@ WVList 1227 WVList 0 -221 +225 1 1 0 1228 MItem 20 -CLIB\STRING\strchr.c +CLIB\STRING\strcat.c 1229 WString 4 @@ -5493,14 +5493,14 @@ WVList 1231 WVList 0 -221 +225 1 1 0 1232 MItem -21 -CLIB\STRING\strcoll.c +22 +CLIB\STRING\strcat_s.c 1233 WString 4 @@ -5511,14 +5511,14 @@ WVList 1235 WVList 0 -221 +225 1 1 0 1236 MItem 20 -CLIB\STRING\strcpy.c +CLIB\STRING\strchr.c 1237 WString 4 @@ -5529,14 +5529,14 @@ WVList 1239 WVList 0 -221 +225 1 1 0 1240 MItem -22 -CLIB\STRING\strcpy_s.c +21 +CLIB\STRING\strcoll.c 1241 WString 4 @@ -5547,14 +5547,14 @@ WVList 1243 WVList 0 -221 +225 1 1 0 1244 MItem -21 -CLIB\STRING\strcspn.c +20 +CLIB\STRING\strcpy.c 1245 WString 4 @@ -5565,14 +5565,14 @@ WVList 1247 WVList 0 -221 +225 1 1 0 1248 MItem -20 -CLIB\STRING\strdup.c +22 +CLIB\STRING\strcpy_s.c 1249 WString 4 @@ -5583,14 +5583,14 @@ WVList 1251 WVList 0 -221 +225 1 1 0 1252 MItem -22 -CLIB\STRING\streln_s.c +21 +CLIB\STRING\strcspn.c 1253 WString 4 @@ -5601,14 +5601,14 @@ WVList 1255 WVList 0 -221 +225 1 1 0 1256 MItem -22 -CLIB\STRING\strerr_s.c +20 +CLIB\STRING\strdup.c 1257 WString 4 @@ -5619,14 +5619,14 @@ WVList 1259 WVList 0 -221 +225 1 1 0 1260 MItem 22 -CLIB\STRING\strerror.c +CLIB\STRING\streln_s.c 1261 WString 4 @@ -5637,14 +5637,14 @@ WVList 1263 WVList 0 -221 +225 1 1 0 1264 MItem -21 -CLIB\STRING\stricmp.c +22 +CLIB\STRING\strerr_s.c 1265 WString 4 @@ -5655,14 +5655,14 @@ WVList 1267 WVList 0 -221 +225 1 1 0 1268 MItem -21 -CLIB\STRING\strlcat.c +22 +CLIB\STRING\strerror.c 1269 WString 4 @@ -5673,14 +5673,14 @@ WVList 1271 WVList 0 -221 +225 1 1 0 1272 MItem 21 -CLIB\STRING\strlcpy.c +CLIB\STRING\stricmp.c 1273 WString 4 @@ -5691,14 +5691,14 @@ WVList 1275 WVList 0 -221 +225 1 1 0 1276 MItem -20 -CLIB\STRING\strlen.c +21 +CLIB\STRING\strlcat.c 1277 WString 4 @@ -5709,14 +5709,14 @@ WVList 1279 WVList 0 -221 +225 1 1 0 1280 MItem -20 -CLIB\STRING\strlwr.c +21 +CLIB\STRING\strlcpy.c 1281 WString 4 @@ -5727,14 +5727,14 @@ WVList 1283 WVList 0 -221 +225 1 1 0 1284 MItem -21 -CLIB\STRING\strncat.c +20 +CLIB\STRING\strlen.c 1285 WString 4 @@ -5745,14 +5745,14 @@ WVList 1287 WVList 0 -221 +225 1 1 0 1288 MItem -21 -CLIB\STRING\strncmp.c +20 +CLIB\STRING\strlwr.c 1289 WString 4 @@ -5763,14 +5763,14 @@ WVList 1291 WVList 0 -221 +225 1 1 0 1292 MItem 21 -CLIB\STRING\strncpy.c +CLIB\STRING\strncat.c 1293 WString 4 @@ -5781,14 +5781,14 @@ WVList 1295 WVList 0 -221 +225 1 1 0 1296 MItem -22 -CLIB\STRING\strnicmp.c +21 +CLIB\STRING\strncmp.c 1297 WString 4 @@ -5799,14 +5799,14 @@ WVList 1299 WVList 0 -221 +225 1 1 0 1300 MItem -22 -CLIB\STRING\strnln_s.c +21 +CLIB\STRING\strncpy.c 1301 WString 4 @@ -5817,14 +5817,14 @@ WVList 1303 WVList 0 -221 +225 1 1 0 1304 MItem -21 -CLIB\STRING\strnset.c +22 +CLIB\STRING\strnicmp.c 1305 WString 4 @@ -5835,14 +5835,14 @@ WVList 1307 WVList 0 -221 +225 1 1 0 1308 MItem -21 -CLIB\STRING\strpbrk.c +22 +CLIB\STRING\strnln_s.c 1309 WString 4 @@ -5853,14 +5853,14 @@ WVList 1311 WVList 0 -221 +225 1 1 0 1312 MItem 21 -CLIB\STRING\strrchr.c +CLIB\STRING\strnset.c 1313 WString 4 @@ -5871,14 +5871,14 @@ WVList 1315 WVList 0 -221 +225 1 1 0 1316 MItem -20 -CLIB\STRING\strrev.c +21 +CLIB\STRING\strpbrk.c 1317 WString 4 @@ -5889,14 +5889,14 @@ WVList 1319 WVList 0 -221 +225 1 1 0 1320 MItem -20 -CLIB\STRING\strset.c +21 +CLIB\STRING\strrchr.c 1321 WString 4 @@ -5907,14 +5907,14 @@ WVList 1323 WVList 0 -221 +225 1 1 0 1324 MItem 20 -CLIB\STRING\strspn.c +CLIB\STRING\strrev.c 1325 WString 4 @@ -5925,14 +5925,14 @@ WVList 1327 WVList 0 -221 +225 1 1 0 1328 MItem -21 -CLIB\STRING\strspnp.c +20 +CLIB\STRING\strset.c 1329 WString 4 @@ -5943,14 +5943,14 @@ WVList 1331 WVList 0 -221 +225 1 1 0 1332 MItem 20 -CLIB\STRING\strstr.c +CLIB\STRING\strspn.c 1333 WString 4 @@ -5961,14 +5961,14 @@ WVList 1335 WVList 0 -221 +225 1 1 0 1336 MItem -20 -CLIB\STRING\strtok.c +21 +CLIB\STRING\strspnp.c 1337 WString 4 @@ -5979,14 +5979,14 @@ WVList 1339 WVList 0 -221 +225 1 1 0 1340 MItem -22 -CLIB\STRING\strtok_s.c +20 +CLIB\STRING\strstr.c 1341 WString 4 @@ -5997,14 +5997,14 @@ WVList 1343 WVList 0 -221 +225 1 1 0 1344 MItem 20 -CLIB\STRING\strupr.c +CLIB\STRING\strtok.c 1345 WString 4 @@ -6015,14 +6015,14 @@ WVList 1347 WVList 0 -221 +225 1 1 0 1348 MItem -21 -CLIB\STRING\strxfrm.c +22 +CLIB\STRING\strtok_s.c 1349 WString 4 @@ -6033,14 +6033,14 @@ WVList 1351 WVList 0 -221 +225 1 1 0 1352 MItem -22 -CLIB\STRING\vsprintf.c +20 +CLIB\STRING\strupr.c 1353 WString 4 @@ -6051,14 +6051,14 @@ WVList 1355 WVList 0 -221 +225 1 1 0 1356 MItem -18 -CLIB\TIME\gmtime.c +21 +CLIB\STRING\strxfrm.c 1357 WString 4 @@ -6069,14 +6069,14 @@ WVList 1359 WVList 0 -221 +225 1 1 0 1360 MItem -20 -CLIB\TIME\leapyear.c +22 +CLIB\STRING\vsprintf.c 1361 WString 4 @@ -6087,14 +6087,14 @@ WVList 1363 WVList 0 -221 +225 1 1 0 1364 MItem -20 -CLIB\TIME\localtim.c +18 +CLIB\TIME\gmtime.c 1365 WString 4 @@ -6105,14 +6105,14 @@ WVList 1367 WVList 0 -221 +225 1 1 0 1368 MItem 20 -CLIB\TIME\locmktim.c +CLIB\TIME\leapyear.c 1369 WString 4 @@ -6123,14 +6123,14 @@ WVList 1371 WVList 0 -221 +225 1 1 0 1372 MItem -18 -CLIB\TIME\mktime.c +20 +CLIB\TIME\localtim.c 1373 WString 4 @@ -6141,14 +6141,14 @@ WVList 1375 WVList 0 -221 +225 1 1 0 1376 MItem -16 -CLIB\TIME\time.c +20 +CLIB\TIME\locmktim.c 1377 WString 4 @@ -6159,14 +6159,14 @@ WVList 1379 WVList 0 -221 +225 1 1 0 1380 MItem -20 -CLIB\TIME\timeutil.c +18 +CLIB\TIME\mktime.c 1381 WString 4 @@ -6177,14 +6177,14 @@ WVList 1383 WVList 0 -221 +225 1 1 0 1384 MItem -17 -CLIB\TIME\tzset.c +16 +CLIB\TIME\time.c 1385 WString 4 @@ -6195,50 +6195,50 @@ WVList 1387 WVList 0 -221 +225 1 1 0 1388 MItem -3 -*.h +20 +CLIB\TIME\timeutil.c 1389 WString -3 -NIL +4 +COBJ 1390 WVList 0 1391 WVList 0 --1 +225 +1 1 -0 0 1392 MItem -20 -CLIB\MATH\randnext.h +17 +CLIB\TIME\tzset.c 1393 WString -3 -NIL +4 +COBJ 1394 WVList 0 1395 WVList 0 -1388 +225 1 1 0 1396 MItem -20 -CLIB\STRING\errstr.h +3 +*.h 1397 WString 3 @@ -6249,14 +6249,14 @@ WVList 1399 WVList 0 -1388 -1 +-1 1 0 +0 1400 MItem -22 -CLIB\STRING\nextftok.h +20 +CLIB\MATH\randnext.h 1401 WString 3 @@ -6267,14 +6267,14 @@ WVList 1403 WVList 0 -1388 +1396 1 1 0 1404 MItem -21 -CLIB\STRING\nexttok.h +20 +CLIB\STRING\errstr.h 1405 WString 3 @@ -6285,14 +6285,14 @@ WVList 1407 WVList 0 -1388 +1396 1 1 0 1408 MItem -21 -CLIB\STRING\setbits.h +22 +CLIB\STRING\nextftok.h 1409 WString 3 @@ -6303,7 +6303,43 @@ WVList 1411 WVList 0 -1388 +1396 +1 +1 +0 +1412 +MItem +21 +CLIB\STRING\nexttok.h +1413 +WString +3 +NIL +1414 +WVList +0 +1415 +WVList +0 +1396 +1 +1 +0 +1416 +MItem +21 +CLIB\STRING\setbits.h +1417 +WString +3 +NIL +1418 +WVList +0 +1419 +WVList +0 +1396 1 1 0