Move generic (shared) code into its own sub-directory

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 https://github.com/htop-dev/htop/pull/553
This commit is contained in:
Nathan Scott 2021-03-03 10:59:28 +11:00
parent 5b50ae3aa3
commit 61ef1134d9
15 changed files with 144 additions and 77 deletions

View File

@ -42,7 +42,6 @@ myhtopsources = \
DisplayOptionsPanel.c \
EnvScreen.c \
FunctionBar.c \
Generic.c \
Hashtable.c \
Header.c \
HostnameMeter.c \
@ -97,7 +96,6 @@ myhtopheaders = \
DisplayOptionsPanel.h \
EnvScreen.h \
FunctionBar.h \
Generic.h \
Hashtable.h \
Header.h \
HostnameMeter.h \
@ -136,6 +134,8 @@ myhtopheaders = \
# -----
linux_platform_headers = \
generic/hostname.h \
generic/uname.h \
linux/HugePageMeter.h \
linux/IOPriority.h \
linux/IOPriorityPanel.h \
@ -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 \
@ -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
@ -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
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
myhtopplatsources = freebsd/Platform.c freebsd/FreeBSDProcessList.c \
freebsd/FreeBSDProcess.c \
zfs/ZfsArcMeter.c zfs/ZfsCompressedArcMeter.c zfs/openzfs_sysctl.c
myhtopplatheaders = $(freebsd_platform_headers)
myhtopplatsources = $(freebsd_platform_sources)
endif
# DragonFlyBSD
@ -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
dragonflybsd_platform_sources = \
dragonflybsd/DragonFlyBSDProcessList.c \
dragonflybsd/DragonFlyBSDProcess.c \
dragonflybsd/Platform.c \
generic/hostname.c \
generic/uname.c
if HTOP_DRAGONFLYBSD
myhtopplatsources = \
dragonflybsd/Platform.c \
dragonflybsd/DragonFlyBSDProcessList.c \
dragonflybsd/DragonFlyBSDProcess.c
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
@ -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
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
myhtopplatsources = solaris/Platform.c \
solaris/SolarisProcess.c solaris/SolarisProcessList.c \
zfs/ZfsArcMeter.c zfs/ZfsCompressedArcMeter.c
myhtopplatheaders = $(solaris_platform_headers)
myhtopplatsources = $(solaris_platform_sources)
endif
# Unsupported
@ -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

View File

@ -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"

View File

@ -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"
@ -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

View File

@ -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"
@ -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

View File

@ -30,6 +30,7 @@ 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"
@ -37,7 +38,6 @@ in the source distribution for its full text.
#include "Settings.h"
#include "XUtils.h"
#include "zfs/ZfsArcStats.h"
#include "zfs/openzfs_sysctl.h"
static int MIB_hw_physmem[2];

View File

@ -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"
@ -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
generic/hostname.c Normal file
View File

@ -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);
}

View File

@ -1,7 +1,7 @@
#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.
@ -9,8 +9,6 @@ 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

View File

@ -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

View File

@ -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.

View File

@ -1,26 +1,20 @@
/*
htop - Generic.c
htop - generic/uname.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.h"
#include "generic/uname.h"
#include <stdio.h>
#ifdef HAVE_SYS_UTSNAME_H
#include <sys/utsname.h>
#endif
#include <unistd.h>
#include "XUtils.h"
void Generic_Hostname(char* buffer, size_t size) {
gethostname(buffer, size - 1);
}
#ifdef HAVE_SYS_UTSNAME_H
#ifndef OSRELEASEFILE
#define OSRELEASEFILE "/etc/os-release"
@ -68,9 +62,7 @@ static void parseOSRelease(char* buffer, size_t bufferLen) {
snprintf(buffer, bufferLen, "%s%s%s", name[0] ? name : "", name[0] && version[0] ? " " : "", version);
}
char* Generic_OSRelease(void) {
static struct utsname uname_info;
char* Generic_uname(void) {
static char savedString[
/* uname structure fields - manpages recommend sizeof */
sizeof(uname_info.sysname) +
@ -99,4 +91,3 @@ char* Generic_OSRelease(void) {
return savedString;
}
#endif

12
generic/uname.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef HEADER_uname
#define HEADER_uname
/*
htop - generic/uname.h
(C) 2021 htop dev team
Released under the GNU GPLv2, see the COPYING file
in the source distribution for its full text.
*/
char* Generic_uname(void);
#endif

View File

@ -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 "Meter.h"
#include "NetworkIOMeter.h"
#include "Process.h"
@ -74,11 +75,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

View File

@ -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 "Meter.h"
#include "NetworkIOMeter.h"
#include "Process.h"
@ -62,11 +63,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

View File

@ -19,7 +19,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"
@ -81,11 +82,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