#include <IOKit/IOKernelReportStructs.h>

IOKit/IOKernelReportStructs.h Kernel.framework

Internal data structures to be used by IOReporters and User Space Observers
includes: Kernel/stdint.h, IOKit/IOReportTypes.h
14 macros · 2 structs · 2 typedefs

macrokIOReportLegendPublicKey

Drivers participating in IOReporting can advertise channels by publishing properties in the I/O Kit registry. Various helper mechanisms exist to produce correctly-formatted legends. 12836893 tracks advertising channels in user space.
#define kIOReportLegendPublicKey "IOReportLegendPublic"
bool

macrokIOReportLegendKey

#define kIOReportLegendKey "IOReportLegend"
arr

macrokIOReportLegendChannelsKey

#define kIOReportLegendChannelsKey "IOReportChannels"
arr

macrokIOReportLegendGroupNameKey

#define kIOReportLegendGroupNameKey "IOReportGroupName"
str

macrokIOReportLegendSubGroupNameKey

#define kIOReportLegendSubGroupNameKey "IOReportSubGroupName"
str

macrokIOReportLegendInfoKey

#define kIOReportLegendInfoKey "IOReportChannelInfo"
dict

macrokIOReportLegendUnitKey

#define kIOReportLegendUnitKey "IOReportChannelUnit"
num

macrokIOReportLegendConfigKey

#define kIOReportLegendConfigKey "IOReportChannelConfig"
data

macrokIOReportLegendStateNamesKey

#define kIOReportLegendStateNamesKey "IOReportChannelStateNames"
str[]

macrokIOReportChannelIDIdx

in an I/O Kit registry legend, a small "array struct" represents a channel
#define kIOReportChannelIDIdx 0
required

macrokIOReportChannelTypeIdx

#define kIOReportChannelTypeIdx 1
required

macrokIOReportChannelNameIdx

#define kIOReportChannelNameIdx 2
optional

macrokIOHistogramScaleLinear

Histogram Segment Configuration Currently supports 2 types of scaling to compute bucket upper bounds, linear or exponential. scale_flag = 0 -> linear scale 1 -> exponential scale upper_bound[n] = (scale_flag) ? pow(base,(n+1)) : base * (n+1);
#define kIOHistogramScaleLinear 0

macrokIOHistogramScaleExponential

#define kIOHistogramScaleExponential 1

structIOHistogramSegmentConfig

size 16, align 1 · packed
uint32_tbase_bucket_widthsegment[0].bucket[0] = [0, base_width]
uint32_tscale_flagbit 0 only in current use (see #defs)
uint32_tsegment_idxfor multiple segments histograms
uint32_tsegment_bucket_countnumber of buckets in this segment

typedefIOHistogramSegmentConfig

typedef struct IOHistogramSegmentConfig IOHistogramSegmentConfig;

structIONormDistReportValues

"normalized distribution"(FIXME?) internal format (unused?)
size 32, align 1 · packed
uint64_tsamples
uint64_tmean
uint64_tvariance
uint64_treserved

typedefIONormDistReportValues

typedef struct IONormDistReportValues IONormDistReportValues;