Skip to content

Commit

Permalink
Move generic (shared) code into its own sub-directory
Browse files Browse the repository at this point in the history
Code that is shared across some (but not all) platforms
is moved into a 'generic' home. Makefile.am cleanups to
match plus some minor alphabetic reordering/formatting.

As discussed in htop-dev#553
  • Loading branch information
natoscott committed Mar 4, 2021
1 parent 5b50ae3 commit 61ef113
Show file tree
Hide file tree
Showing 15 changed files with 143 additions and 76 deletions.
114 changes: 79 additions & 35 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ myhtopsources = \
DisplayOptionsPanel.c \
EnvScreen.c \
FunctionBar.c \
Generic.c \
Hashtable.c \
Header.c \
HostnameMeter.c \
Expand Down Expand Up @@ -97,7 +96,6 @@ myhtopheaders = \
DisplayOptionsPanel.h \
EnvScreen.h \
FunctionBar.h \
Generic.h \
Hashtable.h \
Header.h \
HostnameMeter.h \
Expand Down Expand Up @@ -136,6 +134,8 @@ myhtopheaders = \
# -----

linux_platform_headers = \
generic/hostname.h \
generic/uname.h \
linux/HugePageMeter.h \
linux/IOPriority.h \
linux/IOPriorityPanel.h \
Expand All @@ -153,9 +153,9 @@ linux_platform_headers = \
zfs/ZfsArcStats.h \
zfs/ZfsCompressedArcMeter.h

if HTOP_LINUX
AM_LDFLAGS += -rdynamic
myhtopplatsources = \
linux_platform_sources = \
generic/hostname.c \
generic/uname.c \
linux/HugePageMeter.c \
linux/IOPriorityPanel.c \
linux/LibSensors.c \
Expand All @@ -169,7 +169,10 @@ myhtopplatsources = \
zfs/ZfsArcMeter.c \
zfs/ZfsCompressedArcMeter.c

if HTOP_LINUX
AM_LDFLAGS += -rdynamic
myhtopplatheaders = $(linux_platform_headers)
myhtopplatsources = $(linux_platform_sources)
endif

# FreeBSD
Expand All @@ -180,17 +183,26 @@ freebsd_platform_headers = \
freebsd/FreeBSDProcess.h \
freebsd/Platform.h \
freebsd/ProcessField.h \
generic/hostname.h \
generic/openzfs_sysctl.h \
generic/uname.h \
zfs/ZfsArcMeter.h \
zfs/ZfsCompressedArcMeter.h \
zfs/ZfsArcStats.h \
zfs/openzfs_sysctl.h
zfs/ZfsCompressedArcMeter.h

if HTOP_FREEBSD
myhtopplatsources = freebsd/Platform.c freebsd/FreeBSDProcessList.c \
freebsd/FreeBSDProcess.c \
zfs/ZfsArcMeter.c zfs/ZfsCompressedArcMeter.c zfs/openzfs_sysctl.c
freebsd_platform_sources = \
freebsd/Platform.c \
freebsd/FreeBSDProcessList.c \
freebsd/FreeBSDProcess.c \
generic/hostname.c \
generic/openzfs_sysctl.c \
generic/uname.c \
zfs/ZfsArcMeter.c \
zfs/ZfsCompressedArcMeter.c

if HTOP_FREEBSD
myhtopplatheaders = $(freebsd_platform_headers)
myhtopplatsources = $(freebsd_platform_sources)
endif

# DragonFlyBSD
Expand All @@ -200,31 +212,43 @@ dragonflybsd_platform_headers = \
dragonflybsd/DragonFlyBSDProcessList.h \
dragonflybsd/DragonFlyBSDProcess.h \
dragonflybsd/Platform.h \
dragonflybsd/ProcessField.h
dragonflybsd/ProcessField.h \
generic/hostname.h \
generic/uname.h

if HTOP_DRAGONFLYBSD
myhtopplatsources = \
dragonflybsd/Platform.c \
dragonflybsd_platform_sources = \
dragonflybsd/DragonFlyBSDProcessList.c \
dragonflybsd/DragonFlyBSDProcess.c
dragonflybsd/DragonFlyBSDProcess.c \
dragonflybsd/Platform.c \
generic/hostname.c \
generic/uname.c

if HTOP_DRAGONFLYBSD
myhtopplatheaders = $(dragonflybsd_platform_headers)
myhtopplatsources = $(dragonflybsd_platform_sources)
endif

# OpenBSD
# -------

openbsd_platform_headers = \
generic/hostname.h \
generic/uname.h \
openbsd/OpenBSDProcessList.h \
openbsd/OpenBSDProcess.h \
openbsd/Platform.h \
openbsd/ProcessField.h

if HTOP_OPENBSD
myhtopplatsources = openbsd/Platform.c openbsd/OpenBSDProcessList.c \
openbsd/OpenBSDProcess.c
openbsd_platform_sources = \
generic/hostname.c \
generic/uname.c \
openbsd/OpenBSDProcessList.c \
openbsd/OpenBSDProcess.c \
openbsd/Platform.c

if HTOP_OPENBSD
myhtopplatheaders = $(openbsd_platform_headers)
myhtopplatsources = $(openbsd_platform_sources)
endif

# Darwin
Expand All @@ -235,38 +259,55 @@ darwin_platform_headers = \
darwin/DarwinProcessList.h \
darwin/Platform.h \
darwin/ProcessField.h \
generic/hostname.h \
generic/openzfs_sysctl.h \
generic/uname.h \
zfs/ZfsArcMeter.h \
zfs/ZfsCompressedArcMeter.h \
zfs/ZfsArcStats.h \
zfs/openzfs_sysctl.h
zfs/ZfsCompressedArcMeter.h

darwin_platform_sources = \
darwin/Platform.c \
darwin/DarwinProcess.c \
darwin/DarwinProcessList.c \
generic/hostname.c \
generic/openzfs_sysctl.c \
generic/uname.c \
zfs/ZfsArcMeter.c \
zfs/ZfsCompressedArcMeter.c

if HTOP_DARWIN
AM_LDFLAGS += -framework IOKit -framework CoreFoundation
myhtopplatsources = darwin/Platform.c darwin/DarwinProcess.c \
darwin/DarwinProcessList.c \
zfs/ZfsArcMeter.c zfs/ZfsCompressedArcMeter.c zfs/openzfs_sysctl.c

myhtopplatheaders = $(darwin_platform_headers)
myhtopplatsources = $(darwin_platform_sources)
endif

# Solaris
# -------

solaris_platform_headers = \
solaris/Platform.h \
generic/hostname.h \
generic/uname.h \
solaris/ProcessField.h \
solaris/Platform.h \
solaris/SolarisProcess.h \
solaris/SolarisProcessList.h \
zfs/ZfsArcMeter.h \
zfs/ZfsCompressedArcMeter.h \
zfs/ZfsArcStats.h
zfs/ZfsArcStats.h \
zfs/ZfsCompressedArcMeter.h

if HTOP_SOLARIS
myhtopplatsources = solaris/Platform.c \
solaris/SolarisProcess.c solaris/SolarisProcessList.c \
zfs/ZfsArcMeter.c zfs/ZfsCompressedArcMeter.c
solaris_platform_sources = \
generic/hostname.c \
generic/uname.c \
solaris/Platform.c \
solaris/SolarisProcess.c \
solaris/SolarisProcessList.c \
zfs/ZfsArcMeter.c \
zfs/ZfsCompressedArcMeter.c

if HTOP_SOLARIS
myhtopplatheaders = $(solaris_platform_headers)
myhtopplatsources = $(solaris_platform_sources)
endif

# Unsupported
Expand All @@ -278,10 +319,13 @@ unsupported_platform_headers = \
unsupported/UnsupportedProcess.h \
unsupported/UnsupportedProcessList.h

if HTOP_UNSUPPORTED
myhtopplatsources = unsupported/Platform.c \
unsupported/UnsupportedProcess.c unsupported/UnsupportedProcessList.c
unsupported_platform_sources = \
unsupported/Platform.c \
unsupported/UnsupportedProcess.c \
unsupported/UnsupportedProcessList.c

if HTOP_UNSUPPORTED
myhtopplatsources = $(unsupported_platform_sources)
myhtopplatheaders = $(unsupported_platform_headers)
endif

Expand Down
2 changes: 1 addition & 1 deletion darwin/DarwinProcessList.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ in the source distribution for its full text.

#include "CRT.h"
#include "DarwinProcess.h"
#include "generic/openzfs_sysctl.h"
#include "Platform.h"
#include "ProcessList.h"
#include "zfs/openzfs_sysctl.h"
#include "zfs/ZfsArcStats.h"


Expand Down
7 changes: 4 additions & 3 deletions darwin/Platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ in the source distribution for its full text.
#include "CPUMeter.h"
#include "DarwinProcess.h"
#include "DiskIOMeter.h"
#include "Generic.h"
#include "generic/hostname.h"
#include "generic/uname.h"
#include "NetworkIOMeter.h"
#include "ProcessLocksScreen.h"
#include "SignalsPanel.h"
Expand Down Expand Up @@ -69,11 +70,11 @@ bool Platform_getNetworkIO(NetworkIOData* data);
void Platform_getBattery(double *percent, ACPresence *isOnAC);

static inline void Platform_getHostname(char* buffer, size_t size) {
Generic_Hostname(buffer, size);
Generic_hostname(buffer, size);
}

static inline void Platform_getRelease(char** string) {
*string = Generic_OSRelease();
*string = Generic_uname();
}

#endif
7 changes: 4 additions & 3 deletions dragonflybsd/Platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ in the source distribution for its full text.
#include "Action.h"
#include "BatteryMeter.h"
#include "DiskIOMeter.h"
#include "Generic.h"
#include "generic/hostname.h"
#include "generic/uname.h"
#include "NetworkIOMeter.h"
#include "ProcessLocksScreen.h"
#include "SignalsPanel.h"
Expand Down Expand Up @@ -59,11 +60,11 @@ bool Platform_getNetworkIO(NetworkIOData* data);
void Platform_getBattery(double* percent, ACPresence* isOnAC);

static inline void Platform_getHostname(char* buffer, size_t size) {
Generic_Hostname(buffer, size);
Generic_hostname(buffer, size);
}

static inline void Platform_getRelease(char** string) {
*string = Generic_OSRelease();
*string = Generic_uname();
}

#endif
2 changes: 1 addition & 1 deletion freebsd/FreeBSDProcessList.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ in the source distribution for its full text.
#include "CRT.h"
#include "Compat.h"
#include "FreeBSDProcess.h"
#include "generic/openzfs_sysctl.h"
#include "Macros.h"
#include "Object.h"
#include "Process.h"
#include "ProcessList.h"
#include "Settings.h"
#include "XUtils.h"
#include "zfs/ZfsArcStats.h"
#include "zfs/openzfs_sysctl.h"


static int MIB_hw_physmem[2];
Expand Down
7 changes: 4 additions & 3 deletions freebsd/Platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ in the source distribution for its full text.
#include "Action.h"
#include "BatteryMeter.h"
#include "DiskIOMeter.h"
#include "Generic.h"
#include "generic/hostname.h"
#include "generic/uname.h"
#include "Meter.h"
#include "NetworkIOMeter.h"
#include "Process.h"
Expand Down Expand Up @@ -64,11 +65,11 @@ bool Platform_getNetworkIO(NetworkIOData* data);
void Platform_getBattery(double* percent, ACPresence* isOnAC);

static inline void Platform_getHostname(char* buffer, size_t size) {
Generic_Hostname(buffer, size);
Generic_hostname(buffer, size);
}

static inline void Platform_getRelease(char** string) {
*string = Generic_OSRelease();
*string = Generic_uname();
}

#endif
16 changes: 16 additions & 0 deletions generic/hostname.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
htop - generic/hostname.c
(C) 2021 htop dev team
Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
*/
#include "config.h" // IWYU pragma: keep

#include "generic/hostname.h"

#include <unistd.h>


void Generic_hostname(char* buffer, size_t size) {
gethostname(buffer, size - 1);
}
10 changes: 4 additions & 6 deletions Generic.h → generic/hostname.h
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
#ifndef HEADER_Generic
#define HEADER_Generic
#ifndef HEADER_hostname
#define HEADER_hostname
/*
htop - Generic.h
htop - generic/hostname.h
(C) 2021 htop dev team
Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
*/

#include <stddef.h>

void Generic_Hostname(char* buffer, size_t size);

char* Generic_OSRelease(void);
void Generic_hostname(char* buffer, size_t size);

#endif
4 changes: 2 additions & 2 deletions zfs/openzfs_sysctl.c → generic/openzfs_sysctl.c
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/*
htop - zfs/openzfs_sysctl.c
htop - generic/openzfs_sysctl.c
(C) 2014 Hisham H. Muhammad
Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
*/

#include "zfs/openzfs_sysctl.h"
#include "generic/openzfs_sysctl.h"

#include <stdlib.h>
#include <sys/types.h> // IWYU pragma: keep
Expand Down
2 changes: 1 addition & 1 deletion zfs/openzfs_sysctl.h → generic/openzfs_sysctl.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef HEADER_openzfs_sysctl
#define HEADER_openzfs_sysctl
/*
htop - zfs/openzfs_sysctl.h
htop - generic/openzfs_sysctl.h
(C) 2014 Hisham H. Muhammad
Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
Expand Down
Loading

0 comments on commit 61ef113

Please sign in to comment.