There's no need for a `ssize_t`. The `int` return is to indicate success or failure (with appropriate setting of an error message). The output parameter should still be the same type as the first parameter, same as in the rest of the library.

By horribly broken I mean that a system which is incapable of reporting its own page size is not one where we can expect anything else to actually work.