1 /* $NetBSD: sunos.h,v 1.24 2015/09/06 06:00:59 dholland Exp $ */
2
3 #ifndef _COMPAT_SUNOS_SUNOS_H_
4 #define _COMPAT_SUNOS_SUNOS_H_
5
6 #include <sys/ioccom.h>
7
8 /* used to ensure `struct sunos' types rename constantly sized. */
9 #ifdef __arch64__
10 typedef u_int32_t sunos_charp;
11 #else
12 typedef char * sunos_charp;
13 #endif
14
15 typedef long sunos_time_t;
16
17 #define SUNM_RDONLY 0x01 /* mount fs read-only */
18 #define SUNM_NOSUID 0x02 /* mount fs with setuid disallowed */
19 #define SUNM_NEWTYPE 0x04 /* type is string (char *), not int */
20 #define SUNM_GRPID 0x08 /* (bsd semantics; ignored) */
21 #define SUNM_REMOUNT 0x10 /* update existing mount */
22 #define SUNM_NOSUB 0x20 /* prevent submounts (rejected) */
23 #define SUNM_MULTI 0x40 /* (ignored) */
24 #define SUNM_SYS5 0x80 /* Sys 5-specific semantics (rejected) */
25
26 struct sunos_nfs_args {
27 struct sockaddr_in *addr; /* file server address */
28 void * fh; /* file handle to be mounted */
29 int flags; /* flags */
30 int wsize; /* write size in bytes */
31 int rsize; /* read size in bytes */
32 int timeo; /* initial timeout in .1 secs */
33 int retrans; /* times to retry send */
34 sunos_charp hostname; /* server's hostname */
35 int acregmin; /* attr cache file min secs */
36 int acregmax; /* attr cache file max secs */
37 int acdirmin; /* attr cache dir min secs */
38 int acdirmax; /* attr cache dir max secs */
39 sunos_charp netname; /* server's netname */
40 struct pathcnf *pathconf; /* static pathconf kludge */
41 };
42 /* SunOS nfs flag values: */
43 #define SUNNFS_SOFT 0x1
44 #define SUNNFS_WSIZE 0x2
45 #define SUNNFS_RSIZE 0x4
46 #define SUNNFS_TIMEO 0x8
47 #define SUNNFS_RETRANS 0x10
48 #define SUNNFS_HOSTNAME 0x20
49 #define SUNNFS_INT 0x40
50 #define SUNNFS_NOAC 0x80
51 #define SUNNFS_ACREGMIN 0x100
52 #define SUNNFS_ACREGMAX 0x200
53 #define SUNNFS_ACDIRMIN 0x400
54 #define SUNNFS_ACDIRMAX 0x800
55 #define SUNNFS_SECURE 0x1000
56 #define SUNNFS_NOCTO 0x2000
57 #define SUNNFS_POSIX 0x4000
58
59
60 struct sunos_ustat {
61 int32_t f_tfree; /* total free */
62 uint32_t f_tinode; /* total inodes free */
63 char f_path[6]; /* filsys name */
64 char f_fpack[6]; /* filsys pack name */
65 };
66
67 struct sunos_statfs {
68 int f_type; /* type of info, zero for now */
69 int f_bsize; /* fundamental file system block size */
70 int f_blocks; /* total blocks in file system */
71 int f_bfree; /* free blocks */
72 int f_bavail; /* free blocks available to non-super-user */
73 int f_files; /* total file nodes in file system */
74 int f_ffree; /* free file nodes in fs */
75 fsid_t f_fsid; /* file system id */
76 int f_spare[7]; /* spare for later */
77 };
78
79
80 struct sunos_utsname {
81 char sysname[9];
82 char nodename[9];
83 char nodeext[65-9];
84 char release[9];
85 char version[9];
86 char machine[9];
87 };
88
89
90 struct sunos_ttysize {
91 int ts_row;
92 int ts_col;
93 };
94
95 struct sunos_termio {
96 u_short c_iflag;
97 u_short c_oflag;
98 u_short c_cflag;
99 u_short c_lflag;
100 char c_line;
101 unsigned char c_cc[8];
102 };
103 #define SUNOS_TCGETA _IOR('T', 1, struct sunos_termio)
104 #define SUNOS_TCSETA _IOW('T', 2, struct sunos_termio)
105 #define SUNOS_TCSETAW _IOW('T', 3, struct sunos_termio)
106 #define SUNOS_TCSETAF _IOW('T', 4, struct sunos_termio)
107 #define SUNOS_TCSBRK _IO('T', 5)
108
109 struct sunos_termios {
110 u_int c_iflag;
111 u_int c_oflag;
112 u_int c_cflag;
113 u_int c_lflag;
114 char c_line;
115 u_char c_cc[17];
116 };
117 #define SUNOS_TCXONC _IO('T', 6)
118 #define SUNOS_TCFLSH _IO('T', 7)
119 #define SUNOS_TCGETS _IOR('T', 8, struct sunos_termios)
120 #define SUNOS_TCSETS _IOW('T', 9, struct sunos_termios)
121 #define SUNOS_TCSETSW _IOW('T', 10, struct sunos_termios)
122 #define SUNOS_TCSETSF _IOW('T', 11, struct sunos_termios)
123 #define SUNOS_TCSNDBRK _IO('T', 12)
124 #define SUNOS_TCDRAIN _IO('T', 13)
125
126 /* Sun audio compatibility */
127 struct sunos_audio_prinfo {
128 u_int sample_rate;
129 u_int channels;
130 u_int precision;
131 u_int encoding;
132 u_int gain;
133 u_int port;
134 u_int avail_ports;
135 u_int reserved0[3];
136 u_int samples;
137 u_int eof;
138 u_char pause;
139 u_char error;
140 u_char waiting;
141 u_char balance;
142 u_short minordev;
143 u_char open;
144 u_char active;
145 };
146 struct sunos_audio_info {
147 struct sunos_audio_prinfo play;
148 struct sunos_audio_prinfo record;
149 u_int monitor_gain;
150 u_int reserved[4];
151 };
152
153 /* Values for AUDIO_GETDEV ioctl: */
154 #define SUNOS_AUDIO_DEV_UNKNOWN 0
155 #define SUNOS_AUDIO_DEV_AMD 1
156 #define SUNOS_AUDIO_DEV_SPEAKERBOX 2
157 #define SUNOS_AUDIO_DEV_CODEC 3
158
159 __BEGIN_DECLS
160 /* Defined in arch/<arch>/sunos_machdep.c */
161 void sunos_sendsig(const ksiginfo_t *, const sigset_t *);
162 __END_DECLS
163
164 #endif /* _COMPAT_SUNOS_SUNOS_H_ */
Cache object: 5de2ce7b85165464228105e0f0c32891
|