summaryrefslogtreecommitdiffstats
path: root/newlib/libc/machine/powerpc/atoufix16.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-08-17 05:57:20 +0000
committerJeff Johnston <jjohnstn@redhat.com>2002-08-17 05:57:20 +0000
commit936b520f8eac458e26623632280b0f34cb8abc17 (patch)
treef4d9c0b7b2bafdca16e643eb2060d48abb5e5315 /newlib/libc/machine/powerpc/atoufix16.c
parentad5527663ef5d01f531b4d4b23390c7566c93ee2 (diff)
downloadcygnal-936b520f8eac458e26623632280b0f34cb8abc17.tar.gz
cygnal-936b520f8eac458e26623632280b0f34cb8abc17.tar.bz2
cygnal-936b520f8eac458e26623632280b0f34cb8abc17.zip
2002-08-17 Jeff Johnston <jjohnstn@redhat.com>
* configure.host: Add powerpc*-*-eabispe* configuration. * libc/machine/powerpc/atosfix16.c: New fixed-point conversion file. * libc/machine/powerpc/atosfix32.c: Ditto. * libc/machine/powerpc/atosfix64.c: Ditto. * libc/machine/powerpc/atoufix16.c: Ditto. * libc/machine/powerpc/atoufix32.c: Ditto. * libc/machine/powerpc/atoufix64.c: Ditto. * libc/machine/powerpc/fix64.h: Ditto. * libc/machine/powerpc/simdldtoa.c: Ditto. * libc/machine/powerpc/strtosfix16.c: Ditto. * libc/machine/powerpc/strtosfix32.c: Ditto. * libc/machine/powerpc/strtosfix64.c: Ditto. * libc/machine/powerpc/strtoufix16.c: Ditto. * libc/machine/powerpc/strtoufix32.c: Ditto. * libc/machine/powerpc/strtoufix64.c: Ditto. * libc/machine/powerpc/ufix64toa.c: Ditto. * libc/machine/powerpc/configure.in: Add check for powerpc*-eabispe and add fixed-point conversion functions. * libc/machine/powerpc/configure: Regenerated. * libc/machine/powerpc/vfprintf.c[__SPE__]: Add support for %r and %R format specifiers which handle fixed-point data. * libc/machine/powerpc/vfscanf.c[__SPE__]: Ditto. * libc/machine/powerpc/machine/stdlib.h[__SPE__]: Add fixed-point function prototypes.
Diffstat (limited to 'newlib/libc/machine/powerpc/atoufix16.c')
-rw-r--r--newlib/libc/machine/powerpc/atoufix16.c102
1 files changed, 102 insertions, 0 deletions
diff --git a/newlib/libc/machine/powerpc/atoufix16.c b/newlib/libc/machine/powerpc/atoufix16.c
new file mode 100644
index 000000000..a84c4c7e1
--- /dev/null
+++ b/newlib/libc/machine/powerpc/atoufix16.c
@@ -0,0 +1,102 @@
+/*
+FUNCTION
+ <<atoufix16>>, <<atoufix32>>, <<atoufix64>>---string to unsigned fixed-point
+
+INDEX
+ atoufix16
+INDEX
+ atoufix32
+INDEX
+ atoufix64
+INDEX
+ _atoufix16_r
+INDEX
+ _atoufix32_r
+INDEX
+ _atoufix64_r
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ __uint16_t atoufix16(const char *<[s]>);
+ __uint32_t atoufix32(const char *<[s]>);
+ __uint64_t atoufix32(const char *<[s]>);
+
+ __uint16_t _atoufix16_r(struct __reent *, const char *<[s]>);
+ __uint32_t _atoufix32_r(struct __reent *, const char *<[s]>);
+ __uint64_t _atoufix32_r(struct __reent *, const char *<[s]>);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ __uint16_t atoufix16(<[s]>)
+ const char *<[s]>;
+
+ __uint32_t atoufix32(<[s]>)
+ const char *<[s]>;
+
+ __uint64_t atoufix64(<[s]>)
+ const char *<[s]>;
+
+ __uint16_t _atoufix16_r(<reent>, <[s]>)
+ struct _reent *<[reent]>;
+ const char *<[s]>;
+
+ __uint32_t _atoufix32_r(<reent>, <[s]>)
+ struct _reent *<[reent]>;
+ const char *<[s]>;
+
+ __uint64_t _atoufix64_r(<reent>, <[s]>)
+ struct _reent *<[reent]>;
+ const char *<[s]>;
+
+DESCRIPTION
+ <<atoufix16>> converts the initial portion of a string to a
+ 16-bit fraction unsigned fixed point value.
+ <<atoufix32>> converts the initial portion of a string to a
+ 32-bit fraction unsigned fixed point value.
+ <<atoufix64>> converts the initial portion of a string to a
+ 64-bit fraction unsigned fixed point value.
+ <<atoufix16(s)>> is implemented as <<strtoufix16(s, NULL).>>
+ <<atoufix32(s)>> is implemented as <<strtoufix32(s, NULL).>>
+ <<atoufix64(s)>> is implemented as <<strtoufix64(s, NULL).>>
+
+ The alternate functions <<_atoufix16_r>>, <<_atoufix32_r>>,
+ and <<_atoufix64_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
+ <<atoufix16>>, <<atoufix32>>, and <<atoufix64>> 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>
+
+__uint16_t
+_DEFUN (_atoufix16_r, (reent, s),
+ struct _reent *reent _AND
+ _CONST char *s)
+{
+ return _strtoufix16_r (reent, s, NULL);
+}
+
+#ifndef _REENT_ONLY
+__uint16_t
+_DEFUN (atoufix16, (s),
+ _CONST char *s)
+{
+ return strtoufix16 (s, NULL);
+}
+
+#endif /* !_REENT_ONLY */
+