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 #[no_mangle]
stream_renderer_context_destroy(_handle: u32)55 extern "C" fn stream_renderer_context_destroy(_handle: u32) {
56 unimplemented!();
57 }
58 #[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_int59 extern "C" fn stream_renderer_transfer_read_iov(
60 _handle: u32,
61 _ctx_id: u32,
62 _level: u32,
63 _stride: u32,
64 _layer_stride: u32,
65 _box_: *mut stream_renderer_box,
66 _offset: u64,
67 _iov: *mut iovec,
68 _iovec_cnt: c_int,
69 ) -> c_int {
70 unimplemented!();
71 }
72 #[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_int73 extern "C" fn stream_renderer_transfer_write_iov(
74 _handle: u32,
75 _ctx_id: u32,
76 _level: c_int,
77 _stride: u32,
78 _layer_stride: u32,
79 _box_: *mut stream_renderer_box,
80 _offset: u64,
81 _iovec: *mut iovec,
82 _iovec_cnt: c_uint,
83 ) -> c_int {
84 unimplemented!();
85 }
86 #[no_mangle]
stream_renderer_submit_cmd(_cmd: *const stream_renderer_command) -> c_int87 extern "C" fn stream_renderer_submit_cmd(_cmd: *const stream_renderer_command) -> c_int {
88 unimplemented!();
89 }
90 #[no_mangle]
stream_renderer_resource_attach_iov( _res_handle: c_int, _iov: *mut iovec, _num_iovs: c_int, ) -> c_int91 extern "C" fn stream_renderer_resource_attach_iov(
92 _res_handle: c_int,
93 _iov: *mut iovec,
94 _num_iovs: c_int,
95 ) -> c_int {
96 unimplemented!();
97 }
98 #[no_mangle]
stream_renderer_resource_detach_iov( _res_handle: c_int, _iov: *mut *mut iovec, _num_iovs: *mut c_int, )99 extern "C" fn stream_renderer_resource_detach_iov(
100 _res_handle: c_int,
101 _iov: *mut *mut iovec,
102 _num_iovs: *mut c_int,
103 ) {
104 unimplemented!();
105 }
106 #[no_mangle]
stream_renderer_ctx_attach_resource(_ctx_id: c_int, _res_handle: c_int)107 extern "C" fn stream_renderer_ctx_attach_resource(_ctx_id: c_int, _res_handle: c_int) {
108 unimplemented!();
109 }
110 #[no_mangle]
stream_renderer_ctx_detach_resource(_ctx_id: c_int, _res_handle: c_int)111 extern "C" fn stream_renderer_ctx_detach_resource(_ctx_id: c_int, _res_handle: c_int) {
112 unimplemented!();
113 }
114 #[no_mangle]
stream_renderer_get_cap_set(_set: u32, _max_ver: *mut u32, _max_size: *mut u32)115 extern "C" fn stream_renderer_get_cap_set(_set: u32, _max_ver: *mut u32, _max_size: *mut u32) {
116 unimplemented!();
117 }
118 #[no_mangle]
stream_renderer_fill_caps(_set: u32, _version: u32, _caps: *mut c_void)119 extern "C" fn stream_renderer_fill_caps(_set: u32, _version: u32, _caps: *mut c_void) {
120 unimplemented!();
121 }
122
123 #[no_mangle]
stream_renderer_flush(_res_handle: u32)124 extern "C" fn stream_renderer_flush(_res_handle: u32) {
125 unimplemented!();
126 }
127 #[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_int128 extern "C" fn stream_renderer_create_blob(
129 _ctx_id: u32,
130 _res_handle: u32,
131 _create_blob: *const stream_renderer_create_blob,
132 _iovecs: *const iovec,
133 _num_iovs: u32,
134 _handle: *const stream_renderer_handle,
135 ) -> c_int {
136 unimplemented!();
137 }
138
139 #[no_mangle]
stream_renderer_export_blob( _res_handle: u32, _handle: *mut stream_renderer_handle, ) -> c_int140 extern "C" fn stream_renderer_export_blob(
141 _res_handle: u32,
142 _handle: *mut stream_renderer_handle,
143 ) -> c_int {
144 unimplemented!();
145 }
146 #[no_mangle]
stream_renderer_resource_map( _res_handle: u32, _map: *mut *mut c_void, _out_size: *mut u64, ) -> c_int147 extern "C" fn stream_renderer_resource_map(
148 _res_handle: u32,
149 _map: *mut *mut c_void,
150 _out_size: *mut u64,
151 ) -> c_int {
152 unimplemented!();
153 }
154 #[no_mangle]
stream_renderer_resource_unmap(_res_handle: u32) -> c_int155 extern "C" fn stream_renderer_resource_unmap(_res_handle: u32) -> c_int {
156 unimplemented!();
157 }
158 #[no_mangle]
stream_renderer_resource_map_info(_res_handle: u32, _map_info: *mut u32) -> c_int159 extern "C" fn stream_renderer_resource_map_info(_res_handle: u32, _map_info: *mut u32) -> c_int {
160 unimplemented!();
161 }
162 #[no_mangle]
stream_renderer_vulkan_info( _res_handle: u32, _vulkan_info: *mut stream_renderer_vulkan_info, ) -> c_int163 extern "C" fn stream_renderer_vulkan_info(
164 _res_handle: u32,
165 _vulkan_info: *mut stream_renderer_vulkan_info,
166 ) -> c_int {
167 unimplemented!();
168 }
169 #[no_mangle]
stream_renderer_context_create( _handle: u32, _nlen: u32, _name: *const c_char, _context_init: u32, ) -> c_int170 extern "C" fn stream_renderer_context_create(
171 _handle: u32,
172 _nlen: u32,
173 _name: *const c_char,
174 _context_init: u32,
175 ) -> c_int {
176 unimplemented!();
177 }
178 #[no_mangle]
179
stream_renderer_create_fence(_fence: *const stream_renderer_fence) -> c_int180 extern "C" fn stream_renderer_create_fence(_fence: *const stream_renderer_fence) -> c_int {
181 unimplemented!();
182 }
183
184 #[cfg(gfxstream_unstable)]
185 #[no_mangle]
stream_renderer_suspend() -> c_int186 extern "C" fn stream_renderer_suspend() -> c_int {
187 unimplemented!();
188 }
189
190 #[cfg(gfxstream_unstable)]
191 #[no_mangle]
stream_renderer_snapshot(dir: *const c_char) -> c_int192 extern "C" fn stream_renderer_snapshot(dir: *const c_char) -> c_int {
193 unimplemented!();
194 }
195
196 #[cfg(gfxstream_unstable)]
197 #[no_mangle]
stream_renderer_restore(dir: *const c_char) -> c_int198 extern "C" fn stream_renderer_restore(dir: *const c_char) -> c_int {
199 unimplemented!();
200 }
201
202 #[cfg(gfxstream_unstable)]
203 #[no_mangle]
stream_renderer_resume() -> c_int204 extern "C" fn stream_renderer_resume() -> c_int {
205 unimplemented!();
206 }
207