/* * Copyright (c) 2023 Emma Tebibyte * SPDX-License-Identifier: LGPL-3.0-or-later * * This file is part of SPD. * * SPD is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * * SPD is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License * along with SPD. If not, see . * * This file incorporates work covered by the following copyright and permission * notice: * * MIT License * * Copyright (c) 2023 Matt Mastracci and contributors * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. */ #![no_std] extern crate alloc; extern crate core; pub mod entry; mod macros; pub mod process; pub use alloc::{ borrow::*, boxed::*, collections::*, rc::*, string::*, vec::*, }; pub use core::*; pub use macros::*; pub use libc_dbg as dbg; pub use libc_eprint as eprint; pub use libc_eprintln as eprintln; pub use libc_ewriteln as ewriteln; pub use libc_print as print; pub use libc_println as println; pub use libc_writeln as writeln; pub use libc_alloc::LibcAlloc; pub const SOURCE: &str = "https://git.tebibyte.media/emma/spd.git"; #[global_allocator] pub static ALLOCATOR: LibcAlloc = LibcAlloc; #[panic_handler] pub fn panic(info: &panic::PanicInfo) -> ! { eprintln!("{:?}", info); loop {} }