# DF-5625 — ppb_ecp_sync()/ppb_reset_epp_timeout() return indeterminate values: interface declares `int`, the only implementations are `void`

File: `sys/bus/ppbus/ppb_base.c:159-163,170-174` (+ interface/impl mismatch
`sys/bus/ppbus/ppbus_if.m:57-59,72-74` vs `sys/dev/misc/ppc/ppc.c:144,1785`)

## Build (inside the DragonFly guest)

```
sh build.sh     # compiles VERBATIM /usr/src/sys/bus/ppbus/ppb_base.c
                # (sha256 printed by the script) into ppbbasehx.ko (-Werror)
```

## Run (inside the guest)

```
sh run.sh       # kldload ./ppbbasehx.ko; tests run at attach; dmesg | grep PPBHX
```

## Expected (decisive lines, see run.log)

```
PPBHX: DF-5625 ppb_ecp_sync()          -> 0x66 (void method left marker 0x66 in %eax)
PPBHX: DF-5625 ppb_ecp_sync()          -> 0x99 (void method left marker 0x99 in %eax)
PPBHX: DF-5625 ppb_reset_epp_timeout() -> 0x5a (void method left marker 0x5a in %eax; ...)
```

`ppbus_if.m` declares `METHOD int reset_epp` and `METHOD int ecp_sync`, but the
only implementations in the tree — `ppc_ecp_sync()` (ppc.c:144) and
`ppc_reset_epp()` (ppc.c:1785) — are `static void`.  `ppb_base.c` does
`return (PPBUS_ECP_SYNC(...))` / `return(PPBUS_RESET_EPP(...))`, so the
generated int-typed dispatch calls a void function through an int-returning
prototype: the value handed to the caller is whatever the callee last left in
`%eax`.  The harness's fake controller implements the two methods with the
*production void shapes*; the "protocol" value returned by the production
`ppb_base.c` wrappers deterministically tracks a marker left in `%eax` by the
void callee (0x66, 0x99, 0x5a), proving the return channel carries callee
register garbage, not a defined result.

Impact today: none — all in-tree callers ignore the return
(`sys/dev/disk/vpo/vpoio.c:452,472`, `sys/dev/disk/vpo/immio.c:443,464`).
Any future error-checking caller receives nondeterministic results (C-level
undefined behavior).  Info severity.

## Harness note

One shared KLD harness (`harness.c`, `ppbbasehx`) demonstrates DF-5625,
DF-5626, DF-5627 and DF-5628 against the same verbatim production
`ppb_base.c`; this pack's lines are the `DF-5625` ones.
