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