6#include "dawn/io/sysinfo.hxx"
9#include <sys/sysinfo.h>
18 DAWNERR(
"CPULOAD requires DTYPE_FLOAT or DTYPE_UB16\n");
30CIOSysinfo::~CIOSysinfo()
50 DAWNERR(
"Invalid sysinfo class %d\n", cls);
58 struct sysinfo sys_info;
75 uint64_t *tmp =
static_cast<uint64_t *
>(data.
getDataPtr());
77 *tmp = sys_info.uptime;
87 float *tmp =
static_cast<float *
>(data.
getDataPtr());
88 float f_load = 1.0f / (1 << SI_LOAD_SHIFT);
90 tmp[0] = (float)sys_info.loads[0] * f_load;
91 tmp[1] = (float)sys_info.loads[1] * f_load;
92 tmp[2] = (float)sys_info.loads[2] * f_load;
99 DAWNASSERT(SI_LOAD_SHIFT == 16,
"Invalid system configuration");
101 ub16_t *tmp =
static_cast<ub16_t *
>(data.
getDataPtr());
103 tmp[0] = sys_info.loads[0];
104 tmp[1] = sys_info.loads[1];
105 tmp[2] = sys_info.loads[2];
112 DAWNERR(
"Unsupported data type %d for CPULOAD\n",
getDtype());
141 return sizeof(uint64_t) * dim;
146 return sizeof(float) * dim;
@ IO_CLASS_SYSTEM_UPTIME
System uptime.
@ IO_CLASS_SYSTEM_CPULOAD
CPU load.
int getDataImpl(IODataCmn &data, size_t len)
Get data implementation (override in derived classes).
int setDataImpl(IODataCmn &data)
Set data implementation (override in derived classes).
size_t getDataDim() const
Get data vector dimension.
size_t getDataSize() const
Get data size in bytes.
int init()
One-time initialize object after bindings are resolved.
uint16_t getCls() const
Get object class field.
uint8_t getDtype() const
Get data type field.
Out-of-tree user-extension hooks for Dawn.
Base interface for I/O data buffers (static and dynamic).
virtual void * getDataPtr(size_t batch=0)=0
Get pointer to data only (skips timestamp if present).
@ DTYPE_FLOAT
IEEE 754 single-precision floating point (32-bit).
@ DTYPE_UB16
Unsigned 16.16 fixed-point (32-bit).