• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 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 use std::fs::File;
6 
7 use super::super::cross_domain_protocol::CrossDomainInit;
8 use super::super::cross_domain_protocol::CrossDomainSendReceive;
9 use super::super::CrossDomainContext;
10 use super::super::CrossDomainState;
11 use crate::cross_domain::CrossDomainEvent;
12 use crate::cross_domain::CrossDomainToken;
13 use crate::rutabaga_utils::RutabagaError;
14 use crate::rutabaga_utils::RutabagaResult;
15 
16 pub struct Stub(());
17 pub type SystemStream = Stub;
18 
19 // Determine type of OS-specific descriptor.
descriptor_analysis( _descriptor: &mut File, _descriptor_type: &mut u32, _size: &mut u32, ) -> RutabagaResult<()>20 pub fn descriptor_analysis(
21     _descriptor: &mut File,
22     _descriptor_type: &mut u32,
23     _size: &mut u32,
24 ) -> RutabagaResult<()> {
25     Err(RutabagaError::Unsupported)
26 }
27 
28 impl CrossDomainState {
receive_msg( &self, _opaque_data: &mut [u8], ) -> RutabagaResult<(usize, Vec<File>)>29     pub(crate) fn receive_msg(
30         &self,
31         _opaque_data: &mut [u8],
32     ) -> RutabagaResult<(usize, Vec<File>)> {
33         Err(RutabagaError::Unsupported)
34     }
35 }
36 
37 impl CrossDomainContext {
get_connection( &mut self, _cmd_init: &CrossDomainInit, ) -> RutabagaResult<Option<SystemStream>>38     pub(crate) fn get_connection(
39         &mut self,
40         _cmd_init: &CrossDomainInit,
41     ) -> RutabagaResult<Option<SystemStream>> {
42         Err(RutabagaError::Unsupported)
43     }
44 
send( &self, _cmd_send: &CrossDomainSendReceive, _opaque_data: &[u8], ) -> RutabagaResult<()>45     pub(crate) fn send(
46         &self,
47         _cmd_send: &CrossDomainSendReceive,
48         _opaque_data: &[u8],
49     ) -> RutabagaResult<()> {
50         Err(RutabagaError::Unsupported)
51     }
52 }
53 
54 pub type Sender = Stub;
55 pub type Receiver = Stub;
56 
channel_signal(_sender: &Sender) -> RutabagaResult<()>57 pub fn channel_signal(_sender: &Sender) -> RutabagaResult<()> {
58     Err(RutabagaError::Unsupported)
59 }
60 
channel_wait(_receiver: &Receiver) -> RutabagaResult<()>61 pub fn channel_wait(_receiver: &Receiver) -> RutabagaResult<()> {
62     Err(RutabagaError::Unsupported)
63 }
64 
read_volatile(_file: &File, _opaque_data: &mut [u8]) -> RutabagaResult<usize>65 pub fn read_volatile(_file: &File, _opaque_data: &mut [u8]) -> RutabagaResult<usize> {
66     Err(RutabagaError::Unsupported)
67 }
68 
write_volatile(_file: &File, _opaque_data: &[u8]) -> RutabagaResult<()>69 pub fn write_volatile(_file: &File, _opaque_data: &[u8]) -> RutabagaResult<()> {
70     Err(RutabagaError::Unsupported)
71 }
72 
channel() -> RutabagaResult<(Sender, Receiver)>73 pub fn channel() -> RutabagaResult<(Sender, Receiver)> {
74     Err(RutabagaError::Unsupported)
75 }
76 
77 pub type WaitContext = Stub;
78 
79 pub trait WaitTrait {}
80 impl WaitTrait for Stub {}
81 impl WaitTrait for &Stub {}
82 impl WaitTrait for File {}
83 impl WaitTrait for &File {}
84 impl WaitTrait for &mut File {}
85 
86 impl WaitContext {
new() -> RutabagaResult<WaitContext>87     pub fn new() -> RutabagaResult<WaitContext> {
88         Err(RutabagaError::Unsupported)
89     }
90 
add<Waitable: WaitTrait>( &mut self, _token: CrossDomainToken, _waitable: Waitable, ) -> RutabagaResult<()>91     pub fn add<Waitable: WaitTrait>(
92         &mut self,
93         _token: CrossDomainToken,
94         _waitable: Waitable,
95     ) -> RutabagaResult<()> {
96         Err(RutabagaError::Unsupported)
97     }
98 
wait(&mut self) -> RutabagaResult<Vec<CrossDomainEvent>>99     pub fn wait(&mut self) -> RutabagaResult<Vec<CrossDomainEvent>> {
100         Err(RutabagaError::Unsupported)
101     }
102 
delete<Waitable: WaitTrait>( &mut self, _token: CrossDomainToken, _waitable: Waitable, ) -> RutabagaResult<()>103     pub fn delete<Waitable: WaitTrait>(
104         &mut self,
105         _token: CrossDomainToken,
106         _waitable: Waitable,
107     ) -> RutabagaResult<()> {
108         Err(RutabagaError::Unsupported)
109     }
110 }
111