Round 322: Sysctl ext, Procfs ext, Sysfs ext, Devtmpfs ext, Udevadm ext (20 commands)

ober

5450c3b3db127c59e625fe81f5b2ede5a05ddb60

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 2e5a1cf..8f1ceb2 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 322 — Sysctl ext, Procfs ext, Sysfs ext, Devtmpfs ext, Udevadm ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `sysctl-show` | :orange_circle: | Show sysctl parameter |
+| `sysctl-all` | :orange_circle: | Show all parameters |
+| `sysctl-pattern` | :orange_circle: | Match parameters by pattern |
+| `sysctl-search` | :orange_circle: | Search parameters |
+| `procfs-meminfo` | :orange_circle: | Show /proc/meminfo |
+| `procfs-cpuinfo` | :orange_circle: | Show /proc/cpuinfo |
+| `procfs-loadavg` | :orange_circle: | Show /proc/loadavg |
+| `procfs-mounts` | :orange_circle: | Show /proc/mounts |
+| `sysfs-list` | :orange_circle: | List sysfs entries |
+| `sysfs-search` | :orange_circle: | Search sysfs attributes |
+| `sysfs-attribute` | :orange_circle: | Read sysfs attribute |
+| `sysfs-driver` | :orange_circle: | Show driver info |
+| `devtmpfs-list` | :orange_circle: | List /dev entries |
+| `devtmpfs-create` | :orange_circle: | Create device node |
+| `devtmpfs-remove` | :orange_circle: | Remove device node |
+| `devtmpfs-permissions` | :orange_circle: | Show device permissions |
+| `udevadm-info` | :orange_circle: | Show device info |
+| `udevadm-trigger` | :orange_circle: | Trigger udev events |
+| `udevadm-settle` | :orange_circle: | Wait for queue to settle |
+| `udevadm-monitor` | :orange_circle: | Monitor udev events |
+
 ### Round 321 — Kmod ext, Modprobe ext, Dkms ext, Dracut ext, Mkinitcpio ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 68e9ae4..997d5c8 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -24105,4 +24105,58 @@
 
 (def (cmd-mkinitcpio-hooks app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Mkinitcpio: showing available hooks")))
\ No newline at end of file
+    (echo-message! echo "Mkinitcpio: showing available hooks")))
+
+;;; Round 322 — Sysfs ext, Devtmpfs ext, Udevadm ext (batch 2)
+
+(def (cmd-sysfs-attribute app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device/attribute: "
+      (lambda (spec)
+        (echo-message! echo (str "Sysfs: reading attribute " spec))))))
+
+(def (cmd-sysfs-driver app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Driver name: "
+      (lambda (drv)
+        (echo-message! echo (str "Sysfs: showing driver " drv))))))
+
+(def (cmd-devtmpfs-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Devtmpfs: listing /dev entries")))
+
+(def (cmd-devtmpfs-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device node: "
+      (lambda (dev)
+        (echo-message! echo (str "Devtmpfs: creating " dev))))))
+
+(def (cmd-devtmpfs-remove app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device node: "
+      (lambda (dev)
+        (echo-message! echo (str "Devtmpfs: removing " dev))))))
+
+(def (cmd-devtmpfs-permissions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device node: "
+      (lambda (dev)
+        (echo-message! echo (str "Devtmpfs: showing permissions of " dev))))))
+
+(def (cmd-udevadm-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device path: "
+      (lambda (dev)
+        (echo-message! echo (str "Udevadm: info for " dev))))))
+
+(def (cmd-udevadm-trigger app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Udevadm: triggering events")))
+
+(def (cmd-udevadm-settle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Udevadm: waiting for event queue to settle")))
+
+(def (cmd-udevadm-monitor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Udevadm: monitoring events")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index da78898..3151fe1 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -24800,3 +24800,55 @@
       (lambda (dir)
         (echo-message! echo (str "DKMS: adding " dir))))))
 
+;;; Round 322 — Sysctl ext, Procfs ext, Sysfs ext, Devtmpfs ext, Udevadm ext (batch 1)
+
+(def (cmd-sysctl-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Parameter: "
+      (lambda (param)
+        (echo-message! echo (str "Sysctl: " param " = (value)"))))))
+
+(def (cmd-sysctl-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Sysctl: showing all parameters")))
+
+(def (cmd-sysctl-pattern app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Pattern: "
+      (lambda (pat)
+        (echo-message! echo (str "Sysctl: matching " pat))))))
+
+(def (cmd-sysctl-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Search term: "
+      (lambda (term)
+        (echo-message! echo (str "Sysctl: searching for " term))))))
+
+(def (cmd-procfs-meminfo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Procfs: showing /proc/meminfo")))
+
+(def (cmd-procfs-cpuinfo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Procfs: showing /proc/cpuinfo")))
+
+(def (cmd-procfs-loadavg app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Procfs: showing /proc/loadavg")))
+
+(def (cmd-procfs-mounts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Procfs: showing /proc/mounts")))
+
+(def (cmd-sysfs-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Sysfs path: "
+      (lambda (path)
+        (echo-message! echo (str "Sysfs: listing " path))))))
+
+(def (cmd-sysfs-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Attribute name: "
+      (lambda (attr)
+        (echo-message! echo (str "Sysfs: searching for " attr))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index e4e15da..08f2a76 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8179,4 +8179,25 @@
   (register-command! 'mkinitcpio-list cmd-mkinitcpio-list)
   (register-command! 'mkinitcpio-preset cmd-mkinitcpio-preset)
   (register-command! 'mkinitcpio-hooks cmd-mkinitcpio-hooks)
+  ;; Round 322
+  (register-command! 'sysctl-show cmd-sysctl-show)
+  (register-command! 'sysctl-all cmd-sysctl-all)
+  (register-command! 'sysctl-pattern cmd-sysctl-pattern)
+  (register-command! 'sysctl-search cmd-sysctl-search)
+  (register-command! 'procfs-meminfo cmd-procfs-meminfo)
+  (register-command! 'procfs-cpuinfo cmd-procfs-cpuinfo)
+  (register-command! 'procfs-loadavg cmd-procfs-loadavg)
+  (register-command! 'procfs-mounts cmd-procfs-mounts)
+  (register-command! 'sysfs-list cmd-sysfs-list)
+  (register-command! 'sysfs-search cmd-sysfs-search)
+  (register-command! 'sysfs-attribute cmd-sysfs-attribute)
+  (register-command! 'sysfs-driver cmd-sysfs-driver)
+  (register-command! 'devtmpfs-list cmd-devtmpfs-list)
+  (register-command! 'devtmpfs-create cmd-devtmpfs-create)
+  (register-command! 'devtmpfs-remove cmd-devtmpfs-remove)
+  (register-command! 'devtmpfs-permissions cmd-devtmpfs-permissions)
+  (register-command! 'udevadm-info cmd-udevadm-info)
+  (register-command! 'udevadm-trigger cmd-udevadm-trigger)
+  (register-command! 'udevadm-settle cmd-udevadm-settle)
+  (register-command! 'udevadm-monitor cmd-udevadm-monitor)
 )