aboutsummaryrefslogtreecommitdiffstats
path: root/audio/gqmpeg/files/patch-ab
diff options
context:
space:
mode:
Diffstat (limited to 'audio/gqmpeg/files/patch-ab')
-rw-r--r--audio/gqmpeg/files/patch-ab75
1 files changed, 75 insertions, 0 deletions
diff --git a/audio/gqmpeg/files/patch-ab b/audio/gqmpeg/files/patch-ab
new file mode 100644
index 00000000000..9a8d2a1fd11
--- /dev/null
+++ b/audio/gqmpeg/files/patch-ab
@@ -0,0 +1,75 @@
+--- main.c.orig Tue Mar 30 01:40:15 1999
++++ main.c Tue Mar 30 01:47:25 1999
+@@ -15,6 +15,27 @@
+ #include <gdk/gdkx.h>
+ #include <X11/Xlib.h>
+
++#ifdef __FreeBSD__
++#include <kvm.h>
++#include <fcntl.h>
++#include <sys/user.h>
++#include <sys/proc.h>
++#include <sys/param.h>
++#include <sys/sysctl.h>
++
++#ifdef FSCALE
++#define FIXED_PCTCPU FSCALE
++#endif
++
++#ifdef FIXED_PCTCPU
++typedef long pctcpu;
++#define pctdouble(p) ((double)(p) / FIXED_PCTCPU)
++#else
++typedef double pctcpu;
++#define pctdouble(p) (p)
++#endif
++#endif
++
+ static gint fast_advance = FALSE;
+ static gint advance_max_frame;
+ static gint advance_max_sec;
+@@ -99,6 +120,36 @@
+ #define HZ 100 /* for FreeBSD? */
+ #endif
+
++#ifdef __FreeBSD__
++static gfloat check_child_cpu_usage(int childs_pid)
++{
++ static gfloat percent_of_cpu = 0.0;
++
++ static kvm_t *kd;
++ kd = kvm_open(NULL, NULL, NULL, O_RDONLY, "kvm_open");
++ if (kd == NULL) return percent_of_cpu;
++
++ {
++ static struct kinfo_proc *ki;
++ static int nproc;
++ ki = kvm_getprocs(kd, KERN_PROC_PID, childs_pid, &nproc);
++ if (nproc != 1) {
++ percent_of_cpu = 0.0;
++ } else {
++ percent_of_cpu = 100.0 * pctdouble(ki->kp_proc.p_pctcpu);
++ }
++ }
++
++ kvm_close(kd);
++
++ if (percent_of_cpu > 99.0) {
++ percent_of_cpu = 99;
++ }
++
++ return percent_of_cpu;
++}
++
++#else
+ static gfloat check_child_cpu_usage(int childs_pid)
+ {
+ /* needed for SGI IRIX 5.3 and 6.5 */
+@@ -197,6 +248,7 @@
+
+ return percent_of_cpu;
+ }
++#endif
+
+ void set_song_info(gint n)
+ {