m4_dnl <returnvalue> is one of
m4_dnl hm_rv_must must succeed and return 0
m4_dnl hm_rv_any any nonnegative return allowed, -1 means see errno
m4_dnl hm_rv_fd file descriptor is returned, -1 means see errno
m4_dnl hm_rv_succfail returns 0 (ok) or -1 (see errno)
m4_dnl hm_rv_len(<max>) returns length read/written, must be <=max, -1 => errno
m4_dnl <returnvalue> is one of
m4_dnl hm_rv_must must succeed and return 0
m4_dnl hm_rv_any any nonnegative return allowed, -1 means see errno
m4_dnl hm_rv_fd file descriptor is returned, -1 means see errno
m4_dnl hm_rv_succfail returns 0 (ok) or -1 (see errno)
m4_dnl hm_rv_len(<max>) returns length read/written, must be <=max, -1 => errno