include/uapi/linux/tipc.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/tipc.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/tipc.h- Extension
.h- Size
- 8805 bytes
- Lines
- 316
- 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/types.hlinux/sockios.h
Detected Declarations
struct tipc_socket_addrstruct tipc_service_addrstruct tipc_service_rangestruct tipc_subscrstruct tipc_eventstruct sockaddr_tipcstruct tipc_group_reqstruct tipc_sioc_ln_reqstruct tipc_sioc_nodeid_reqstruct tipc_aead_keyenum tipc_scopefunction tipc_aead_key_sizefunction tipc_addrfunction tipc_zonefunction tipc_clusterfunction tipc_node
Annotated Snippet
struct tipc_socket_addr {
__u32 ref;
__u32 node;
};
struct tipc_service_addr {
__u32 type;
__u32 instance;
};
struct tipc_service_range {
__u32 type;
__u32 lower;
__u32 upper;
};
/*
* Application-accessible service types
*/
#define TIPC_NODE_STATE 0 /* node state service type */
#define TIPC_TOP_SRV 1 /* topology server service type */
#define TIPC_LINK_STATE 2 /* link state service type */
#define TIPC_RESERVED_TYPES 64 /* lowest user-allowed service type */
/*
* Publication scopes when binding service / service range
*/
enum tipc_scope {
TIPC_CLUSTER_SCOPE = 2, /* 0 can also be used */
TIPC_NODE_SCOPE = 3
};
/*
* Limiting values for messages
*/
#define TIPC_MAX_USER_MSG_SIZE 66000U
/*
* Message importance levels
*/
#define TIPC_LOW_IMPORTANCE 0
#define TIPC_MEDIUM_IMPORTANCE 1
#define TIPC_HIGH_IMPORTANCE 2
#define TIPC_CRITICAL_IMPORTANCE 3
/*
* Msg rejection/connection shutdown reasons
*/
#define TIPC_OK 0
#define TIPC_ERR_NO_NAME 1
#define TIPC_ERR_NO_PORT 2
#define TIPC_ERR_NO_NODE 3
#define TIPC_ERR_OVERLOAD 4
#define TIPC_CONN_SHUTDOWN 5
/*
* TIPC topology subscription service definitions
*/
#define TIPC_SUB_PORTS 0x01 /* filter: evt at each match */
#define TIPC_SUB_SERVICE 0x02 /* filter: evt at first up/last down */
#define TIPC_SUB_CANCEL 0x04 /* filter: cancel a subscription */
#define TIPC_WAIT_FOREVER (~0) /* timeout for permanent subscription */
struct tipc_subscr {
struct tipc_service_range seq; /* range of interest */
__u32 timeout; /* subscription duration (in ms) */
__u32 filter; /* bitmask of filter options */
char usr_handle[8]; /* available for subscriber use */
};
#define TIPC_PUBLISHED 1 /* publication event */
#define TIPC_WITHDRAWN 2 /* withdrawal event */
#define TIPC_SUBSCR_TIMEOUT 3 /* subscription timeout event */
struct tipc_event {
__u32 event; /* event type */
__u32 found_lower; /* matching range */
__u32 found_upper; /* " " */
struct tipc_socket_addr port; /* associated socket */
struct tipc_subscr s; /* associated subscription */
};
/*
* Socket API
Annotation
- Immediate include surface: `linux/types.h`, `linux/sockios.h`.
- Detected declarations: `struct tipc_socket_addr`, `struct tipc_service_addr`, `struct tipc_service_range`, `struct tipc_subscr`, `struct tipc_event`, `struct sockaddr_tipc`, `struct tipc_group_req`, `struct tipc_sioc_ln_req`, `struct tipc_sioc_nodeid_req`, `struct tipc_aead_key`.
- 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.