xref: /freebsd/sys/dev/video/video_if.m (revision 9c9428825f4c55e3cb37412c661bb9d385db4c68)
1#
2# Copyright (c) 2026 Abdelkader Boudih <freebsd@seuros.com>
3#
4# SPDX-License-Identifier: BSD-2-Clause
5#
6
7#include <sys/bus.h>
8#include <dev/video/video.h>
9
10INTERFACE video;
11
12CODE {
13	static int
14	video_default_open(device_t dev __unused)
15	{
16
17		return (0);
18	}
19
20	static void
21	video_default_close(device_t dev __unused)
22	{
23	}
24
25	static int
26	video_default_frmsize(device_t dev __unused,
27	    struct video_frmsizeenum *fs __unused)
28	{
29
30		return (ENOTTY);
31	}
32
33	static int
34	video_default_frmival(device_t dev __unused,
35	    struct video_frmivalenum *fi __unused)
36	{
37
38		return (ENOTTY);
39	}
40
41	static int
42	video_default_format(device_t dev __unused,
43	    struct video_format *fmt __unused)
44	{
45
46		return (ENOTTY);
47	}
48
49	static int
50	video_default_fract(device_t dev __unused,
51	    struct video_fract *fr __unused)
52	{
53
54		return (ENOTTY);
55	}
56
57	static int
58	video_default_enum_input(device_t dev __unused, uint32_t index __unused,
59	    struct video_input *inp __unused)
60	{
61
62		return (ENOTTY);
63	}
64
65	static int
66	video_default_get_input(device_t dev __unused, uint32_t *idx __unused)
67	{
68
69		return (ENOTTY);
70	}
71
72	static int
73	video_default_set_input(device_t dev __unused, uint32_t idx __unused)
74	{
75
76		return (ENOTTY);
77	}
78
79	static int
80	video_default_query_control(device_t dev __unused,
81	    struct video_control_desc *d __unused)
82	{
83
84		return (ENOTTY);
85	}
86
87	static int
88	video_default_get_control(device_t dev __unused,
89	    struct video_control *c __unused)
90	{
91
92		return (ENOTTY);
93	}
94
95	static int
96	video_default_set_control(device_t dev __unused,
97	    const struct video_control *c __unused)
98	{
99
100		return (ENOTTY);
101	}
102};
103
104METHOD int open {
105	device_t	dev;
106} DEFAULT video_default_open;
107
108METHOD void close {
109	device_t	dev;
110} DEFAULT video_default_close;
111
112METHOD int querycap {
113	device_t		 dev;
114	struct video_caps	*caps;
115};
116
117METHOD int enum_format {
118	device_t		 dev;
119	uint32_t		 index;
120	struct video_format	*format;
121};
122
123METHOD int enum_framesizes {
124	device_t			 dev;
125	struct video_frmsizeenum	*fsize;
126} DEFAULT video_default_frmsize;
127
128METHOD int enum_frameintervals {
129	device_t			 dev;
130	struct video_frmivalenum	*fival;
131} DEFAULT video_default_frmival;
132
133METHOD int try_format {
134	device_t		 dev;
135	struct video_format	*format;
136} DEFAULT video_default_format;
137
138METHOD int set_format {
139	device_t			 dev;
140	const struct video_format	*format;
141};
142
143METHOD int get_format {
144	device_t		 dev;
145	struct video_format	*format;
146};
147
148METHOD int get_parm {
149	device_t		 dev;
150	struct video_fract	*fract;
151} DEFAULT video_default_fract;
152
153METHOD int set_parm {
154	device_t		 dev;
155	struct video_fract	*fract;
156} DEFAULT video_default_fract;
157
158METHOD int enum_input {
159	device_t		 dev;
160	uint32_t		 index;
161	struct video_input	*input;
162} DEFAULT video_default_enum_input;
163
164METHOD int get_input {
165	device_t	 dev;
166	uint32_t	*index;
167} DEFAULT video_default_get_input;
168
169METHOD int set_input {
170	device_t	dev;
171	uint32_t	index;
172} DEFAULT video_default_set_input;
173
174METHOD int query_control {
175	device_t			 dev;
176	struct video_control_desc	*desc;
177} DEFAULT video_default_query_control;
178
179METHOD int get_control {
180	device_t		 dev;
181	struct video_control	*control;
182} DEFAULT video_default_get_control;
183
184METHOD int set_control {
185	device_t			 dev;
186	const struct video_control	*control;
187} DEFAULT video_default_set_control;
188
189# stop_stream must quiesce the provider before returning.
190METHOD int start_stream {
191	device_t	dev;
192};
193
194METHOD void stop_stream {
195	device_t	dev;
196};
197