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