aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/generic-freebsd/sys/sndstat.h
blob: ed4fa2493a62962e55b044c06e6fb4896d40d4c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*-
 * SPDX-License-Identifier: BSD-2-Clause
 *
 * Copyright (c) 2020 The FreeBSD Foundation
 *
 * This software was developed by Ka Ho Ng
 * under sponsorship from the FreeBSD Foundation.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _SYS_SNDSTAT_H_
#define _SYS_SNDSTAT_H_

#include <sys/types.h>
#ifndef _IOWR
#include <sys/ioccom.h>
#endif  /* !_IOWR */

struct sndstioc_nv_arg {
	size_t nbytes;	/* [IN/OUT] buffer size/number of bytes filled */
	void *buf;	/* [OUT] buffer holding a packed nvlist */
};

/*
 * Common name/value pair names
 */
#define SNDST_DSPS			"dsps"
#define SNDST_DSPS_FROM_USER		"from_user"
#define SNDST_DSPS_PCHAN		"pchan"
#define SNDST_DSPS_RCHAN		"rchan"
#define SNDST_DSPS_NAMEUNIT		"nameunit"
#define SNDST_DSPS_DEVNODE		"devnode"
#define SNDST_DSPS_DESC			"desc"
#define SNDST_DSPS_PROVIDER		"provider"
#define SNDST_DSPS_PROVIDER_INFO	"provider_info"

/*
 * Common name/value pair names for play/rec info
 */
#define SNDST_DSPS_INFO_PLAY		"info_play"
#define SNDST_DSPS_INFO_REC		"info_rec"
#define SNDST_DSPS_INFO_MIN_RATE	"min_rate"
#define SNDST_DSPS_INFO_MAX_RATE	"max_rate"
#define SNDST_DSPS_INFO_FORMATS		"formats"
#define SNDST_DSPS_INFO_MIN_CHN		"min_chn"
#define SNDST_DSPS_INFO_MAX_CHN		"max_chn"

/*
 * sound(4)-specific name/value pair names
 */
#define SNDST_DSPS_SOUND4_PROVIDER		"sound(4)"
#define SNDST_DSPS_SOUND4_UNIT			"unit"
#define SNDST_DSPS_SOUND4_STATUS		"status"
#define SNDST_DSPS_SOUND4_BITPERFECT		"bitperfect"
#define SNDST_DSPS_SOUND4_PVCHAN		"pvchan"
#define SNDST_DSPS_SOUND4_PVCHANRATE		"pvchanrate"
#define SNDST_DSPS_SOUND4_PVCHANFORMAT		"pvchanformat"
#define SNDST_DSPS_SOUND4_RVCHAN		"rvchan"
#define SNDST_DSPS_SOUND4_RVCHANRATE		"rvchanrate"
#define SNDST_DSPS_SOUND4_RVCHANFORMAT		"rvchanformat"
#define SNDST_DSPS_SOUND4_CHAN_INFO		"channel_info"
#define SNDST_DSPS_SOUND4_CHAN_NAME		"name"
#define SNDST_DSPS_SOUND4_CHAN_PARENTCHAN	"parentchan"
#define SNDST_DSPS_SOUND4_CHAN_UNIT		"unit"
#define SNDST_DSPS_SOUND4_CHAN_CAPS		"caps"
#define SNDST_DSPS_SOUND4_CHAN_LATENCY		"latency"
#define SNDST_DSPS_SOUND4_CHAN_RATE		"rate"
#define SNDST_DSPS_SOUND4_CHAN_FORMAT		"format"
#define SNDST_DSPS_SOUND4_CHAN_PID		"pid"
#define SNDST_DSPS_SOUND4_CHAN_COMM		"comm"
#define SNDST_DSPS_SOUND4_CHAN_INTR		"interrupts"
#define SNDST_DSPS_SOUND4_CHAN_FEEDCNT		"feedcount"
#define SNDST_DSPS_SOUND4_CHAN_XRUNS		"xruns"
#define SNDST_DSPS_SOUND4_CHAN_LEFTVOL		"left_volume"
#define SNDST_DSPS_SOUND4_CHAN_RIGHTVOL		"right_volume"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_FORMAT	"hwbuf_format"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_SIZE	"hwbuf_size"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKSZ	"hwbuf_blksz"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKCNT	"hwbuf_blkcnt"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_FREE	"hwbuf_free"
#define SNDST_DSPS_SOUND4_CHAN_HWBUF_READY	"hwbuf_ready"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_FORMAT	"swbuf_format"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_SIZE	"swbuf_size"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKSZ	"swbuf_blksz"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKCNT	"swbuf_blkcnt"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_FREE	"swbuf_free"
#define SNDST_DSPS_SOUND4_CHAN_SWBUF_READY	"swbuf_ready"
#define SNDST_DSPS_SOUND4_CHAN_FEEDERCHAIN	"feederchain"

/*
 * Maximum user-specified nvlist buffer size
 */
#define SNDST_UNVLBUF_MAX		65536

#define SNDSTIOC_REFRESH_DEVS \
	_IO('D', 100)
#define SNDSTIOC_GET_DEVS \
	_IOWR('D', 101, struct sndstioc_nv_arg)
#define SNDSTIOC_ADD_USER_DEVS \
	_IOWR('D', 102, struct sndstioc_nv_arg)
#define SNDSTIOC_FLUSH_USER_DEVS \
	_IO('D', 103)

#ifdef _KERNEL
#ifdef COMPAT_FREEBSD32

struct sndstioc_nv_arg32 {
	uint32_t nbytes;
	uint32_t buf;
};

#define SNDSTIOC_GET_DEVS32 \
	_IOC_NEWTYPE(SNDSTIOC_GET_DEVS, struct sndstioc_nv_arg32)
#define SNDSTIOC_ADD_USER_DEVS32 \
	_IOC_NEWTYPE(SNDSTIOC_ADD_USER_DEVS, struct sndstioc_nv_arg32)

#endif
#endif

#endif /* !_SYS_SNDSTAT_H_ */