gpcas_isa/lib.rs
1// Filename: lib.rs
2// Version:	 0.9
3// Date:	 14-11-2021 (DD-MM-YYYY)
4// Library:  gpcas_isa
5//
6// Copyright (c) 2021 Kai Rese
7// This program is free software: you can redistribute it and/or modify
8// it under the terms of the GNU Lesser General Public License as
9// published by the Free Software Foundation, either version 3 of the
10// License, or (at your option) any later version.
11//
12// This program is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU Lesser General Public License for more details.
16//
17// You should have received a copy of the GNU Lesser General Public
18// License along with this program. If not, see
19// <https://www.gnu.org/licenses/>.
20
21//! Provides the interface between ISAs and the GPCAS simulator. It also provides basic handling of
22//! ELF files.
23//! In order to provide support, an ISA has to provide a public function that returns an [`Isa`]
24//! object.
25//! Possible ISAs are defined in [`IsaIdentifier`].
26#![warn(missing_docs)]
27
28mod elf;
29mod emulator;
30mod instruction;
31mod isa;
32
33pub use elf::{check_isa, ELFFileHeaderFront};
34pub use emulator::{format_c_string, Emulator, InteractiveEmulator, OperandStorage};
35pub use instruction::{instruction_flags, Instruction, IS_VECTOR_REGISTER, MAX_INPUTS};
36pub use isa::{Isa, IsaIdentifier, MemoryAccessType};