diff options
Diffstat (limited to 'newlib/libc/machine/powerpc/atosfix16.c')
-rw-r--r-- | newlib/libc/machine/powerpc/atosfix16.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/newlib/libc/machine/powerpc/atosfix16.c b/newlib/libc/machine/powerpc/atosfix16.c new file mode 100644 index 000000000..819c2f068 --- /dev/null +++ b/newlib/libc/machine/powerpc/atosfix16.c @@ -0,0 +1,102 @@ +/* +FUNCTION + <<atosfix16>>, <<atosfix32>>, <<atosfix64>>---string to signed fixed-point + +INDEX + atosfix16 +INDEX + atosfix32 +INDEX + atosfix64 +INDEX + _atosfix16_r +INDEX + _atosfix32_r +INDEX + _atosfix64_r + +ANSI_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]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + __int16_t atosfix16(<[s]>) + const char *<[s]>; + + __int32_t atosfix32(<[s]>) + const char *<[s]>; + + __int64_t atosfix64(<[s]>) + const char *<[s]>; + + __int16_t _atosfix16_r(<reent>, <[s]>) + struct _reent *<[reent]>; + const char *<[s]>; + + __int32_t _atosfix32_r(<reent>, <[s]>) + struct _reent *<[reent]>; + const char *<[s]>; + + __int64_t _atosfix64_r(<reent>, <[s]>) + struct _reent *<[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 + */ + +#include <stdlib.h> +#include <_ansi.h> + +__int16_t +_DEFUN (_atosfix16_r, (reent, s), + struct _reent *reent _AND + _CONST char *s) +{ + return _strtosfix16_r (reent, s, NULL); +} + +#ifndef _REENT_ONLY +__int16_t +_DEFUN (atosfix16, (s), + _CONST char *s) +{ + return strtosfix16 (s, NULL); +} + +#endif /* !_REENT_ONLY */ + |