diff --git a/sysutils/xosview/patches/patch-aa b/sysutils/xosview/patches/patch-aa new file mode 100644 index 00000000000..6d98683a0a4 --- /dev/null +++ b/sysutils/xosview/patches/patch-aa @@ -0,0 +1,138 @@ +*** bsd/kernel.cc.orig Fri Sep 25 02:21:30 1998 +--- bsd/kernel.cc Mon Nov 23 10:12:36 1998 +*************** +*** 32,37 **** +--- 32,41 ---- + #include /* For disk statistics. */ + #endif + ++ #ifdef XOSVIEW_OPENBSD ++ #include "obsdintr.h" /* XXX: got from 2.4 */ ++ #endif ++ + #include /* These two are needed for the */ + #include /* NetMeter helper functions. */ + #if defined(XOSVIEW_FREEBSD) && (__FreeBSD_version >= 300000) +*************** +*** 104,114 **** +--- 108,134 ---- + + #endif /* XOSVIEW_FREEBSD */ + ++ #if defined(XOSVIEW_OPENBSD) && (defined(pc532) || defined(i386)) ++ ++ # ifdef i386 ++ { "_intrhand" }, ++ #define INTRHAND_SYM_INDEX 7 ++ { "_intrstray" }, ++ #define INTRSTRAY_SYM_INDEX 8 ++ # else ++ { "_ivt" }, ++ #define IVT_SYM_INDEX 7 ++ # endif ++ ++ #else /* XOSVIEW_OPENBSD && (pc532 || i386) */ ++ + { "_intrcnt" }, + #define INTRCNT_SYM_INDEX 7 + { "_eintrcnt" }, + #define EINTRCNT_SYM_INDEX 8 + ++ #endif /* XOSVIEW_OPENBSD && (pc532 || i386) */ ++ + {NULL} + }; + +*************** +*** 441,447 **** +--- 461,470 ---- + } + + /* ---------------------- Interrupt Meter stuff ----------------- */ ++ #if !defined(XOSVIEW_OPENBSD) || !(defined(pc532) && defined(i386)) + static unsigned long kvm_intrcnt[128];// guess at space needed ++ #endif ++ + #ifdef XOSVIEW_FREEBSD + static unsigned long kvm_intrptrs[NUM_INTR]; + #endif +*************** +*** 449,457 **** +--- 472,487 ---- + int + BSDIntrInit() { + OpenKDIfNeeded(); ++ #if defined(XOSVIEW_OPENBSD) && defined(i386) ++ return ValidSymbol(INTRHAND_SYM_INDEX) && ValidSymbol(INTRSTRAY_SYM_INDEX); ++ #elif defined (XOSVIEW_OPENBSD) && defined(pc532) ++ return ValidSymbol(IVP_SYM_INDEX); ++ #else + return ValidSymbol(INTRCNT_SYM_INDEX) && ValidSymbol(EINTRCNT_SYM_INDEX); ++ #endif + } + ++ #if !defined(XOSVIEW_OPENBSD) || !(defined(pc532) || defined(i386)) + int BSDNumInts() { + int nintr; + OpenKDIfNeeded(); +*************** +*** 471,476 **** +--- 501,507 ---- + # endif + #endif + } ++ #endif /* XOSVIEW_OPENBSD */ + + void + BSDGetIntrStats (unsigned long intrCount[NUM_INTR]) +*************** +*** 496,507 **** +--- 527,574 ---- + // counts. We'll just use the intrcnt array here. If anyone + // has problems, please mail me. bgrayson + { ++ #if defined(XOSVIEW_OPENBSD) && (defined(pc532) || defined(i386)) ++ # ifdef i386 ++ struct intrhand *intrhand[16], *ihp, ih; ++ int intrstray[16]; ++ ++ safe_kvm_read(nlst[INTRHAND_SYM_INDEX].n_value, intrhand, ++ sizeof(intrhand)); ++ safe_kvm_read(nlst[INTRSTRAY_SYM_INDEX].n_value, intrstray, ++ sizeof(intrstray)); ++ ++ for (int i=0;i<16;i++) { ++ ihp = intrhand[i]; ++ intrCount[i] = 0; ++ while (ihp) { ++ if (kvm_read(kd, (u_long)ihp, &ih, sizeof(ih)) != sizeof(ih)) { ++ fprintf(stderr, "Error: kvm_read(): %s\n", kvm_geterr(kd)); ++ exit(1); ++ } ++ intrCount[i] = ih.ih_count; ++ ihp = ih.ih_next; ++ } ++ } ++ # endif /* i386 */ ++ # ifdef pc532 ++ struct iv ivt[32], *ivp = ivt; ++ ++ safe_kvm_read(nlst[IVP_SYM_INDEX].n_value, ivp, sizeof(ivt)); ++ for (int i=0;i<16;i++,ivp++) { ++ if (ivp->iv_vec && ivp->iv_use) ++ intrCount[i] = ivp->iv_cnt; ++ else ++ intrCount[i] = 0; ++ } ++ # endif /* pc532 */ ++ #else /* XOSVIEW_OPENBSD && (pc532 || i386) */ + int nintr = BSDNumInts(); + safe_kvm_read(nlst[INTRCNT_SYM_INDEX].n_value, kvm_intrcnt, + sizeof(long)*nintr); + for (int i=0;i