9f2de2a0b1
Docs:
- Baseline was stated as 0.3.1 across the canonical set while the branch,
Cat 0/1 crates and every Cat 2 fork are 0.3.2. AGENTS.md also cited a
sources/redbear-0.3.1/ archive that does not exist; the only archive
present is sources/redbear-0.1.0/. Versioning examples now match the
forks as they actually stand (redoxfs/syscall 0.9.1, libredox 0.1.19).
- Repaired 18 instances of 'immutable archived' across 8 documents, where
a global find/replace had turned sync/synced/archived into that phrase
and produced ungrammatical text ('never auto-immutable archived',
'### Source immutable archived').
- Settled the apply-patches.sh contradiction empirically. Both sides were
wrong: the GROSS WARNING blocks (x5) described it as routine
patch-linking, and SCRIPT-BEHAVIOR-MATRIX.md said build-redbear.sh
'never invokes' it. It is invoked at build-redbear.sh:487, but only to
auto-repair a failed verify-overlay-integrity.sh check.
- Dropped the dangling reference to a local/AGENTS.md section
'NO OVERLAY-STYLE PATCHES — SCOPED POLICY' that does not exist.
Build system:
- mk/prefix.mk hardcoded 13.2.0 in the limits.h removal, which silently
no-ops after a toolchain upgrade and leaves the conflicting header.
Version-globbed.
- Parameterized GCC_RECIPE so the from-source toolchain path is not
pinned to gcc13.
- The three cstdlib strtold seds were not idempotent -- the shipped GCC
13 toolchain carried that comment block 17 times from repeated
'make prefix' runs. Each is now guarded.
4.1 KiB
4.1 KiB
redbear-udisks — D-Bus Interface
Bus: system
Well-known name: org.freedesktop.UDisks2
Object paths:
/org/freedesktop/UDisks2— ObjectManager root/org/freedesktop/UDisks2/Manager— Manager object/org/freedesktop/UDisks2/drives/<id>— Per-drive objects/org/freedesktop/UDisks2/block_devices/<id>— Per-block objects
Interface: org.freedesktop.DBus.ObjectManager
At /org/freedesktop/UDisks2:
| Method | Signature | Description |
|---|---|---|
GetManagedObjects |
() → (a{oa{sa{sv}}}) |
Return all managed objects with their interfaces and properties |
| Signal | Signature | Description |
|---|---|---|
InterfacesAdded |
(o, a{sa{sv}}) |
New interfaces appeared on an object path |
InterfacesRemoved |
(o, as) |
Interfaces were removed from an object path |
Interface: org.freedesktop.UDisks2.Manager
Methods
| Method | Signature | Description |
|---|---|---|
GetBlockDevices |
(options: a{sv}) → (ao) |
List all block device object paths |
GetDrives |
(options: a{sv}) → (ao) |
List all drive object paths |
Properties
| Property | Type | Description |
|---|---|---|
Version |
s |
Package version (from CARGO_PKG_VERSION) |
SupportedFilesystems |
as |
Currently empty (filesystem support detects at mount time) |
SupportedEncryptionTypes |
as |
Empty (encryption not supported) |
DefaultEncryptionType |
s |
Empty |
Interface: org.freedesktop.UDisks2.Drive
Methods
None (property-only interface).
Properties
| Property | Type | Description |
|---|---|---|
ConnectionBus |
s |
Scheme identity string (e.g. "scheme:ahci", "scheme:nvme") |
Size |
t |
Total drive size in bytes |
Interface: org.freedesktop.UDisks2.Block
Methods
| Method | Signature | Description |
|---|---|---|
Mount |
(options: a{sv}) → (s) |
Mount the block device. Accepts fstype option ("ext4" or "vfat"). Auto-detects ext4 (magic 0xEF53 at offset 0x438) and FAT (magic 0x4D44 at end of VBR). Returns mount point path. |
Unmount |
(options: a{sv}) → () |
Unmount a previously-mounted block device. Sends SIGTERM to the child filesystem daemon. |
Properties
| Property | Type | Description |
|---|---|---|
Device |
ay |
Device path as byte array |
PreferredDevice |
ay |
Preferred device path (same as Device) |
Symlinks |
aay |
Empty (no symlink tracking) |
Size |
t |
Block device size in bytes |
ReadOnly |
b |
Whether the device is read-only |
Drive |
o |
Parent drive object path |
HintPartitionable |
b |
Whether the block is a partitionable device |
MountPoints |
aay |
Current mount points (empty when not mounted) |
IdType |
s |
Detected filesystem type: "ext4", "vfat", or "" (unknown) |
Inventory Discovery
At startup, Inventory::scan() enumerates block devices from:
/scheme/diskd/— disk aggregator scheme (BlockDev entries)/scheme/ahci/— AHCI scheme/scheme/nvme/— NVMe scheme
Each device is classified as a DriveDevice with associated BlockDevice entries. Object paths are stable (derived from the device name).
Filesystem Detection
detect_filesystem(device_path) reads the block device:
- Offset 0x438: ext4 magic (
0xEF53at bytes 56-57 of superblock) - End of VBR: FAT magic (
0x4D44signature at VBR tail)
If fstype is passed as a mount option, it takes precedence over detection.
Connection
- System bus, same
DBUS_STARTER_ADDRESS/DBUS_SYSTEM_BUS_ADDRESSenv var resolution as other D-Bus daemons - 3 retry attempts at 1 s intervals
- SIGTERM/Ctrl-C handler for clean shutdown
References
- UDisks2 D-Bus API
- Conformance: Subset implementation. Drive and Block objects with static properties. Mount/Unmount with ext4 and FAT support. ObjectManager for discovery. No ATA, partition table, filesystem size, or SMART interfaces. No encryption, RAID, or loop support.