summaryrefslogtreecommitdiff
path: root/internal/serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'internal/serial.h')
-rw-r--r--internal/serial.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/serial.h b/internal/serial.h
new file mode 100644
index 0000000000..224ab47ac6
--- /dev/null
+++ b/internal/serial.h
@@ -0,0 +1,30 @@
+#ifndef INTERNAL_SERIAL_H /* -*- C -*- */
+#define INTERNAL_SERIAL_H
+/**
+ * @file
+ * @brief Internal header for rb_serial_t.
+ * @author \@shyouhei
+ * @copyright This file is a part of the programming language Ruby.
+ * Permission is hereby granted, to either redistribute and/or
+ * modify this file, provided that the conditions mentioned in the
+ * file COPYING are met. Consult the file for details.
+ */
+
+#if defined(HAVE_LONG_LONG)
+typedef unsigned LONG_LONG rb_serial_t;
+# define SERIALT2NUM ULL2NUM
+# define PRI_SERIALT_PREFIX PRI_LL_PREFIX
+# define SIZEOF_SERIAL_T SIZEOF_LONG_LONG
+#elif defined(HAVE_UINT64_T)
+typedef uint64_t rb_serial_t;
+# define SERIALT2NUM SIZET2NUM
+# define PRI_SERIALT_PREFIX PRI_64_PREFIX
+# define SIZEOF_SERIAL_T SIZEOF_UINT64_T
+#else
+typedef unsigned long rb_serial_t;
+# define SERIALT2NUM ULONG2NUM
+# define PRI_SERIALT_PREFIX PRI_LONG_PREFIX
+# define SIZEOF_SERIAL_T SIZEOF_LONG
+#endif
+
+#endif /* INTERNAL_SERIAL_H */