summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/sun4/sys
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/sun4/sys')
-rw-r--r--newlib/libc/sys/sun4/sys/dirent.h45
-rw-r--r--newlib/libc/sys/sun4/sys/file.h3
-rw-r--r--newlib/libc/sys/sun4/sys/termios.h122
-rw-r--r--newlib/libc/sys/sun4/sys/utime.h13
-rw-r--r--newlib/libc/sys/sun4/sys/utmp.h43
-rw-r--r--newlib/libc/sys/sun4/sys/wait.h43
6 files changed, 269 insertions, 0 deletions
diff --git a/newlib/libc/sys/sun4/sys/dirent.h b/newlib/libc/sys/sun4/sys/dirent.h
new file mode 100644
index 00000000000..b7ca90b0d96
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/dirent.h
@@ -0,0 +1,45 @@
+/* FIXME: From sys/sysvi386/sys */
+#ifndef _SYS_DIRENT_H
+# define _SYS_DIRENT_H
+
+/*
+ * This file was written to be compatible with the BSD directory
+ * routines, so it looks like it. But it was written from scratch.
+ * Sean Eric Fagan, sef@Kithrup.COM
+ *
+ * Modified by dje@cygnus.com for sun.
+ */
+
+typedef struct __dirdesc {
+ int dd_fd;
+ long dd_loc;
+ long dd_size;
+ long dd_bsize;
+ long dd_off;
+ char *dd_buf;
+} DIR;
+
+# define __dirfd(dp) ((dp)->dd_fd)
+
+DIR *opendir (const char *);
+struct dirent *readdir (DIR *);
+void rewinddir (DIR *);
+int closedir (DIR *);
+
+#include <sys/types.h>
+
+#define MAXNAMLEN 255
+
+#define d_ino d_fileno /* compatibility */
+
+struct dirent {
+ off_t d_off;
+ unsigned long d_fileno;
+ unsigned short d_reclen;
+ unsigned short d_namlen;
+ char d_name[MAXNAMLEN + 1];
+};
+
+/* FIXME: include definition of DIRSIZ() ? */
+
+#endif
diff --git a/newlib/libc/sys/sun4/sys/file.h b/newlib/libc/sys/sun4/sys/file.h
new file mode 100644
index 00000000000..94d65c1df0d
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/file.h
@@ -0,0 +1,3 @@
+/* FIXME: really fcntl.h */
+
+#include <sys/fcntl.h>
diff --git a/newlib/libc/sys/sun4/sys/termios.h b/newlib/libc/sys/sun4/sys/termios.h
new file mode 100644
index 00000000000..ffdeb9bb221
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/termios.h
@@ -0,0 +1,122 @@
+/* FIXME: From sys/sysvi386/sys */
+#ifndef _SYS_TERMIOS_H
+# define _SYS_TERMIOS_H
+
+# define _XCGETA (('x'<<8)|1)
+# define _XCSETA (('x'<<8)|2)
+# define _XCSETAW (('x'<<8)|3)
+# define _XCSETAF (('x'<<8)|4)
+# define _TCSBRK (('T'<<8)|5)
+# define _TCFLSH (('T'<<8)|7)
+# define _TCXONC (('T'<<8)|6)
+
+# define TCOOFF 0
+# define TCOON 1
+# define TCIOFF 2
+# define TCION 3
+
+# define TCIFLUSH 0
+# define TCOFLUSH 1
+# define TCIOFLUSH 2
+
+# define NCCS 13
+
+# define TCSAFLUSH _XCSETAF
+# define TCSANOW _XCSETA
+# define TCSADRAIN _XCSETAW
+# define TCSADFLUSH _XCSETAF
+
+# define IGNBRK 000001
+# define BRKINT 000002
+# define IGNPAR 000004
+# define INPCK 000020
+# define ISTRIP 000040
+# define INLCR 000100
+# define IGNCR 000200
+# define ICRNL 000400
+# define IXON 002000
+# define IXOFF 010000
+
+# define OPOST 000001
+# define OCRNL 000004
+# define ONLCR 000010
+# define ONOCR 000020
+# define TAB3 014000
+
+# define CLOCAL 004000
+# define CREAD 000200
+# define CSIZE 000060
+# define CS5 0
+# define CS6 020
+# define CS7 040
+# define CS8 060
+# define CSTOPB 000100
+# define HUPCL 002000
+# define PARENB 000400
+# define PAODD 001000
+
+# define ECHO 0000010
+# define ECHOE 0000020
+# define ECHOK 0000040
+# define ECHONL 0000100
+# define ICANON 0000002
+# define IEXTEN 0000400 /* anybody know *what* this does?! */
+# define ISIG 0000001
+# define NOFLSH 0000200
+# define TOSTOP 0001000
+
+# define VEOF 4 /* also VMIN -- thanks, AT&T */
+# define VEOL 5 /* also VTIME -- thanks again */
+# define VERASE 2
+# define VINTR 0
+# define VKILL 3
+# define VMIN 4 /* also VEOF */
+# define VQUIT 1
+# define VSUSP 10
+# define VTIME 5 /* also VEOL */
+# define VSTART 11
+# define VSTOP 12
+
+# define B0 000000
+# define B50 000001
+# define B75 000002
+# define B110 000003
+# define B134 000004
+# define B150 000005
+# define B200 000006
+# define B300 000007
+# define B600 000010
+# define B1200 000011
+# define B1800 000012
+# define B2400 000013
+# define B4800 000014
+# define B9600 000015
+# define B19200 000016
+# define B38400 000017
+
+typedef unsigned char cc_t;
+typedef unsigned short tcflag_t;
+typedef char speed_t;
+
+struct termios {
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+ char c_line;
+ cc_t c_cc[NCCS];
+ speed_t c_ispeed;
+ speed_t c_ospeed;
+};
+
+# ifndef _NO_MACROS
+
+# define cfgetospeed(tp) ((tp)->c_ospeed)
+# define cfgetispeed(tp) ((tp)->c_ispeed)
+# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0)
+# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0)
+# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1)
+# endif /* _NO_MACROS */
+
+#endif /* _SYS_TERMIOS_H */
+
diff --git a/newlib/libc/sys/sun4/sys/utime.h b/newlib/libc/sys/sun4/sys/utime.h
new file mode 100644
index 00000000000..e2a55faffb7
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/utime.h
@@ -0,0 +1,13 @@
+/* FIXME: From sys/sysvi386/sys */
+#ifndef _SYS_UTIME_H
+# define _SYS_UTIME_H
+
+#include <time.h>
+
+struct utimbuf {
+ time_t actime;
+ time_t modtime;
+};
+
+#endif /* _SYS_UTIME_H */
+
diff --git a/newlib/libc/sys/sun4/sys/utmp.h b/newlib/libc/sys/sun4/sys/utmp.h
new file mode 100644
index 00000000000..f519e6af058
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/utmp.h
@@ -0,0 +1,43 @@
+#ifndef _UTMP_H
+# define _UTMP_H
+
+#include <sys/types.h>
+
+# define UTMP_FILE "/etc/utmp"
+# define WTMP_FILE "/etc/wtmp"
+
+struct utmp {
+ char ut_user[8]; /* how limited */
+ char ut_id[4]; /* ditto */
+ char ut_line[12]; /* I'm repeating myself */
+ short ut_pid;
+ short ut_type;
+ struct exit_status {
+ short e_termination;
+ short e_exit;
+ } ut_exit; /* for DEAD_PROCESS processes */
+ time_t ut_time;
+};
+
+/* Definitions for ut_type fields */
+
+# define EMPTY 0
+# define RUN_LVL 1
+# define BOOT_TIME 2
+# define OLD_TIME 3
+# define NEW_TIME 4
+# define INIT_PROCESS 5
+# define LOGIN_PROCESS 6
+# define USER_PROCESS 7
+# define DEAD_PROCESS 8
+# define ACCOUNTING 9
+# define UTMAXTYPE ACCOUNTING
+
+# define RUNLVL_MSG "run-level %c"
+# define BOOT_MSG "system boot"
+# define OTIME_MSG "old time"
+# define NTIME_MSG "new time"
+
+#endif /* _UTMP_H */
+
+
diff --git a/newlib/libc/sys/sun4/sys/wait.h b/newlib/libc/sys/sun4/sys/wait.h
new file mode 100644
index 00000000000..08b756aab5f
--- /dev/null
+++ b/newlib/libc/sys/sun4/sys/wait.h
@@ -0,0 +1,43 @@
+/* FIXME: From sys/sysvi386/sys */
+#ifndef _WAIT_H
+# define _WAIT_H
+
+# define WNOHANG 1
+# define WUNTRACED 2
+
+/*
+ * Unlike the atrocity that BSD ended up using, we do not have a "union
+ * wait," although I could probably implement one. Given the code I
+ * sometimes end up porting, it might be a good thing. Anyway, the
+ * format of a stat thingy, filled in by the wait*() routines, is:
+ * struct {
+ * int filler:16;
+ * union {
+ * struct stopped {
+ * int signo:8;
+ * int o177:8; // will be 0177
+ * };
+ * struct exited {
+ * int retval:8;
+ * int zero:8; // 0, obviously 8-)
+ * };
+ * struct termed {
+ * int zero:8; // zeroes
+ * int corep:1; // was there a core file?
+ * int signo:7; // what?! Only 127 signals?!
+ * };
+ * int value:16;
+ * };
+ * };
+ *
+ * Braver souls than I can turn that into a union wait, if desired. Ick.
+ */
+
+# define WIFEXITED(val) ((val)&0xff)
+# define WEXITSTATUS(val) (((val)>>8)&0xff)
+# define WIFSIGNALED(val) ((val) && !((val)&0xff))
+# define WTERMSIG(val) (((val)>>8)&0x7f)
+# define WIFSTOPPED(val) (((val)&0xff)==0177)
+# define WSTOPSIG(val) (((val)>>8)&0xff)
+#endif /* _SYS_WAIT_H */
+