sim: Move simflash to be its own crate
In preparation for moving the bootutil binding into a separate crate,
move the flash simulator into its own crate. This will allow the
binding to have access to the simulator without creating a circular
dependency.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/sim/Cargo.lock b/sim/Cargo.lock
index 549a41e..8974502 100644
--- a/sim/Cargo.lock
+++ b/sim/Cargo.lock
@@ -4,12 +4,12 @@
dependencies = [
"docopt 0.6.86 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "error-chain 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gcc 0.3.51 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-serialize 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "simflash 0.1.0",
]
[[package]]
@@ -158,6 +158,13 @@
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
+name = "simflash"
+version = "0.1.0"
+dependencies = [
+ "error-chain 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
name = "strsim"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/sim/Cargo.toml b/sim/Cargo.toml
index a93f299..a0d6299 100644
--- a/sim/Cargo.toml
+++ b/sim/Cargo.toml
@@ -10,11 +10,11 @@
[dependencies]
libc = "0.2.0"
rand = "0.3.0"
-error-chain = "0.7.1"
docopt = "0.6"
rustc-serialize = "0.3"
log = "0.3"
env_logger = "0.3"
+simflash = { path = "simflash" }
[profile.test]
opt-level = 1
diff --git a/sim/simflash/.gitignore b/sim/simflash/.gitignore
new file mode 100644
index 0000000..03314f7
--- /dev/null
+++ b/sim/simflash/.gitignore
@@ -0,0 +1 @@
+Cargo.lock
diff --git a/sim/simflash/Cargo.toml b/sim/simflash/Cargo.toml
new file mode 100644
index 0000000..c508d01
--- /dev/null
+++ b/sim/simflash/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "simflash"
+version = "0.1.0"
+authors = ["David Brown <david.brown@linaro.org>"]
+
+[dependencies]
+error-chain = "0.7.1"
diff --git a/sim/src/flash.rs b/sim/simflash/src/lib.rs
similarity index 98%
rename from sim/src/flash.rs
rename to sim/simflash/src/lib.rs
index 98b6a27..991bbe4 100644
--- a/sim/src/flash.rs
+++ b/sim/simflash/src/lib.rs
@@ -3,6 +3,9 @@
//! This module is capable of simulating the type of NOR flash commonly used in microcontrollers.
//! These generally can be written as individual bytes, but must be erased in larger units.
+#[macro_use] extern crate error_chain;
+mod pdump;
+
use std::fs::File;
use std::io::Write;
use std::iter::Enumerate;
diff --git a/sim/src/pdump.rs b/sim/simflash/src/pdump.rs
similarity index 100%
rename from sim/src/pdump.rs
rename to sim/simflash/src/pdump.rs
diff --git a/sim/src/api.rs b/sim/src/api.rs
index 2fa6b31..0347b65 100644
--- a/sim/src/api.rs
+++ b/sim/src/api.rs
@@ -1,6 +1,6 @@
//! HAL api for MyNewt applications
-use flash::{Result, Flash};
+use simflash::{Result, Flash};
use libc;
use log::LogLevel;
use mem;
diff --git a/sim/src/area.rs b/sim/src/area.rs
index eb42292..5a1ef6c 100644
--- a/sim/src/area.rs
+++ b/sim/src/area.rs
@@ -1,6 +1,6 @@
//! Describe flash areas.
-use flash::{Flash, SimFlash, Sector};
+use simflash::{Flash, SimFlash, Sector};
use std::ptr;
/// Structure to build up the boot area table.
diff --git a/sim/src/c.rs b/sim/src/c.rs
index dd98c19..a3a6b4f 100644
--- a/sim/src/c.rs
+++ b/sim/src/c.rs
@@ -1,7 +1,7 @@
/// Interface wrappers to C API entering to the bootloader
use area::AreaDesc;
-use flash::Flash;
+use simflash::Flash;
use libc;
use api;
diff --git a/sim/src/main.rs b/sim/src/main.rs
index af3a2d6..dfebea7 100644
--- a/sim/src/main.rs
+++ b/sim/src/main.rs
@@ -4,9 +4,7 @@
extern crate libc;
extern crate rand;
extern crate rustc_serialize;
-
-#[macro_use]
-extern crate error_chain;
+extern crate simflash;
use docopt::Docopt;
use rand::{Rng, SeedableRng, XorShiftRng};
@@ -19,12 +17,10 @@
mod area;
mod c;
-mod flash;
pub mod api;
-mod pdump;
mod caps;
-use flash::{Flash, SimFlash};
+use simflash::{Flash, SimFlash};
use area::{AreaDesc, FlashId};
use caps::Caps;