+#define OPOST 0x00000001 /* enable following output processing */
+#define ONLCR 0x00000002 /* map NL to CR-NL (ala CRMOD) */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define OXTABS 0x00000004 /* expand tabs to spaces */
+#define ONOEOT 0x00000008 /* discard EOT's (^D) on output) */
+#endif /*(_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+/*
+ * The following block of features is unimplemented. Use of these flags in
+ * programs will currently result in unexpected behaviour.
+ *
+ * - Begin unimplemented features
+ */
+#define OCRNL 0x00000010 /* map CR to NL on output */
+#define ONOCR 0x00000020 /* no CR output at column 0 */
+#define ONLRET 0x00000040 /* NL performs CR function */
+#define OFILL 0x00000080 /* use fill characters for delay */
+#define NLDLY 0x00000300 /* \n delay */
+#define TABDLY 0x00000c04 /* horizontal tab delay */
+#define CRDLY 0x00003000 /* \r delay */
+#define FFDLY 0x00004000 /* form feed delay */
+#define BSDLY 0x00008000 /* \b delay */
+#define VTDLY 0x00010000 /* vertical tab delay */
+#define OFDEL 0x00020000 /* fill is DEL, else NUL */
+#if !defined(_SYS_IOCTL_COMPAT_H_) || __DARWIN_UNIX03
+/*
+ * These manifest constants have the same names as those in the header
+ * <sys/ioctl_compat.h>, so you are not permitted to have both definitions
+ * in scope simultaneously in the same compilation unit. Nevertheless,
+ * they are required to be in scope when _POSIX_C_SOURCE is requested;
+ * this means that including the <sys/ioctl_compat.h> header before this
+ * one when _POSIX_C_SOURCE is in scope will result in redefintions. We
+ * attempt to maintain these as the same values so as to avoid this being
+ * an outright error in most compilers.
+ */
+#define NL0 0x00000000
+#define NL1 0x00000100
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define NL2 0x00000200
+#define NL3 0x00000300
+#endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */
+#define TAB0 0x00000000
+#define TAB1 0x00000400
+#define TAB2 0x00000800
+/* not in sys/ioctl_compat.h, use OXTABS value */
+#define TAB3 0x00000004
+#define CR0 0x00000000
+#define CR1 0x00001000
+#define CR2 0x00002000
+#define CR3 0x00003000
+#define FF0 0x00000000
+#define FF1 0x00004000
+#define BS0 0x00000000
+#define BS1 0x00008000
+#define VT0 0x00000000
+#define VT1 0x00010000
+#endif /* !_SYS_IOCTL_COMPAT_H_ */
+/*
+ * + End unimplemented features
+ */