This signature seems to have deviated from unix. Maybe a good time to have a common function that doesn't have a `#[cfg]` and delegate to inner functions which do have a `#[cfg]`?