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