This repository was archived by the owner on Jul 17, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathCargo.toml
More file actions
127 lines (117 loc) · 4.99 KB
/
Cargo.toml
File metadata and controls
127 lines (117 loc) · 4.99 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
[package]
name = "nrk"
version = "0.0.4"
authors = [
"Gerd Zellweger <mail@gerdzellweger.com>",
]
description = "Experimental OS kernel"
readme = "README.md"
license = "MIT OR Apache-2.0"
build = "build.rs"
edition = "2021"
resolver = "2"
[dependencies]
# Our own dependencies:
apic = { path = "../lib/apic/" }
node-replication = { path = "../lib/node-replication/nr" } #"0.1.1"
cnr = { path = "../lib/node-replication/cnr" }
kpi = { path = "../lib/kpi" }
rpc = { path = "../lib/rpc", optional = true }
vmxnet3 = { path = "../lib/vmxnet3" }
bootloader_shared = { path = "../lib/bootloader_shared" }
x86 = { version = "0.52", features = ["unstable"] }
klogger = "0.0.16"
driverkit = "0.25"
spin = "0.9.1"
elfloader = "0.14"
slabmalloc = "0.10"
backtracer_core = "0.0.7"
rawtime = "0.0.10"
libacpica = "0.0.8"
atopology = "0.0.33"
# External libraries we use:
log = "0.4"
displaydoc = { version = "0.2", default-features = false }
lazy_static = { version = "1.4", features = ["spin_no_std"] }
once_cell = { version = "1.12.0", features = [ "alloc" ], default-features = false }
logos = { version = "0.12", default-features = false, features = ["export_derive"] }
hashbrown = { version = "0.11", features = [ "nightly" ] }
cstr_core = { version = "0.2.3", default-features = false }
uefi = "0.15"
crossbeam-utils = { version = "0.8.0", default-features = false }
static_assertions = "1.1.0"
bit_field = "0.10"
crossbeam-queue = { version = "0.3", default-features = false, features = ["alloc"] }
arrayvec = { version = "0.7.0", default-features = false }
memoffset = { version = "0.6.5", features = ["unstable_const"] }
fallible_collections = { git = "https://github.com/gz/fallible_collections.git", branch = "allocator_api3", features = ["unstable", "rust_1_57"] }
# Should be optional (but currently aren't, TODO)
gimli = { version = "0.26", default-features = false, features = ["read", "endian-reader"] }
gdbstub = { git = "https://github.com/daniel5151/gdbstub.git", branch = "dev/0.6", default-features = false, features = ["alloc"] }
gdbstub_arch = { git = "https://github.com/daniel5151/gdbstub.git", branch = "dev/0.6" }
# Optional external libraries:
addr2line = { version = "0.16", default-features = false, features = ["rustc-demangle"], optional = true }
smoltcp = { version = "0.8.0", default-features = false, features = [ "alloc", "log", "proto-ipv4", "proto-igmp", "proto-dhcpv4", "socket-raw", "socket-icmp", "socket-udp", "socket-tcp" ], optional = true }
[[bin]]
name = "nrk"
path = "src/main.rs"
[target.'cfg(target_os = "none")'.dependencies]
abomonation = { git="https://github.com/hunhoffe/abomonation.git", branch="no-std", default-features = false, optional = true }
core2 = { version = "0.3", default-features = false, features = [ "alloc" ], optional = true }
serde = { version = "1", default-features = false, features = ["alloc", "derive"], optional = true }
serde_cbor = { version = "0.11", default-features = false, optional = true }
[target.'cfg(not(target_os = "none"))'.dependencies]
libc = { version = "0.2.53", default-features = false }
csv = "1.1"
abomonation = { git="https://github.com/hunhoffe/abomonation.git", branch="no-std", default-features = false, optional = true }
core2 = { version = "0.3", default-features = false, features = [ "alloc" ], optional = true }
serde = { version = "1" }
serde_cbor = { version = "0.11" }
rand = { version = "0.8", features = ["small_rng"] }
ctor = "0.1.20"
memfile = "0.2.1"
[target.'cfg(not(target_os = "none"))'.dev-dependencies]
rexpect = { git = "https://github.com/gz/rexpect.git", branch = "eof-nix" }
proptest = "1.0.0"
hwloc2 = "2.2"
env_logger = "0.9"
which = "4"
testutils = { path = "testutils" }
[build-dependencies]
cc = "1.0"
[features]
default = ["addr2line", "serde", "serde_cbor", "core2", "abomonation"]
# Enable Ethernet based networking.
ethernet = ["smoltcp"]
# Enable shared memory based communication.
shmem = []
# Enables distributed operation by running a control-plane and light-weight
# kernels that communicate with the control-plane for coarse-grained policy
# decisions. Use in combination with `shmem` or `ethernet` feature to control
# transport.
rackscale = ["rpc"]
# server code (supply --kgdb to run.py).
gdb = []
#
# The following features are used for testing *only* and should not be enabled
# otherwise:
#
# Runs an integration test (supplied as commandline `test=` argument) instead of
# standard kernel main function.
integration-test = ["shmem", "ethernet", "rackscale"]
# smoke: Shortens long running benchmarks to test just functionality.
smoke = []
# baremetal: Compile benchmarks for running on bare-metal.
baremetal = []
# pre-alloc guest memory: For benchmark sensitive to VM exits.
prealloc = []
# pfault-early: cause a page-fault early during init.
cause-pfault-early = []
# gpfault-early: cause a gp-fault early during init.
cause-gpfault-early = []
# double-fault: cause a double-fault early during init.
cause-double-fault = []
# test-timer: print something on a timer interrupt.
test-timer = []
# test-shmem: print something on a shmem interrupt.
test-shmem = []