-
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Cargo.toml
107 lines (93 loc) · 2.97 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
[workspace]
members = [
"alloc",
"bitfield",
"cordyceps",
"util",
"hal-core",
"hal-x86_64",
"inoculate",
"maitake",
"maitake-sync",
"mycotest",
"trace",
"pci",
]
resolver = "2"
[package]
name = "mycelium-kernel"
version = "0.0.1"
authors = ["Eliza Weisman <[email protected]>"]
edition = "2021"
license = "MIT"
[lib]
name = "mycelium_kernel"
harness = false
[[bin]]
name = "mycelium_kernel"
path = "src/main.rs"
test = false
[profile.dev]
opt-level = 3
[dependencies]
acpi = "4.1.1"
hal-core = { path = "hal-core", features = ["embedded-graphics-core"] }
mycelium-alloc = { path = "alloc", features = ["buddy", "bump"] }
maitake = { path = "maitake", features = ["tracing-02"] }
mycelium-pci = { path = "pci" }
mycelium-util = { path = "util" }
mycelium-trace = { path = "trace", features = ["embedded-graphics"] }
rand_xoshiro = "0.6"
rand = { version = "0.8", default_features = false }
rlibc = "1.0"
# NOTE FOR FUTURE ELIZAS WHO ARE MESSING WITH THIS: the bootloader crate's build
# script is not that good, and breaks if you put this in `cfg(...).dependencies`
# instead of normal [dependencies]. don't move this.
bootloader_api = { version = "0.11" }
embedded-graphics = "0.7"
mycotest = { path = "mycotest" }
futures-util = { version = "0.3", default-features = false, features = ["async-await", "async-await-macro"] }
# we don't depend on this directly, but we need to ensure that `tracing` uses a
# Miri-compatible version of `once_cell`.
once_cell = { version = "1.15.0", default-features = false }
pc-keyboard = "0.6.1"
thingbuf = { version = "0.1.4", default_features = false, features = ["static"] }
[dev-dependencies]
mycotest = { path = "mycotest", features = ["runner"] }
[target.'cfg(target_arch = "x86_64")'.dependencies]
hal-x86_64 = { path = "hal-x86_64", features = ["rand_core"] }
yaxpeax-x86 = { version = "1.0.0", default-features = false, features = ["fmt"] }
yaxpeax-arch = { version = "0.2.0", default-features = false }
[dependencies.tracing]
default_features = false
features = ["attributes", "alloc"]
git = "https://github.com/tokio-rs/tracing"
[dependencies.wasmi]
git = "https://github.com/hawkw/wasmi"
branch = "mycelium-v0.9.0"
default-features = false
features = ["core"]
[dependencies.parity-wasm]
version = "0.45"
default-features = false
features = ["reduced-stack-buffer"]
[build-dependencies]
color-eyre = "0.6.2"
wat = "1.0"
vergen = "7.5.1"
[package.metadata.bootloader]
map-physical-memory = true
map-page-table-recursively = true
map-framebuffer = true
# the kernel is mapped into the higher half of the virtual address space.
dynamic-range-start = "0xFFFF_8000_0000_0000"
[patch.crates-io]
# use `tracing` 0.2 from git
tracing = { git = "https://github.com/tokio-rs/tracing" }
tracing-core = { git = "https://github.com/tokio-rs/tracing" }
# Custom profile for Loom tests: enable release optimizations so that the loom
# tests are less slow, but don't disable debug assertions.
[profile.loom]
inherits = "test"
lto = true
opt-level = 3