Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
0.10.0 source code.tar.gz | 2025-01-18 | 275.7 kB | |
0.10.0 source code.zip | 2025-01-18 | 370.6 kB | |
README.md | 2025-01-18 | 15.0 kB | |
Totals: 3 Items | 661.3 kB | 0 |
🚀 Features
- (x86_64) Print FDT
- (newlib) Add support for riscv64
- (virtio-spec) Add vsock definitions
- (newlib) Add support for aarch64
- (xtask) Sanitize rustc for finding binutils
- (xtask) Sanitize rustup calls
- (xtask) Sanitize cargo for normal builds
- (xtask) Support relative paths
- (xtask) Add
--artifact-dir
option for builds - (xtask) Allow starting the hypervisor using
sudo
- (newlib) Remove
sbrk
- Add strace feature
- Log jumping into application
- (env) Parse FDT bootargs on all platforms
- (env) Parse
env=KEY=VALUE
for env vars - (uhyve) Don't override
get_application_parameters
- UEFI MVP
- Add stable exit code message in non-Uhyve VMs
- (xtask) Set vcpu_count for Firecracker
- (xtask) Create
xtask ci rs
subcommand - (xtask) Add
xtask ci c
subcommand - (log) Make
HERMIT_LOG_LEVEL_FILTER
case-insensitive - (panic) Resolve deadlock when panicking while printing
- Upgrade to Rust 2024
- (uhyve) Use absolute paths
- Weakly provide the
sys_errno_location
function for all errno access - Add version note
🐛 Bug Fixes
- (pci) Remove
FnOnce
workaround - (virtio) Remove unused
PciError::BadCapPtr
- (virtio/pci) Remove
PciCfgAlt
- (pci) Make BAR pages no-execute
- (virtio) Make config generation checking transport independent
- (net/virtio/pci) Remove commented out code
- (virtio-spec) Rustdoc::broken_intra_doc_links
- (net/virtio) Remove unused and wrong net command enums
- (virtio-spec) Make
net::Config
fields read-only - (x86_64/physicalmem) Rename
detect_from_limits
todetect_from_uhyve
- (virtqueue/packed) Simplify
DrvNotif::enable_specific
- (virtqueue/split) Set
next_idx
for driver notifications - (virtqueue/packed) Fix
EventSuppr
bitfield operations - (virtqueue/packed) Check range on
RING_EVENT_FLAGS_DESC
- (virtqueue/packed) Use correct
next_idx
- (virtqueue/packed) Set flags according to wrap count
- (virtqueue/split) Fix off-by-one error
- (pci) Remove unused
enum DeviceHeader
- (pci) Remove unused
mod constants
- (pci) Remove unused
PciDevice
methods - (virtqueue/split) Remove dead code
- (virtqueue/packed) Zero-initialize descriptors
- (virtqueue/packed) Don't change flags when not making available
- (virtqueue/packed) Check for descriptor exhaustion
- (virtq/split) Return id with the correct index for the chain head
- (virtio-spec) Export vsock feature bits
- (virtq) Move fuse_entry_out to payload
- (net/virtio) Push the correct number of packets to the queue
- (xtask) Keep
CARGO_HOME
andRUSTUP_HOME
- (xtask) Set current dir for sanitized binaries
- (xtask) Move builtins target dir into main one
- (syscalls) Unused_imports
- (entropy) Unused_imports
- (recmutex) Clippy::new_without_default
- (recmutex) Clippy::not_unsafe_ptr_arg_deref
- (tasks) Clippy::not_unsafe_ptr_arg_deref
- (riscv64/virtualmem) Dead_code
- (xtask) Enable clippy for
feature = "newlib"
- Boot application processors after initializing scheduler
- (fd) Clippy::too_long_first_doc_paragraph
- (x86_64) Downgrade log level of page unmap
- (x86_64/phys_mem) Don't panic on empty FDT memory map
- Remove explicit link section attributes
- (aarch64) Remove unused
get_boot_info_address
- (entry) Only set boot info globals on first CPU core
- (riscv64) Validate entry signature
- (entry) Allow boot info null pointer
- (smp) Don't populate boot info pointer
- (x86_64/smp) Remove
boot_info
parameter - (arch) Remove
RAW_BOOT_INFO
- (arch) Make
BOOT_INFO
aOnceCell
- Make
Virtq
requireSend
- (pci) Put PCI devices into a cell
- (pci) Put PCI drivers into a cell
- (x86_64) Put MMIO drivers into a cell
- (x86_64/vga) Put VGA screen into mutex
- (aarch64) Put serial port into mutex
- (aarch64) Put GIC into mutex
- (net) Make GEM driver
Send
- (riscv64) Put MMIO drivers into a cell
- (riscv64) Put available HARTs into a cell
- (shell) Unreachable_code
- (shell) Unused_variables
- (xtask) Enable
shell
feature clippy::needless_lifetimes
- (aarch64/core_local)
clippy::pointers_in_nomem_asm_block
- (shell) Move shell into async task
- (arch) Migrate to
naked_asm
in naked functions - (riscv64) Remove manual align implementations
- (cfg)
dead_code
- (x86_64/mem) Allow deallocating before kernel
- (x86_64/paging) Extract
map_pages
- (x86_64/paging)
print_page_tables
- (x86_64/paging) Rework
disect
- (x86_64/paging) Add
print_page_table_entries
- (virtqueue) Clippy::extra_unused_lifetimes
- (xtask) Build docs for each arch separately
- (x86_64) Make
kernel_heap_end
a valid virtual address - (x86_64) Log interrupt even without handler
- (x86_64) Check for null pointer in
core_scheduler
- (main) Enable interrupts after initializing scheduler
- (apic) Disable PIT interrupt
- (x86_64) Use unaligned write for TLS pointer
- (apic) Fix width of MP config table entry type
- (xtask) Remove
--verbose
from Uhyve call - (virtqueue)
clippy::unnecessary_map_or
- (pci)
clippy::question_mark
- (syscalls) Use
c_char
instead ofu8
- (socket) Remove upstream-resolved allow
- (virtio-net) Use the correct number of buffers for merging
- (syscalls) Use
ptr::byte_add
- (syscalls) Remove useless pointer casts
- Enable
clippy::string_to_string
- Enable
clippy::ref_as_ptr
- Enable
clippy::ptr_as_ptr
- Enable
clippy::ptr_cast_constness
- Enable
clippy::borrow_as_ptr
- Enable
clippy::cast_lossless
- Enable
clippy::if_not_else
- Enable
clippy::ignored_unit_patterns
- Enable
clippy::manual_let_else
- Enable
clippy::semicolon_if_nothing_returned
- Enable
clippy::ref_option
- Enable
clippy::explicit_deref_methods
- Enable
clippy::default_trait_access
- Enable
clippy::manual_assert
- Enable
clippy::inconsistent_struct_constructor
- Enable
clippy::match_wildcard_for_single_variants
- Enable
clippy::unreadable_literal
- Enable
clippy::separated_literal_suffix
- Enable
clippy::decimal_literal_representation
- (dns)
clippy::len_zero
- (dns)
clippy::useless_conversion
- (xtask) Run clippy on
feature = "dns"
- (xtask) Don't test
feature = "shell"
on unsupported arches - (virtqueue) Make
BufferElem::{len,capacity}
returnu32
- (uhyve) Fix improper unlink string handling
- (common-os)
clippy::unreadable-literal
- (common-os)
clippy::fn_to_numeric_cast
- (common-os)
clippy::unnecessary_cast
- (common-os)
clippy::result_unit_err
- (common-os) Expect
dead_code
- (aarch64) Fix compilation with
feature = "common-os"
- (riscv64) Fix compilation with
feature = "common-os"
- (xtask) Run clippy on
feature = "common-os"
- (x86_64) Use correct MSR for
read{fs,gs}
- Allow building with all features
- (interrupts)
unused_imports
- (scheduler)
dead_code
- (rtl8139)
clippy::if-not-else
clippy::semicolon-if-nothing-returned
- (udp)
clippy::ignored-unit-patterns
- (xtask) Clippy all features
clippy::literal_string_with_formatting_args
clippy::precedence
- (tests)
static_mut_refs
- (tests)
stable_features
- (tests) Remove unused
value_fence
- (tests) Don't reexport in
common
- (tests) Move
parse
to avoiddead_code
- (tests)
unsafe-op-in-unsafe-fn
- (tests) Allow
dead_code
ontest_case_runner
- (tests) Literals
- (tests/basic_mem) Clippy
- (tests)
clippy::uninit_vec
- (tests/thread) Pointer casting
- (tests)
clippy::result_unit_err
- (tests) Remove explicit QEMU debug exit
- (xtask) Run clippy on all targets
- (tests) Clean up comments
- Use
#[unsafe(no_mangle)]
- Mark
extern
blocks asunsafe
- (macros)
tail_expr_drop_order
- (xtask) Use canonical
cargo_home
location - (xtask) Assume exe exists in
cargo_home
- (xtask) Add support testing for C-based HTTP servers
- (xtask) Don't assume exe exists in
cargo_home
- (paging) Support huge pages in debug function
💼 Other
- Turn cmd from a tuple into a struct
- Separate response headers and payload
- Don't assume uninitialized objects to be initalized
- Don't expose uninit rsp to the fuse module
- Use DeviceAlloc for virtq allocations
- TransferTokens should always have a BufferToken
- Move common logic for making descriptor available into a function
- Remove unnecessary memory barriers
- Move common lines in conditional outside
- Move ctrl_desc to TransferToken
- Merge Buffer variants
- Start
MemDescrId
from 0 - Delay MemDescrId assignment until push
- Handle id exhaustion
- Don't expose TransferTokens to the drivers
- Use the actual type for ctrl_descs instead of MemDescr
- Don't modify flags for skipped descriptors
- Improve error handling
- Correctly parse irq-flags from dts
- (fs) Correct uhyve mount message
- (deps) Upgrade zerocopy to 0.8, fuse-abi to 0.2, and virtio-spec to 0.2
- Store only the most preferred capability of a type
- (qemu) Simplify memory calculation
- Close connection if data isn't available
- (deps) Update
Cargo.lock
- (virtio-fs) Remove unnecessary to_string()
- (vscode) Don't check all architectures
- Don't panic on initial unmap if page is not mapped
- (deps) Update
Cargo.lock
- (deps) Remove
x86
- Use the serial buffer hypercall instead of the byte-wise one
- (deps) Update hermit-entry to 0.10.2
- (deps) Don't specify minor version of bitflags crate
- (deps) Update
Cargo.lock
🚜 Refactor
- (virtio/pci) Remove
offset
,length
fields - (virtio/pci) Inline
Origin
intoPciCap
- (virtio/pci) Rename
PciCap::cap_struct
toPciCap::cap
- (virtio/pci) Remove
cfg_type
,id
fromPciCap
- (virtio/pci) Migrate extra cap data reading to virtio-spec
- (pci) Implement
set_irq
usingEndpointHeader::update_interrupt
- (virtio) Move
notif_data
into virtio-spec - (virtio) Remove memory newtypes
- (virtio) Use generic PCI memory_map_bar impl
- (net/virtio) Move transport modules into virtio module
- (net/virtio) Migrate
Status
to virtio-spec - (net/virtio) Migrate
NetDevCfgRaw
to virtio-spec - Rename
virtio-spec
dependency tovirtio
- (virtio-spec) Move
fs
module into separate file - (fs/virtio) Migrate
FsDevCfgRaw
to virtio-spec - (x86_64) Move
Fdt
creation intoget_fdt
- (x86_64) Extract
TOTAL_MEMORY
access - (x86_64) Extract
PHYSICAL_FREE_LIST
lock - (virtqueue) Extract
NotificationData
creation - (virtqueue/packed) Add
RingIdx
- (virtqueue/packed) Migrate from
zerocopy::little_endian
tovirtio-spec
- (virtqueue) Migrate to
DescrFlags
to virtio-spec - (virtqueue) Migrate
Descriptor
to virtio-spec - (virtqueue/split) Migrate
UsedElem
to virtio-spec - (virtqueue/packed) Migrate
EventSuppr
to virtio-spec - (virtqueue) Migrate
Descriptor
to virtio-spec - (virtqueue/split) Make accesses non-volatile
- (virtqueue/split) Rename
GenericRing::index
to idx - (virtqueue/split) Migrate to
virtq::Avail
andvirtq::Used
- (virtqueue/packed) Move avail and used flag handling to the ring
- Move
fd::IoError
toio::Error
- Add and use
io::Result
type - (fuse) Migrate to
fuse-abi
crate - (virtio) Adapt
DeviceConfigSpace::read_config_with
- (virtio-spec) Import endian-num types from crate root
- (virtio-spec) Move NotificationData into separate module
- (virtio-spec) Feature-gate transport modules
- (virtq) Use safe types for virtq buffers
- (virtq) Represent avail and used buffers as distinct types
- (virtq) Eliminate RefCell and Rc usage
- Migrate to virtio-spec release
- (virtio-net) Remove unused is_multi field
- (virtq) Reduce code duplication
- (xtask) Move sanitized cargo to crate root
- (xtask) Extract
sanitize
function - (xtask) Extract
fn project_root
- (uhyve) Unify
uhyve_send
- (virtq) Remove intermediate virtqueue channels
- (arch) Move boot info into env
- (riscv64) Avoid redundant
HARTS_AVAILABLE
access - Remove arch-specific
get_fdt
- (mm) Memory check
- (x86_64/physicalmem) Inline
find_all_nodes
- (x86_64/physicalmem) Simplify
TOTAL_MEMORY
handling - (x86_64/acpi) Use methods for reading pointers
- (apic) Merge
ioapic_inton
andioapic_intoff
- (apic) Simplify I/O APIC config
- (xtask) Make
--smp
hypervisor independent - (xtask) Determine
small
inRs
- (xtask) Extract arch in
Rs
- (xtask)
impl Display for Arch
- (pci) Remove explicit type
- Move lint config into
Cargo.toml
- (console) Extract
Console::write
- (stdio) Use
Console::write
- (console) Extract
Console::read
- (console) Centralize state
- (xtask) Extract clippy base
- (stdio) Migrate to
uhyve-interface
- (acpi) Migrate from
x86
crate tox86_64
crate - (apic) Migrate MSR access to
x86_64
crate - (apic) Migrate CR3 access to
x86_64
crate - (apic) Vendor MSR constants
- (gdt) Migrate CR3 access to
x86_64
crate - (kernel) Migrate CR0 and CR4 access to
x86_64
crate - (pci) Migrate to
x86_64
crate - (pic) Migrate to
x86_64
crate - (pit) Migrate to
x86_64
crate - (processor) Migrate CR0, CR4, and XCR0 access to
x86_64
crate - (processor) Migrate FS and GS access to
x86_64
crate - (processor) Migrate
halt()
tox86_64
crate - (processor) Migrate EFER setup to
x86_64
crate - (processor) Migrate CPUID access to
raw_cpuid
crate - (processor) Decrease
unsafe
scope - (processor) Migrate MSR access to
x86_64
crate - (processor) Use specialized functions for STAR, LSTAR, and SFMASK access
- (processor) Use safe function for STAR access
- (systemtime) Migrate port access to
x86_64
crate - (vga) Migrate port access to
x86_64
crate - (mm) Migrate CR3 access to
x86_64
crate - (rtl8139) Migrate port access to
x86_64
crate - (uhyve) Migrate port access to
x86_64
crate
📚 Documentation
- (virtio-spec) Add missing doc aliases
- (virtio-spec)
pvirtq
module docs typo
⚡ Performance
- (arch) Relax
TOTAL_MEMORY
accesses - Make network buffers a power of two
🎨 Styling
- (virtio-spec) Format code in doc comments
- (x86_64/paging) Stray comma
- (gem) Rename
RecieveStatus
toReceiveStatus
- Fix typos
- Add
typos.toml
- (xtask) Add semicolons
- Format hex literals as lowercase
- Dont use
core
as::core
outside of macros - Use Rust 2024 style edition
- (ci) Format
🧪 Testing
- Add
get_application_parameters
test
⚙️ Miscellaneous Tasks
- (Cargo.toml) Sort features
- Migrate to maintained rustsec/audit-check
- Add typos job
- Remove caching