1 // Copyright 2022, The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 //! Basic functionality for bare-metal binaries to run in a VM under crosvm.
16 
17 #![no_std]
18 
19 extern crate alloc;
20 
21 pub mod arch;
22 pub mod bionic;
23 pub mod console;
24 mod entry;
25 pub mod exceptions;
26 pub mod fdt;
27 pub mod heap;
28 mod hvc;
29 pub mod hyp;
30 pub mod layout;
31 pub mod linker;
32 pub mod logger;
33 pub mod memory;
34 pub mod power;
35 pub mod rand;
36 pub mod uart;
37 pub mod util;
38 pub mod virtio;
39 
40 use core::panic::PanicInfo;
41 use power::reboot;
42 
43 #[panic_handler]
panic(info: &PanicInfo) -> !44 fn panic(info: &PanicInfo) -> ! {
45     eprintln!("{}", info);
46     reboot()
47 }
48