libc/newlib/libc/machine/powerpc/atosfix16.c

81 lines
1.9 KiB
C

/*
FUNCTION
<<atosfix16>>, <<atosfix32>>, <<atosfix64>>---string to signed fixed-point
INDEX
atosfix16
INDEX
atosfix32
INDEX
atosfix64
INDEX
_atosfix16_r
INDEX
_atosfix32_r
INDEX
_atosfix64_r
SYNOPSIS
#include <stdlib.h>
__int16_t atosfix16(const char *<[s]>);
__int32_t atosfix32(const char *<[s]>);
__int64_t atosfix32(const char *<[s]>);
__int16_t _atosfix16_r(struct __reent *, const char *<[s]>);
__int32_t _atosfix32_r(struct __reent *, const char *<[s]>);
__int64_t _atosfix32_r(struct __reent *, const char *<[s]>);
DESCRIPTION
<<atosfix16>> converts the initial portion of a string to a sign
+ 15-bit fraction fixed point value.
<<atosfix32>> converts the initial portion of a string to a sign
+ 31-bit fraction fixed point value.
<<atosfix64>> converts the initial portion of a string to a sign
+ 63-bit fraction fixed point value.
<<atosfix16(s)>> is implemented as <<strtosfix16(s, NULL).>>
<<atosfix32(s)>> is implemented as <<strtosfix32(s, NULL).>>
<<atosfix64(s)>> is implemented as <<strtosfix64(s, NULL).>>
The alternate functions <<_atosfix16_r>>, <<_atosfix32_r>>,
and <<_atosfix64_r>> are reentrant versions.
The extra argument <[reent]> is a pointer to a reentrancy structure.
RETURNS
The functions return the converted value, if any. If no conversion was
made, <<0>> is returned. If saturation occurs, <<ERANGE>> is stored
in errno.
PORTABILITY
<<atosfix16>>, <<atosfix32>>, and <<atosfix64>> are non-standard.
No supporting OS subroutines are directly required. The
OS subroutines required by <<strtod>> are used.
*/
/*
* Jeff Johnston - 02/13/2002
*/
#ifdef __SPE__
#include <stdlib.h>
#include <_ansi.h>
__int16_t
_atosfix16_r (struct _reent *reent,
const char *s)
{
return _strtosfix16_r (reent, s, NULL);
}
#ifndef _REENT_ONLY
__int16_t
atosfix16 (const char *s)
{
return strtosfix16 (s, NULL);
}
#endif /* !_REENT_ONLY */
#endif /* __SPE__ */