1 // Copyright 2022 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 //! Stub impplementation of the native interface of gfxstream_backend.so.
6 //!
7 //! This implementation is used to enable the gfxstream feature of crosvm to be compiled without
8 //! gfxstream_backend.so available. It is only used for testing purposes and not functional
9 //! at runtime.
10
11 #![cfg(feature = "gfxstream_stub")]
12
13 use std::os::raw::c_char;
14 use std::os::raw::c_int;
15 use std::os::raw::c_uint;
16 use std::os::raw::c_void;
17
18 use crate::generated::virgl_renderer_bindings::iovec;
19 use crate::gfxstream::stream_renderer_box;
20 use crate::gfxstream::stream_renderer_command;
21 use crate::gfxstream::stream_renderer_create_blob;
22 use crate::gfxstream::stream_renderer_fence;
23 use crate::gfxstream::stream_renderer_handle;
24 use crate::gfxstream::stream_renderer_param;
25 use crate::gfxstream::stream_renderer_resource_create_args;
26 use crate::gfxstream::stream_renderer_vulkan_info;
27
28 #[no_mangle]
stream_renderer_init( _stream_renderer_params: *mut stream_renderer_param, _num_params: u64, ) -> c_int29 extern "C" fn stream_renderer_init(
30 _stream_renderer_params: *mut stream_renderer_param,
31 _num_params: u64,
32 ) -> c_int {
33 unimplemented!();
34 }
35
36 #[no_mangle]
stream_renderer_teardown()37 extern "C" fn stream_renderer_teardown() {
38 unimplemented!();
39 }
40
41 #[no_mangle]
stream_renderer_resource_create( _args: *mut stream_renderer_resource_create_args, _iov: *mut iovec, _num_iovs: u32, ) -> c_int42 extern "C" fn stream_renderer_resource_create(
43 _args: *mut stream_renderer_resource_create_args,
44 _iov: *mut iovec,
45 _num_iovs: u32,
46 ) -> c_int {
47 unimplemented!();
48 }
49
50 #[no_mangle]
stream_renderer_resource_unref(_res_handle: u32)51 extern "C" fn stream_renderer_resource_unref(_res_handle: u32) {
52 unimplemented!();
53 }
54
55 #[no_mangle]
stream_renderer_context_destroy(_handle: u32)56 extern "C" fn stream_renderer_context_destroy(_handle: u32) {
57 unimplemented!();
58 }
59
60 #[no_mangle]
stream_renderer_transfer_read_iov( _handle: u32, _ctx_id: u32, _level: u32, _stride: u32, _layer_stride: u32, _box_: *mut stream_renderer_box, _offset: u64, _iov: *mut iovec, _iovec_cnt: c_int, ) -> c_int61 extern "C" fn stream_renderer_transfer_read_iov(
62 _handle: u32,
63 _ctx_id: u32,
64 _level: u32,
65 _stride: u32,
66 _layer_stride: u32,
67 _box_: *mut stream_renderer_box,
68 _offset: u64,
69 _iov: *mut iovec,
70 _iovec_cnt: c_int,
71 ) -> c_int {
72 unimplemented!();
73 }
74
75 #[no_mangle]
stream_renderer_transfer_write_iov( _handle: u32, _ctx_id: u32, _level: c_int, _stride: u32, _layer_stride: u32, _box_: *mut stream_renderer_box, _offset: u64, _iovec: *mut iovec, _iovec_cnt: c_uint, ) -> c_int76 extern "C" fn stream_renderer_transfer_write_iov(
77 _handle: u32,
78 _ctx_id: u32,
79 _level: c_int,
80 _stride: u32,
81 _layer_stride: u32,
82 _box_: *mut stream_renderer_box,
83 _offset: u64,
84 _iovec: *mut iovec,
85 _iovec_cnt: c_uint,
86 ) -> c_int {
87 unimplemented!();
88 }
89
90 #[no_mangle]
stream_renderer_submit_cmd(_cmd: *const stream_renderer_command) -> c_int91 extern "C" fn stream_renderer_submit_cmd(_cmd: *const stream_renderer_command) -> c_int {
92 unimplemented!();
93 }
94
95 #[no_mangle]
stream_renderer_resource_attach_iov( _res_handle: c_int, _iov: *mut iovec, _num_iovs: c_int, ) -> c_int96 extern "C" fn stream_renderer_resource_attach_iov(
97 _res_handle: c_int,
98 _iov: *mut iovec,
99 _num_iovs: c_int,
100 ) -> c_int {
101 unimplemented!();
102 }
103
104 #[no_mangle]
stream_renderer_resource_detach_iov( _res_handle: c_int, _iov: *mut *mut iovec, _num_iovs: *mut c_int, )105 extern "C" fn stream_renderer_resource_detach_iov(
106 _res_handle: c_int,
107 _iov: *mut *mut iovec,
108 _num_iovs: *mut c_int,
109 ) {
110 unimplemented!();
111 }
112
113 #[no_mangle]
stream_renderer_ctx_attach_resource(_ctx_id: c_int, _res_handle: c_int)114 extern "C" fn stream_renderer_ctx_attach_resource(_ctx_id: c_int, _res_handle: c_int) {
115 unimplemented!();
116 }
117
118 #[no_mangle]
stream_renderer_ctx_detach_resource(_ctx_id: c_int, _res_handle: c_int)119 extern "C" fn stream_renderer_ctx_detach_resource(_ctx_id: c_int, _res_handle: c_int) {
120 unimplemented!();
121 }
122
123 #[no_mangle]
stream_renderer_get_cap_set(_set: u32, _max_ver: *mut u32, _max_size: *mut u32)124 extern "C" fn stream_renderer_get_cap_set(_set: u32, _max_ver: *mut u32, _max_size: *mut u32) {
125 unimplemented!();
126 }
127
128 #[no_mangle]
stream_renderer_fill_caps(_set: u32, _version: u32, _caps: *mut c_void)129 extern "C" fn stream_renderer_fill_caps(_set: u32, _version: u32, _caps: *mut c_void) {
130 unimplemented!();
131 }
132
133 #[no_mangle]
stream_renderer_flush(_res_handle: u32)134 extern "C" fn stream_renderer_flush(_res_handle: u32) {
135 unimplemented!();
136 }
137
138 #[no_mangle]
stream_renderer_create_blob( _ctx_id: u32, _res_handle: u32, _create_blob: *const stream_renderer_create_blob, _iovecs: *const iovec, _num_iovs: u32, _handle: *const stream_renderer_handle, ) -> c_int139 extern "C" fn stream_renderer_create_blob(
140 _ctx_id: u32,
141 _res_handle: u32,
142 _create_blob: *const stream_renderer_create_blob,
143 _iovecs: *const iovec,
144 _num_iovs: u32,
145 _handle: *const stream_renderer_handle,
146 ) -> c_int {
147 unimplemented!();
148 }
149
150 #[no_mangle]
stream_renderer_export_blob( _res_handle: u32, _handle: *mut stream_renderer_handle, ) -> c_int151 extern "C" fn stream_renderer_export_blob(
152 _res_handle: u32,
153 _handle: *mut stream_renderer_handle,
154 ) -> c_int {
155 unimplemented!();
156 }
157
158 #[no_mangle]
stream_renderer_resource_map( _res_handle: u32, _map: *mut *mut c_void, _out_size: *mut u64, ) -> c_int159 extern "C" fn stream_renderer_resource_map(
160 _res_handle: u32,
161 _map: *mut *mut c_void,
162 _out_size: *mut u64,
163 ) -> c_int {
164 unimplemented!();
165 }
166
167 #[no_mangle]
stream_renderer_resource_unmap(_res_handle: u32) -> c_int168 extern "C" fn stream_renderer_resource_unmap(_res_handle: u32) -> c_int {
169 unimplemented!();
170 }
171
172 #[no_mangle]
stream_renderer_resource_map_info(_res_handle: u32, _map_info: *mut u32) -> c_int173 extern "C" fn stream_renderer_resource_map_info(_res_handle: u32, _map_info: *mut u32) -> c_int {
174 unimplemented!();
175 }
176
177 #[no_mangle]
stream_renderer_vulkan_info( _res_handle: u32, _vulkan_info: *mut stream_renderer_vulkan_info, ) -> c_int178 extern "C" fn stream_renderer_vulkan_info(
179 _res_handle: u32,
180 _vulkan_info: *mut stream_renderer_vulkan_info,
181 ) -> c_int {
182 unimplemented!();
183 }
184
185 #[no_mangle]
stream_renderer_context_create( _handle: u32, _nlen: u32, _name: *const c_char, _context_init: u32, ) -> c_int186 extern "C" fn stream_renderer_context_create(
187 _handle: u32,
188 _nlen: u32,
189 _name: *const c_char,
190 _context_init: u32,
191 ) -> c_int {
192 unimplemented!();
193 }
194
195 #[no_mangle]
stream_renderer_create_fence(_fence: *const stream_renderer_fence) -> c_int196 extern "C" fn stream_renderer_create_fence(_fence: *const stream_renderer_fence) -> c_int {
197 unimplemented!();
198 }
199
200 #[cfg(gfxstream_unstable)]
201 #[no_mangle]
stream_renderer_suspend() -> c_int202 extern "C" fn stream_renderer_suspend() -> c_int {
203 unimplemented!();
204 }
205
206 #[cfg(gfxstream_unstable)]
207 #[no_mangle]
stream_renderer_snapshot(dir: *const c_char) -> c_int208 extern "C" fn stream_renderer_snapshot(dir: *const c_char) -> c_int {
209 unimplemented!();
210 }
211
212 #[cfg(gfxstream_unstable)]
213 #[no_mangle]
stream_renderer_restore(dir: *const c_char) -> c_int214 extern "C" fn stream_renderer_restore(dir: *const c_char) -> c_int {
215 unimplemented!();
216 }
217
218 #[cfg(gfxstream_unstable)]
219 #[no_mangle]
stream_renderer_resume() -> c_int220 extern "C" fn stream_renderer_resume() -> c_int {
221 unimplemented!();
222 }
223