include/linux/hte.h
Source file repositories/reference/linux-study-clean/include/linux/hte.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/hte.h- Extension
.h- Size
- 7551 bytes
- Lines
- 272
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/errno.h
Detected Declarations
struct hte_chipstruct hte_devicestruct of_phandle_argsstruct hte_ts_datastruct hte_clk_infostruct hte_line_attrstruct hte_ts_descstruct hte_opsstruct hte_chipenum hte_edgeenum hte_returnfunction devm_hte_register_chipfunction hte_push_ts_nsfunction hte_init_line_attrfunction hte_ts_getfunction hte_ts_putfunction hte_request_ts_nsfunction devm_hte_request_ts_nsfunction of_hte_req_countfunction hte_enable_tsfunction hte_disable_tsfunction hte_get_clk_src_info
Annotated Snippet
struct hte_ts_data {
u64 tsc;
u64 seq;
int raw_level;
};
/**
* struct hte_clk_info - Clock source info that HTE provider uses to timestamp.
*
* @hz: Supported clock rate in HZ, for example 1KHz clock = 1000.
* @type: Supported clock type.
*/
struct hte_clk_info {
u64 hz;
clockid_t type;
};
/**
* typedef hte_ts_cb_t - HTE timestamp data processing primary callback.
*
* The callback is used to push timestamp data to the client and it is
* not allowed to sleep.
*
* @ts: HW timestamp data.
* @data: Client supplied data.
*/
typedef enum hte_return (*hte_ts_cb_t)(struct hte_ts_data *ts, void *data);
/**
* typedef hte_ts_sec_cb_t - HTE timestamp data processing secondary callback.
*
* This is used when the client needs further processing where it is
* allowed to sleep.
*
* @data: Client supplied data.
*
*/
typedef enum hte_return (*hte_ts_sec_cb_t)(void *data);
/**
* struct hte_line_attr - Line attributes.
*
* @line_id: The logical ID understood by the consumers and providers.
* @line_data: Line data related to line_id.
* @edge_flags: Edge setup flags.
* @name: Descriptive name of the entity that is being monitored for the
* hardware timestamping. If null, HTE core will construct the name.
*
*/
struct hte_line_attr {
u32 line_id;
void *line_data;
unsigned long edge_flags;
const char *name;
};
/**
* struct hte_ts_desc - HTE timestamp descriptor.
*
* This structure is a communication token between consumers to subsystem
* and subsystem to providers.
*
* @attr: The line attributes.
* @hte_data: Subsystem's private data, set by HTE subsystem.
*/
struct hte_ts_desc {
struct hte_line_attr attr;
void *hte_data;
};
/**
* struct hte_ops - HTE operations set by providers.
*
* @request: Hook for requesting a HTE timestamp. Returns 0 on success,
* non-zero for failures.
* @release: Hook for releasing a HTE timestamp. Returns 0 on success,
* non-zero for failures.
* @enable: Hook to enable the specified timestamp. Returns 0 on success,
* non-zero for failures.
* @disable: Hook to disable specified timestamp. Returns 0 on success,
* non-zero for failures.
* @get_clk_src_info: Hook to get the clock information the provider uses
* to timestamp. Returns 0 for success and negative error code for failure. On
* success HTE subsystem fills up provided struct hte_clk_info.
*
* xlated_id parameter is used to communicate between HTE subsystem and the
* providers and is translated by the provider.
*/
struct hte_ops {
int (*request)(struct hte_chip *chip, struct hte_ts_desc *desc,
Annotation
- Immediate include surface: `linux/errno.h`.
- Detected declarations: `struct hte_chip`, `struct hte_device`, `struct of_phandle_args`, `struct hte_ts_data`, `struct hte_clk_info`, `struct hte_line_attr`, `struct hte_ts_desc`, `struct hte_ops`, `struct hte_chip`, `enum hte_edge`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.