Consolidate repeated macro definitions into one header

The MIN, MAX, CLAMP, MINIMUM, and MAXIMUM macros appear
throughout the codebase with many re-definitions.  Make
a single copy of each in a common header file, and use
the BSD variants of MINIMUM/MAXIMUM due to conflicts in
the system <sys/param.h> headers.
This commit is contained in:
Nathan Scott 2020-09-09 16:56:04 +10:00
parent 8ec5d4a3a0
commit c5808c56db
29 changed files with 35 additions and 156 deletions

View File

@ -20,13 +20,6 @@ int CPUMeter_attributes[] = {
CPU_NICE, CPU_NORMAL, CPU_SYSTEM, CPU_IRQ, CPU_SOFTIRQ, CPU_STEAL, CPU_GUEST, CPU_IOWAIT CPU_NICE, CPU_NORMAL, CPU_SYSTEM, CPU_IRQ, CPU_SOFTIRQ, CPU_STEAL, CPU_GUEST, CPU_IOWAIT
}; };
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
static void CPUMeter_init(Meter* this) { static void CPUMeter_init(Meter* this) {
int cpu = this->param; int cpu = this->param;
if (this->pl->cpuCount > 1) { if (this->pl->cpuCount > 1) {

View File

@ -24,13 +24,6 @@ typedef enum {
extern int CPUMeter_attributes[]; extern int CPUMeter_attributes[];
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
extern MeterClass CPUMeter_class; extern MeterClass CPUMeter_class;
extern MeterClass AllCPUsMeter_class; extern MeterClass AllCPUsMeter_class;

View File

@ -37,7 +37,7 @@ void EnvScreen_draw(InfoScreen* this) {
void EnvScreen_scan(InfoScreen* this) { void EnvScreen_scan(InfoScreen* this) {
Panel* panel = this->display; Panel* panel = this->display;
int idx = MAX(Panel_getSelectedIndex(panel), 0); int idx = MAXIMUM(Panel_getSelectedIndex(panel), 0);
Panel_prune(panel); Panel_prune(panel);

View File

@ -16,14 +16,7 @@ in the source distribution for its full text.
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#ifndef Header_forEachColumn
#define Header_forEachColumn(this_, i_) for (int (i_)=0; (i_) < (this_)->nrColumns; ++(i_)) #define Header_forEachColumn(this_, i_) for (int (i_)=0; (i_) < (this_)->nrColumns; ++(i_))
#endif
Header* Header_new(struct ProcessList_* pl, Settings* settings, int nrColumns) { Header* Header_new(struct ProcessList_* pl, Settings* settings, int nrColumns) {
Header* this = xCalloc(1, sizeof(Header)); Header* this = xCalloc(1, sizeof(Header));
@ -196,7 +189,7 @@ int Header_calculateHeight(Header* this) {
Meter* meter = (Meter*) Vector_get(meters, i); Meter* meter = (Meter*) Vector_get(meters, i);
height += meter->h; height += meter->h;
} }
maxHeight = MAX(maxHeight, height); maxHeight = MAXIMUM(maxHeight, height);
} }
this->height = maxHeight; this->height = maxHeight;
this->pad = pad; this->pad = pad;

View File

@ -20,10 +20,6 @@ typedef struct Header_ {
int height; int height;
} Header; } Header;
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#define Header_forEachColumn(this_, i_) for (int (i_)=0; (i_) < (this_)->nrColumns; ++(i_)) #define Header_forEachColumn(this_, i_) for (int (i_)=0; (i_) < (this_)->nrColumns; ++(i_))
Header* Header_new(struct ProcessList_* pl, Settings* settings, int nrColumns); Header* Header_new(struct ProcessList_* pl, Settings* settings, int nrColumns);

16
Macros.h Normal file
View File

@ -0,0 +1,16 @@
#ifndef HEADER_Macros
#define HEADER_Macros
#ifndef MINIMUM
#define MINIMUM(a, b) ((a) < (b) ? (a) : (b))
#endif
#ifndef MAXIMUM
#define MAXIMUM(a, b) ((a) > (b) ? (a) : (b))
#endif
#ifndef CLAMP
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : MAXIMUM(x, low))
#endif
#endif

View File

@ -34,7 +34,7 @@ BatteryMeter.h Meter.h MetersPanel.h Object.h Panel.h ProcessList.h RichString.h
ScreenManager.h Settings.h SignalsPanel.h StringUtils.h SwapMeter.h \ ScreenManager.h Settings.h SignalsPanel.h StringUtils.h SwapMeter.h \
TasksMeter.h UptimeMeter.h TraceScreen.h UsersTable.h Vector.h Process.h \ TasksMeter.h UptimeMeter.h TraceScreen.h UsersTable.h Vector.h Process.h \
AffinityPanel.h HostnameMeter.h OpenFilesScreen.h Affinity.h IncSet.h Action.h \ AffinityPanel.h HostnameMeter.h OpenFilesScreen.h Affinity.h IncSet.h Action.h \
EnvScreen.h InfoScreen.h XAlloc.h EnvScreen.h InfoScreen.h XAlloc.h Macros.h
# Linux # Linux
# ----- # -----

11
Meter.c
View File

@ -27,17 +27,6 @@ in the source distribution for its full text.
#define GRAPH_HEIGHT 4 /* Unit: rows (lines) */ #define GRAPH_HEIGHT 4 /* Unit: rows (lines) */
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
MeterClass Meter_class = { MeterClass Meter_class = {
.super = { .super = {
.extends = Class(Object) .extends = Class(Object)

10
Meter.h
View File

@ -94,16 +94,6 @@ typedef struct GraphData_ {
double values[METER_BUFFER_LEN]; double values[METER_BUFFER_LEN];
} GraphData; } GraphData;
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
extern MeterClass Meter_class; extern MeterClass Meter_class;
Meter* Meter_new(struct ProcessList_* pl, int param, MeterClass* type); Meter* Meter_new(struct ProcessList_* pl, int param, MeterClass* type);

View File

@ -10,6 +10,7 @@ in the source distribution for its full text.
#include "RichString.h" #include "RichString.h"
#include "XAlloc.h" #include "XAlloc.h"
#include "Macros.h"
typedef struct Object_ Object; typedef struct Object_ Object;

27
Panel.c
View File

@ -19,13 +19,6 @@ in the source distribution for its full text.
#include <string.h> #include <string.h>
#include <assert.h> #include <assert.h>
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#define KEY_CTRL(l) ((l)-'A'+1) #define KEY_CTRL(l) ((l)-'A'+1)
PanelClass Panel_class = { PanelClass Panel_class = {
@ -233,7 +226,7 @@ void Panel_draw(Panel* this, bool focus) {
mvhline(y, x, ' ', this->w); mvhline(y, x, ' ', this->w);
if (scrollH < headerLen) { if (scrollH < headerLen) {
RichString_printoffnVal(this->header, y, x, scrollH, RichString_printoffnVal(this->header, y, x, scrollH,
MIN(headerLen - scrollH, this->w)); MINIMUM(headerLen - scrollH, this->w));
} }
attrset(CRT_colors[RESET_COLOR]); attrset(CRT_colors[RESET_COLOR]);
y++; y++;
@ -244,7 +237,7 @@ void Panel_draw(Panel* this, bool focus) {
this->scrollV = 0; this->scrollV = 0;
this->needsRedraw = true; this->needsRedraw = true;
} else if (this->scrollV >= size) { } else if (this->scrollV >= size) {
this->scrollV = MAX(size - 1, 0); this->scrollV = MAXIMUM(size - 1, 0);
this->needsRedraw = true; this->needsRedraw = true;
} }
// ensure selection is on screen // ensure selection is on screen
@ -257,7 +250,7 @@ void Panel_draw(Panel* this, bool focus) {
} }
int first = this->scrollV; int first = this->scrollV;
int upTo = MIN(first + h, size); int upTo = MINIMUM(first + h, size);
int selectionColor = focus int selectionColor = focus
? this->selectionColor ? this->selectionColor
@ -271,7 +264,7 @@ void Panel_draw(Panel* this, bool focus) {
RichString_begin(item); RichString_begin(item);
Object_display(itemObj, &item); Object_display(itemObj, &item);
int itemLen = RichString_sizeVal(item); int itemLen = RichString_sizeVal(item);
int amt = MIN(itemLen - scrollH, this->w); int amt = MINIMUM(itemLen - scrollH, this->w);
bool selected = (i == this->selected); bool selected = (i == this->selected);
if (selected) { if (selected) {
attrset(selectionColor); attrset(selectionColor);
@ -306,13 +299,13 @@ void Panel_draw(Panel* this, bool focus) {
mvhline(y+ this->oldSelected - first, x+0, ' ', this->w); mvhline(y+ this->oldSelected - first, x+0, ' ', this->w);
if (scrollH < oldLen) if (scrollH < oldLen)
RichString_printoffnVal(old, y+this->oldSelected - first, x, RichString_printoffnVal(old, y+this->oldSelected - first, x,
scrollH, MIN(oldLen - scrollH, this->w)); scrollH, MINIMUM(oldLen - scrollH, this->w));
attrset(selectionColor); attrset(selectionColor);
mvhline(y+this->selected - first, x+0, ' ', this->w); mvhline(y+this->selected - first, x+0, ' ', this->w);
RichString_setAttr(&new, selectionColor); RichString_setAttr(&new, selectionColor);
if (scrollH < newLen) if (scrollH < newLen)
RichString_printoffnVal(new, y+this->selected - first, x, RichString_printoffnVal(new, y+this->selected - first, x,
scrollH, MIN(newLen - scrollH, this->w)); scrollH, MINIMUM(newLen - scrollH, this->w));
attrset(CRT_colors[RESET_COLOR]); attrset(CRT_colors[RESET_COLOR]);
RichString_end(new); RichString_end(new);
RichString_end(old); RichString_end(old);
@ -347,7 +340,7 @@ bool Panel_onKey(Panel* this, int key) {
case KEY_LEFT: case KEY_LEFT:
case KEY_CTRL('B'): case KEY_CTRL('B'):
if (this->scrollH > 0) { if (this->scrollH > 0) {
this->scrollH -= MAX(CRT_scrollHAmount, 0); this->scrollH -= MAXIMUM(CRT_scrollHAmount, 0);
this->needsRedraw = true; this->needsRedraw = true;
} }
break; break;
@ -358,12 +351,12 @@ bool Panel_onKey(Panel* this, int key) {
break; break;
case KEY_PPAGE: case KEY_PPAGE:
this->selected -= (this->h - 1); this->selected -= (this->h - 1);
this->scrollV = MAX(0, this->scrollV - this->h + 1); this->scrollV = MAXIMUM(0, this->scrollV - this->h + 1);
this->needsRedraw = true; this->needsRedraw = true;
break; break;
case KEY_NPAGE: case KEY_NPAGE:
this->selected += (this->h - 1); this->selected += (this->h - 1);
this->scrollV = MAX(0, MIN(Vector_size(this->items) - this->h, this->scrollV = MAXIMUM(0, MINIMUM(Vector_size(this->items) - this->h,
this->scrollV + this->h - 1)); this->scrollV + this->h - 1));
this->needsRedraw = true; this->needsRedraw = true;
break; break;
@ -395,7 +388,7 @@ bool Panel_onKey(Panel* this, int key) {
break; break;
case KEY_CTRL('E'): case KEY_CTRL('E'):
case '$': case '$':
this->scrollH = MAX(this->selectedLen - this->w, 0); this->scrollH = MAXIMUM(this->selectedLen - this->w, 0);
this->needsRedraw = true; this->needsRedraw = true;
break; break;
default: default:

View File

@ -59,13 +59,6 @@ struct Panel_ {
#define Panel_setDefaultBar(this_) do{ (this_)->currentBar = (this_)->defaultBar; }while(0) #define Panel_setDefaultBar(this_) do{ (this_)->currentBar = (this_)->defaultBar; }while(0)
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
#ifndef MAX
#define MAX(a,b) ((a)>(b)?(a):(b))
#endif
#define KEY_CTRL(l) ((l)-'A'+1) #define KEY_CTRL(l) ((l)-'A'+1)
extern PanelClass Panel_class; extern PanelClass Panel_class;

View File

@ -7,17 +7,13 @@ in the source distribution for its full text.
#include "RichString.h" #include "RichString.h"
#include "XAlloc.h" #include "XAlloc.h"
#include "Macros.h"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#define RICHSTRING_MAXLEN 350 #define RICHSTRING_MAXLEN 350
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
#define charBytes(n) (sizeof(CharType) * (n)) #define charBytes(n) (sizeof(CharType) * (n))
static void RichString_extendLen(RichString* this, int len) { static void RichString_extendLen(RichString* this, int len) {

View File

@ -56,11 +56,6 @@ typedef struct RichString_ {
CharType chstr[RICHSTRING_MAXLEN+1]; CharType chstr[RICHSTRING_MAXLEN+1];
} RichString; } RichString;
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
#define charBytes(n) (sizeof(CharType) * (n)) #define charBytes(n) (sizeof(CharType) * (n))
#define RichString_setLen(this, len) do{ if(len < RICHSTRING_MAXLEN && this->chlen < RICHSTRING_MAXLEN) { RichString_setChar(this,len,0); this->chlen=len; } else RichString_extendLen(this,len); }while(0) #define RichString_setLen(this, len) do{ if(len < RICHSTRING_MAXLEN && this->chlen < RICHSTRING_MAXLEN) { RichString_setChar(this,len,0); this->chlen=len; } else RichString_extendLen(this,len); }while(0)

View File

@ -20,7 +20,7 @@ static void TasksMeter_updateValues(Meter* this, char* buffer, int len) {
this->values[0] = pl->kernelThreads; this->values[0] = pl->kernelThreads;
this->values[1] = pl->userlandThreads; this->values[1] = pl->userlandThreads;
this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads; this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads;
this->values[3] = MIN(pl->runningTasks, pl->cpuCount); this->values[3] = MINIMUM(pl->runningTasks, pl->cpuCount);
if (pl->totalTasks > this->total) { if (pl->totalTasks > this->total) {
this->total = pl->totalTasks; this->total = pl->totalTasks;
} }

View File

@ -22,10 +22,6 @@ in the source distribution for its full text.
#include <stdlib.h> #include <stdlib.h>
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
const SignalItem Platform_signals[] = { const SignalItem Platform_signals[] = {

View File

@ -14,10 +14,6 @@ in the source distribution for its full text.
#include "BatteryMeter.h" #include "BatteryMeter.h"
#include "DarwinProcess.h" #include "DarwinProcess.h"
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
extern ProcessField Platform_defaultFields[]; extern ProcessField Platform_defaultFields[];
extern const SignalItem Platform_signals[]; extern const SignalItem Platform_signals[];

View File

@ -97,7 +97,7 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, ui
sysctl(MIB_kern_cp_times, 2, dfpl->cp_times_o, &len, NULL, 0); sysctl(MIB_kern_cp_times, 2, dfpl->cp_times_o, &len, NULL, 0);
} }
pl->cpuCount = MAX(cpus, 1); pl->cpuCount = MAXIMUM(cpus, 1);
if (cpus == 1 ) { if (cpus == 1 ) {
dfpl->cpus = xRealloc(dfpl->cpus, sizeof(CPUData)); dfpl->cpus = xRealloc(dfpl->cpus, sizeof(CPUData));

View File

@ -28,10 +28,6 @@ in the source distribution for its full text.
#include <math.h> #include <math.h>
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
int Platform_numberOfFields = LAST_PROCESSFIELD; int Platform_numberOfFields = LAST_PROCESSFIELD;

View File

@ -14,10 +14,6 @@ in the source distribution for its full text.
extern ProcessFieldData Process_fields[]; extern ProcessFieldData Process_fields[];
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
extern ProcessField Platform_defaultFields[]; extern ProcessField Platform_defaultFields[];
extern int Platform_numberOfFields; extern int Platform_numberOfFields;

View File

@ -111,7 +111,7 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, ui
sysctl(MIB_kern_cp_times, 2, fpl->cp_times_o, &len, NULL, 0); sysctl(MIB_kern_cp_times, 2, fpl->cp_times_o, &len, NULL, 0);
} }
pl->cpuCount = MAX(cpus, 1); pl->cpuCount = MAXIMUM(cpus, 1);
if (cpus == 1 ) { if (cpus == 1 ) {
fpl->cpus = xRealloc(fpl->cpus, sizeof(CPUData)); fpl->cpus = xRealloc(fpl->cpus, sizeof(CPUData));

View File

@ -29,10 +29,6 @@ in the source distribution for its full text.
#include <math.h> #include <math.h>
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
int Platform_numberOfFields = LAST_PROCESSFIELD; int Platform_numberOfFields = LAST_PROCESSFIELD;

View File

@ -13,10 +13,6 @@ in the source distribution for its full text.
extern ProcessFieldData Process_fields[]; extern ProcessFieldData Process_fields[];
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
extern ProcessField Platform_defaultFields[]; extern ProcessField Platform_defaultFields[];
extern int Platform_numberOfFields; extern int Platform_numberOfFields;

View File

@ -42,10 +42,6 @@ in the source distribution for its full text.
#include <linux/taskstats.h> #include <linux/taskstats.h>
#endif #endif
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
static ssize_t xread(int fd, void *buf, size_t count) { static ssize_t xread(int fd, void *buf, size_t count) {
// Read some bytes. Retry on EINTR and when we don't get as many bytes as we requested. // Read some bytes. Retry on EINTR and when we don't get as many bytes as we requested.
size_t alreadyRead = 0; size_t alreadyRead = 0;
@ -194,7 +190,7 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, ui
fclose(file); fclose(file);
pl->cpuCount = MAX(cpus - 1, 1); pl->cpuCount = MAXIMUM(cpus - 1, 1);
this->cpus = xCalloc(cpus, sizeof(CPUData)); this->cpus = xCalloc(cpus, sizeof(CPUData));
for (int i = 0; i < cpus; i++) { for (int i = 0; i < cpus; i++) {

View File

@ -92,10 +92,6 @@ typedef struct LinuxProcessList_ {
#define PROC_LINE_LENGTH 4096 #define PROC_LINE_LENGTH 4096
#endif #endif
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId); ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId);
void ProcessList_delete(ProcessList* pl); void ProcessList_delete(ProcessList* pl);

View File

@ -33,10 +33,6 @@ in the source distribution for its full text.
#include <stdlib.h> #include <stdlib.h>
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, (int)M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, (int)M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };
//static ProcessField defaultIoFields[] = { PID, IO_PRIORITY, USER, IO_READ_RATE, IO_WRITE_RATE, IO_RATE, COMM, 0 }; //static ProcessField defaultIoFields[] = { PID, IO_PRIORITY, USER, IO_READ_RATE, IO_WRITE_RATE, IO_RATE, COMM, 0 };

View File

@ -13,10 +13,6 @@ in the source distribution for its full text.
#include "LinuxProcess.h" #include "LinuxProcess.h"
#include "SignalsPanel.h" #include "SignalsPanel.h"
#ifndef CLAMP
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif
extern ProcessField Platform_defaultFields[]; extern ProcessField Platform_defaultFields[];
extern int Platform_numberOfFields; extern int Platform_numberOfFields;

View File

@ -27,21 +27,6 @@ in the source distribution for its full text.
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
/*
* avoid relying on or conflicting with MIN() and MAX() in sys/param.h
*/
#ifndef MINIMUM
#define MINIMUM(x, y) ((x) > (y) ? (y) : (x))
#endif
#ifndef MAXIMUM
#define MAXIMUM(x, y) ((x) > (y) ? (x) : (y))
#endif
#ifndef CLAMP
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : MAXIMUM(x, low))
#endif
static long fscale; static long fscale;
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) { ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId) {

View File

@ -38,20 +38,6 @@ typedef struct OpenBSDProcessList_ {
} OpenBSDProcessList; } OpenBSDProcessList;
/*
* avoid relying on or conflicting with MIN() and MAX() in sys/param.h
*/
#ifndef MINIMUM
#define MINIMUM(x, y) ((x) > (y) ? (y) : (x))
#endif
#ifndef MAXIMUM
#define MAXIMUM(x, y) ((x) > (y) ? (x) : (y))
#endif
#ifndef CLAMP
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : MAXIMUM(x, low))
#endif
ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId); ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* pidWhiteList, uid_t userId);