Commit Graph

51 Commits

Author SHA1 Message Date
Ruihan Li 5831c49a9a Check `high_watermark` against `avail_pages` 2026-05-28 11:17:03 +08:00
Ruihan Li 167c7ed31f Add `TxBufferBuilder` 2026-04-23 06:42:27 -07:00
Ruihan Li 19efa2dad4 Make queue/memory allocation faillible 2026-04-22 04:15:47 -07:00
Ruihan Li 3ac36963c7 Specify virtqueue API contract 2026-04-22 04:15:47 -07:00
Tate, Hongliang Tian 969be51afc Enforce `alphabetical-attrs` guideline across the codebase
Sort all non-derive outer attributes alphabetically by name,
place `#[derive(...)]` last (before any derive helper attributes
like `#[serde(...)]` and `#[clap(...)]`), and sort traits inside
`#[derive(...)]` alphabetically. This covers 329 files with 704
line changes (all pure reordering, no semantic changes).

Key patterns normalized:
- `#[cfg(...)]` comes first (c), then other attrs alphabetically
- `#[repr(...)]` stays before `#[derive(...)]` (derive is always last)
- `#[padding_struct]` and `#[pod_union]` precede `#[derive(...)]`
- Derive helper attrs like `#[serde(...)]` remain after `#[derive(...)]`
- Derive traits like `Debug, Clone, Copy` become `Clone, Copy, Debug`
- The common set `{Debug, Clone, Copy, Pod, Default}` (59 uses,
  12 prior orderings) is now uniformly `Clone, Copy, Debug, Default, Pod`
2026-04-08 01:08:41 -07:00
Tate, Hongliang Tian e4bcaabb39 Add `Memcpy`/`Memset` trait framework for typed memory copies
Introduce `Memcpy` and `Memset` traits that generalize the classic C
`memcpy` and `memset` for typed memory categories (`KernelMem`,
`UserMem`). The compiler resolves the correct implementation at
monomorphization time, making it straightforward to add new memory
categories (e.g., `IoMem` for TDX-aware I/O memory in #2958) without
a combinatorial explosion of function names.

Replace the four ad-hoc private functions (`memcpy`, `memcpy_fallible`,
`memset`, `memset_fallible`) in `mm/io/mod.rs` with trait-dispatched
free functions `memcpy::<Dst, Src>()` and `memset::<Dst>()`, and
update all call sites including `io_util` imports across the kernel
crate.
2026-03-17 02:46:32 -07:00
Ruihan Li 123c80848a Revise comments and visibility 2026-03-01 22:46:34 -08:00
Ruihan Li bd245fbaf7 Use `DmaPool` as the TX pool 2026-03-01 22:46:34 -08:00
Ruihan Li 6a8b965663 Improve `TxBuffer::new` 2026-03-01 22:46:34 -08:00
Ruihan Li b588327d98 Remove unused `TxBuffer::writer` 2026-03-01 22:46:34 -08:00
jiangjianfeng 4a80f0e5eb Replace Pod with zerocopy-backed Pod 2026-02-08 20:32:24 -08:00
jiangjianfeng 01cac4268e Manage dependencies at workspace level 2026-01-04 10:51:36 -08:00
jiangjianfeng 34ab63addb Manage package metadata at workspace level 2026-01-04 10:51:36 -08:00
Zhang Junyang 71681dd947 Refactor DMA APIs 2025-12-31 19:40:11 -08:00
Zhang Junyang 69327eee8d Upgrade to Rust 2024 2025-12-09 09:23:58 +08:00
Zhang Junyang dd410444e5 Format with new `rustfmt` 2025-12-09 09:23:58 +08:00
Ruihan Li 8be8397a67 Make network callbacks and names related 2025-10-20 20:56:55 +08:00
Ruihan Li 472edcf795 Clean up unnecessary features 2025-09-24 15:41:07 +08:00
Zhang Junyang 4e2bdc65de Refactor implicit `Arc` APIs for DMA 2025-09-02 17:53:55 +08:00
Zhang Junyang eb69aa4fb9 Unify address and size APIs for memory objects 2025-09-02 17:53:55 +08:00
Ruihan Li 2700d88bef Provide efficient `VmIo` with VM readers/writers 2025-08-10 16:40:11 +08:00
jiangjianfeng 7d24e63216 Move network polling code to bottom half 2025-04-15 14:54:51 +08:00
jiangjianfeng 0e1c660225 Make VmReader's several methods accept `&mut self` 2025-03-25 14:25:08 +08:00
jiangjianfeng 55713b88c4 Remove unused dependencies 2025-02-10 10:36:56 +08:00
Ruihan Li 95bbc7f367 Enforce `#[expect(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Zhang Junyang cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
jiangjianfeng 9a540d0fb6 Notify virtqueue in a batch manner 2024-12-19 14:49:56 +08:00
Shaowei Song 4cb85f0adb Fix dependency issue between components `logger` and `virtio` 2024-12-13 10:36:45 +08:00
Chen Chengjun 0cb2ea562e Inject the logger for Asterinas 2024-12-04 13:24:06 +08:00
Zhang Junyang 9e4257b655 Fix multiple issues pointed out by the new compiler 2024-10-13 22:32:05 +08:00
Zhang Junyang 909639fd70 Separate `SegmentSlice` from `Segment` 2024-10-09 19:23:46 +08:00
jiangjianfeng f793259512 Avoiding busy loop in sending packet and optimize device caps 2024-09-30 15:03:58 +08:00
Ruihan Li 51334c4a36 Clean up smoltcp dependencies 2024-09-26 15:22:16 +08:00
Ruihan Li 1b9b76d27c Make use of new `SpinLock` APIs 2024-09-13 21:31:20 +08:00
Shaowei Song e6f465b553 Replace all the ring buffers with the new one 2024-08-29 00:33:47 +08:00
Yuke Peng bb4751741a Bump smoltcp to newest git version 2024-08-22 22:58:36 +08:00
Shaowei Song 2102107be1 Refactor `VmReader`&`VmWriter` as given fallibility marker 2024-08-21 22:24:15 +08:00
Cautreoxit c44447d54b Refactor the API of spinlocks 2024-08-18 21:06:40 +08:00
Jianfeng Jiang f86583dbce Make essential changes for publishing OSTD 2024-07-18 18:18:05 +08:00
Jianfeng Jiang 3de8a9330a Fix the OSDK CI failure 2024-06-27 15:45:49 +08:00
Jianfeng Jiang 59350a8578 Rename aster-frame to ostd 2024-06-27 15:45:49 +08:00
Zhang Junyang cda8ffa7da Fix the usage of underscores in Cargo manifest keys 2024-06-21 10:57:08 +08:00
Anmin Liu 9f67fcdc58 Reuse Rxbuffer and update `qemu_args.sh` for vsock 2024-06-11 17:51:36 +08:00
Anmin Liu 60dd17fdd3 Support calling from inside via vsock 2024-06-11 17:51:36 +08:00
Zhang Junyang 7095b37e7e Refactor the source structure in `aster_frame::mm` 2024-06-03 22:16:02 +08:00
Zhang Junyang 14e1b1a9fc Rename various concepts related to memory management 2024-06-03 22:16:02 +08:00
Chen Chengjun c02eacd50c Use deny(unsafe_code) instead of forbid(unsafe_code) 2024-05-31 16:05:58 +08:00
Jianfeng Jiang cd1575bc6d Refactor virtio drivers with DMA APIs 2024-04-29 20:33:57 +08:00
Fabing Li dac41e9a2f Support T:?Sized as type parameter for Mutex, SpinLock, RwLock, and RwMutex 2024-04-17 08:51:59 +08:00