summaryrefslogtreecommitdiff
path: root/libc/stdio/_fpmaxtostr.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/stdio/_fpmaxtostr.h')
-rw-r--r--libc/stdio/_fpmaxtostr.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/libc/stdio/_fpmaxtostr.h b/libc/stdio/_fpmaxtostr.h
new file mode 100644
index 000000000..5adb9312a
--- /dev/null
+++ b/libc/stdio/_fpmaxtostr.h
@@ -0,0 +1,41 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ *
+ * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
+ */
+
+#ifndef _FPMAXTOSTR_H
+#define _FPMAXTOSTR_H 1
+
+#include <features.h>
+#ifdef __UCLIBC_HAS_FLOATS__
+
+#define __need_size_t
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <printf.h>
+#include <sys/types.h>
+#include <float.h>
+#include <bits/uClibc_fpmax.h>
+
+/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
+/* With 32 bit ints, we can get 9 decimal digits per block. */
+#define DIGITS_PER_BLOCK 9
+
+#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
+
+/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
+/* extra space for '-', '.', 'e+###', and nul */
+#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
+
+typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
+
+extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
+ __fp_outfunc_t fp_outfunc) attribute_hidden;
+
+#endif /* __UCLIBC_HAS_FLOATS__ */
+#endif /* _FPMAXTOSTR_H */