/* * Compile and run this as a C program to get the kinfo_proc offsets * for your architecture. * While FreeBSD works hard at binary-compatibility within an ABI, various * we can't say for sure that these are right for _all_ use on a hardware * platform. The LP64 ifdef affects the offsets considerably. * * We use these offsets in hardware-specific files for FreeBSD, to avoid a cgo * compilation-time dependency, allowing us to cross-compile for FreeBSD from * other hardware platforms, letting us distribute binaries for FreeBSD. */ #include #include #include #include #include #define SHOW_OFFSET(FIELD) printf(" KIP_OFF_%s = %zu\n", #FIELD, offsetof(struct kinfo_proc, ki_ ## FIELD)) int main(int argc, char *argv[]) { /* Uncomment these if you want some extra debugging aids: SHOW_OFFSET(pid); SHOW_OFFSET(ppid); SHOW_OFFSET(uid); */ SHOW_OFFSET(size); SHOW_OFFSET(rssize); SHOW_OFFSET(pctcpu); }