Message ID | 20230214002757.99240-8-imp@bsdimp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | 2023 Q1 bsd-user upstreaming: bugfixes and sysctl | expand |
On 2/13/23 14:27, Warner Losh wrote: > From: Juergen Lock<nox@jelal.kn-bremen.de> > > Helper functions for sysctl implementations. sysctl_name2oid and > sysctl_oidfmt convert oids between host and targets > > Signed-off-by: Juergen Lock<nox@jelal.kn-bremen.de> > Reviewed-by: Warner Losh<imp@bsdimp.com> > Signed-off-by: Warner Losh<imp@bsdimp.com> > --- > bsd-user/freebsd/os-sys.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/bs Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/bsd-user/freebsd/os-sys.c b/bsd-user/freebsd/os-sys.c index 457e61f5b36..084d53c16f6 100644 --- a/bsd-user/freebsd/os-sys.c +++ b/bsd-user/freebsd/os-sys.c @@ -240,6 +240,24 @@ static void G_GNUC_UNUSED h2t_old_sysctl(void *holdp, size_t *holdlen, uint32_t #endif } +/* + * Convert the undocmented name2oid sysctl data for the target. + */ +static inline void G_GNUC_UNUSED sysctl_name2oid(uint32_t *holdp, size_t holdlen) +{ + size_t i, num = holdlen / sizeof(uint32_t); + + for (i = 0; i < num; i++) { + holdp[i] = tswap32(holdp[i]); + } +} + +static inline void G_GNUC_UNUSED sysctl_oidfmt(uint32_t *holdp) +{ + /* byte swap the kind */ + holdp[0] = tswap32(holdp[0]); +} + /* sysarch() is architecture dependent. */ abi_long do_freebsd_sysarch(void *cpu_env, abi_long arg1, abi_long arg2) {