aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranthk <anthk@texto-plano.xyz>2021-03-11 09:40:02 +0000
committeranthk <anthk@texto-plano.xyz>2021-03-11 09:40:02 +0000
commit5b21c81d6870e72629d3b12756e14a60bdc5261b (patch)
treed617edb6a939a19db9bb57216c380fb8618ebea9
parentd252394bc86670e39f8a9c5c52875b13645764af (diff)
downloadcpulimit-master.tar.gz
Ajustes olvidadosHEADmaster
-rw-r--r--src/Makefile8
-rw-r--r--src/cpulimit.c4
-rw-r--r--src/process_iterator.c16
-rw-r--r--src/process_iterator.h8
-rw-r--r--src/process_iterator_apple.c2
-rw-r--r--tests/Makefile4
6 files changed, 36 insertions, 6 deletions
diff --git a/src/Makefile b/src/Makefile
index 86fbfbd..863bf23 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,5 +1,6 @@
-CC?=gcc
-CFLAGS?=-Wall -g -D_GNU_SOURCE
+CC?=clang
+CFLAGS?=-Wall -g -O0 -D_GNU_SOURCE
+LDFLAGS+=-g
TARGETS=cpulimit
LIBS=list.o process_iterator.o process_group.o
@@ -9,6 +10,9 @@ ifeq ($(UNAME), FreeBSD)
LIBS+=-lkvm
endif
+ifeq ($(UNAME), OpenBSD)
+LIBS+=-lkvm -lpthread
+endif
all:: $(TARGETS) $(LIBS)
cpulimit: cpulimit.c $(LIBS)
diff --git a/src/cpulimit.c b/src/cpulimit.c
index 50eabea..a1a0a73 100644
--- a/src/cpulimit.c
+++ b/src/cpulimit.c
@@ -43,7 +43,7 @@
#include <sys/types.h>
#include <sys/wait.h>
-#ifdef __APPLE__ || __FREEBSD__
+#if (defined __APPLE__) || (defined __FREEBSD__) || (defined __OpenBSD__)
#include <libgen.h>
#endif
@@ -181,6 +181,8 @@ int get_pid_max()
return atoi(buffer);
#elif defined __FreeBSD__
return 99998;
+#elif defined __OpenBSD__
+ return 99998;
#elif defined __APPLE__
return 99998;
#endif
diff --git a/src/process_iterator.c b/src/process_iterator.c
index 8b4019d..cf80fc2 100644
--- a/src/process_iterator.c
+++ b/src/process_iterator.c
@@ -22,9 +22,19 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#ifndef __APPLE__
+
+/*#ifndef __APPLE__
#include <sys/procfs.h>
+#endif */
+
+#if defined __OpenBSD__
+#include <kvm.h>
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <sys/proc.h>
+#include <sys/user.h>
#endif
+
#include <time.h>
#include "process_iterator.h"
@@ -38,6 +48,10 @@
#include "process_iterator_freebsd.c"
+#elif defined __OpenBSD__
+
+#include "process_iterator_openbsd.c"
+
#elif defined __APPLE__
#include "process_iterator_apple.c"
diff --git a/src/process_iterator.h b/src/process_iterator.h
index 70520b6..84668b5 100644
--- a/src/process_iterator.h
+++ b/src/process_iterator.h
@@ -27,6 +27,7 @@
#include <limits.h>
#include <dirent.h>
+
//USER_HZ detection, from openssl code
#ifndef HZ
# if defined(_SC_CLK_TCK) \
@@ -49,6 +50,11 @@
#include <kvm.h>
#endif
+#ifdef __OpenBSD__
+#include <fcntl.h>
+#include <kvm.h>
+#endif
+
// process descriptor
struct process {
//pid of the process
@@ -75,7 +81,7 @@ struct process_iterator {
#ifdef __linux__
DIR *dip;
int boot_time;
-#elif defined __FreeBSD__
+#elif ( defined __FreeBSD__) || (defined __OpenBSD__ )
kvm_t *kd;
struct kinfo_proc *procs;
int count;
diff --git a/src/process_iterator_apple.c b/src/process_iterator_apple.c
index b878ed8..076630d 100644
--- a/src/process_iterator_apple.c
+++ b/src/process_iterator_apple.c
@@ -77,7 +77,7 @@ static int pti2proc(struct proc_taskallinfo *ti, struct process *process) {
process->pid = ti->pbsd.pbi_pid;
process->ppid = ti->pbsd.pbi_ppid;
process->starttime = ti->pbsd.pbi_start_tvsec;
- process->cputime = (ti->ptinfo.pti_total_user + ti->ptinfo.pti_total_system) / 1000000;
+ process->cputime = ( (ti->ptinfo.pti_total_user + ti->ptinfo.pti_total_system) ) / 1000000;
bytes = strlen(ti->pbsd.pbi_comm);
memcpy(process->command, ti->pbsd.pbi_comm, (bytes < PATH_MAX ? bytes : PATH_MAX) + 1);
return 0;
diff --git a/tests/Makefile b/tests/Makefile
index 764db87..785f16e 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -10,6 +10,10 @@ ifeq ($(UNAME), FreeBSD)
LIBS+=-lkvm
endif
+ifeq ($(UNAME), OpenBSD)
+LIBS+=-lkvm
+endif
+
all:: $(TARGETS)
busy: busy.c
Un proyecto texto-plano.xyz