/* The character (sequence) your platform uses as newline. */
#define _PDCLIB_endl "\n"
-/* The number of attempts to complete an I/O operation before giving up. */
-/* (Example: How often a buffer flushing is attempted before reporting fail.) */
-#define _PDCLIB_IO_RETRIES 1
-
-/* What the system should do after an I/O operation did not succeed, before */
-/* trying again. (Empty by default.) */
-#define _PDCLIB_IO_RETRY_OP( stream )
-
/* exit() can signal success to the host environment by the value of zero or */
/* the constant EXIT_SUCCESS. Failure is signaled by EXIT_FAILURE. Note that */
/* any other return value is "implementation-defined", i.e. your environment */
/* SHRT, INT, LONG, or LLONG (telling which values to use for the *_MIN and */
/* *_MAX limits); the lowercase define either short, int, long, or long long */
/* (telling the actual type to use). */
+/* The third define is the length modifier used for the type in printf() and */
+/* scanf() functions (used in <inttypes.h>). */
/* If you require a non-standard datatype to define the "usually fastest" */
/* types, PDCLib as-is doesn't support that. Please contact the author with */
/* details on your platform in that case, so support can be added. */
#define _PDCLIB_FAST8 INT
#define _PDCLIB_fast8 int
+#define _PDCLIB_FAST8_CONV
#define _PDCLIB_FAST16 INT
#define _PDCLIB_fast16 int
+#define _PDCLIB_FAST16_CONV
#define _PDCLIB_FAST32 INT
#define _PDCLIB_fast32 int
+#define _PDCLIB_FAST32_CONV
#define _PDCLIB_FAST64 LONG
#define _PDCLIB_fast64 long
+#define _PDCLIB_FAST64_CONV l
/* -------------------------------------------------------------------------- */
/* What follows are a couple of "special" typedefs and their limits. Again, */
/* The result type of substracting two pointers */
#define _PDCLIB_ptrdiff long
#define _PDCLIB_PTRDIFF LONG
+#define _PDCLIB_PTR_CONV l
/* An integer type that can be accessed as atomic entity (think asynchronous
interrupts). The type itself is not defined in a freestanding environment,
/* Largest supported integer type. Implementation note: see _PDCLIB_atomax(). */
#define _PDCLIB_intmax long long int
-#define _PDCLIB_INTMAX LLINT
+#define _PDCLIB_INTMAX LLONG
+#define _PDCLIB_MAX_CONV ll
/* You are also required to state the literal suffix for the intmax type */
#define _PDCLIB_INTMAX_LITERAL ll
+/* <inttypes.h> defines imaxdiv(), which is equivalent to the div() function */
+/* family (see further above) with intmax_t as basis. */
+
+struct _PDCLIB_imaxdiv_t
+{
+ _PDCLIB_intmax quot;
+ _PDCLIB_intmax rem;
+};
+
/* -------------------------------------------------------------------------- */
/* Floating Point */
/* -------------------------------------------------------------------------- */
*/
#define _PDCLIB_NOHANDLE ( (_PDCLIB_fd_t) -1 )
+/* The default size for file buffers. Must be at least 256. */
+#define _PDCLIB_BUFSIZ 1024
+
+/* The minimum number of files the implementation can open simultaneously. Must
+ be at least 8. Depends largely on how the bookkeeping is done by fopen() /
+ freopen() / fclose(). The example implementation limits the number of open
+ files only by available memory.
+*/
+#define _PDCLIB_FOPEN_MAX 8
+
+/* Length of the longest filename the implementation guarantees to support. */
+#define _PDCLIB_FILENAME_MAX 128
+
+/* Maximum length of filenames generated by tmpnam(). (See tmpfile.c.) */
+#define _PDCLIB_L_tmpnam 46
+
+/* Number of distinct file names that can be generated by tmpnam(). */
+#define _PDCLIB_TMP_MAX 50
+
/* The values of SEEK_SET, SEEK_CUR and SEEK_END, used by fseek().
Since at least one platform (POSIX) uses the same symbols for its own "seek"
function, we use whatever the host defines (if it does define them).
this capability dependent on implementation-defined behaviour (not good).
*/
#define _PDCLIB_UNGETCBUFSIZE 1
-