← Blog
0.7.0 · KERNEL · HAL

HAL 0x500000+ Opens — Apple Watch Connectivity + G5 VIO Bus (sigil-kernel 84cea6b)

June 23, 2026 · sigil-kernel 84cea6b · Sigil-Docs
kernel hal apple-silicon powerpc hardware 0.7.0

The HAL arch matrix opens its next block with 0x500000+ — two new seams: Apple Watch connectivity bridge and G5/POWER4 Virtual I/O bus.


Two new HAL seams at 0x500000+

apple_watchconn.sg (0x500000) — Apple Watch connectivity bridge

watchconn_init()
Zeros all connection state.
watchconn_connect() / watchconn_disconnect()
watchconn_connect() sets watch_connected=1. watchconn_disconnect() clears it.
watchconn_enqueue_notification(type, payload)
Enqueues a notification into the 4-slot ring (health/alert/app/mirror types); increments notif_count.
watchconn_dispatch_mirror_frame()
Dispatches a watchOS mirror frame to the paired Watch display; increments mirror_frames.
watchconn_connected() / watchconn_notif_count() / watchconn_mirror_frames()
Accessors for connection state, notification count, and mirror frame count. WCN init=1 con=1 ntf=1 K.

ppc_vio.sg (0x501000) — G5/POWER4 Virtual I/O bus

vio_init()
Zeros all VIO bus state. On POWER4/G5 systems with a hypervisor (IBM PowerVM or Open Firmware's VIO layer), devices are presented as virtual I/O (VIO) devices rather than PCI devices — Ethernet (ibmveth), SCSI (ibmvscsi), serial console (hvcs), and keyboard (hvc) all appear as VIO bus children.
vio_probe_device(unit_addr, type)
Probes a VIO device at unit_addr; type sets a bit in dev_bitmask (Ethernet=bit0, SCSI=bit1, serial=bit2, keyboard=bit3); increments probe_count.
vio_hcall(op, arg)
Issues a hypervisor call; increments hcall_count (models H_PUT_TERM_CHAR, H_GET_TERM_CHAR, etc.).
vio_bind_driver(unit_addr, drv_id)
Binds a driver to a probed device; increments bind_count.
vio_dev_present(type)
Returns 1 if the type bit is set in dev_bitmask. VIO init=1 prb=1 bnd=1 K.