include/rdma/iw_cm.h
Source file repositories/reference/linux-study-clean/include/rdma/iw_cm.h
File Facts
- System
- Linux kernel
- Corpus path
include/rdma/iw_cm.h- Extension
.h- Size
- 6662 bytes
- Lines
- 206
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/in.hrdma/ib_cm.h
Detected Declarations
struct iw_cm_idstruct iw_cm_eventstruct iw_cm_idstruct iw_cm_conn_paramenum iw_cm_event_typeenum iw_flags
Annotated Snippet
struct iw_cm_event {
enum iw_cm_event_type event;
int status;
struct sockaddr_storage local_addr;
struct sockaddr_storage remote_addr;
void *private_data;
void *provider_data;
u8 private_data_len;
u8 ord;
u8 ird;
};
/**
* typedef iw_cm_handler - Function to be called by the IW CM when delivering
* events to the client.
*
* @cm_id: The IW CM identifier associated with the event.
* @event: Pointer to the event structure.
*/
typedef int (*iw_cm_handler)(struct iw_cm_id *cm_id,
struct iw_cm_event *event);
/**
* typedef iw_event_handler - Function called by the provider when delivering
* provider events to the IW CM. Returns either 0 indicating the event was
* processed or -errno if the event could not be processed.
*
* @cm_id: The IW CM identifier associated with the event.
* @event: Pointer to the event structure.
*/
typedef int (*iw_event_handler)(struct iw_cm_id *cm_id,
struct iw_cm_event *event);
struct iw_cm_id {
iw_cm_handler cm_handler; /* client callback function */
void *context; /* client cb context */
struct ib_device *device;
struct sockaddr_storage local_addr; /* local addr */
struct sockaddr_storage remote_addr;
struct sockaddr_storage m_local_addr; /* nmapped local addr */
struct sockaddr_storage m_remote_addr; /* nmapped rem addr */
void *provider_data; /* provider private data */
iw_event_handler event_handler; /* cb for provider
events */
/* Used by provider to add and remove refs on IW cm_id */
void (*add_ref)(struct iw_cm_id *);
void (*rem_ref)(struct iw_cm_id *);
u8 tos;
bool tos_set:1;
bool mapped:1;
bool afonly:1;
};
struct iw_cm_conn_param {
const void *private_data;
u16 private_data_len;
u32 ord;
u32 ird;
u32 qpn;
};
enum iw_flags {
/*
* This flag allows the iwcm and iwpmd to still advertise
* mappings but the real and mapped port numbers are the
* same. Further, iwpmd will not bind any user socket to
* reserve the port. This is required for soft iwarp
* to play in the port mapped iwarp space.
*/
IW_F_NO_PORT_MAP = (1 << 0),
};
/**
* iw_create_cm_id - Create an IW CM identifier.
*
* @device: The IB device on which to create the IW CM identier.
* @cm_handler: User callback invoked to report events associated with the
* returned IW CM identifier.
* @context: User specified context associated with the id.
*/
struct iw_cm_id *iw_create_cm_id(struct ib_device *device,
iw_cm_handler cm_handler, void *context);
/**
* iw_destroy_cm_id - Destroy an IW CM identifier.
*
* @cm_id: The previously created IW CM identifier to destroy.
*
* The client can assume that no events will be delivered for the CM ID after
Annotation
- Immediate include surface: `linux/in.h`, `rdma/ib_cm.h`.
- Detected declarations: `struct iw_cm_id`, `struct iw_cm_event`, `struct iw_cm_id`, `struct iw_cm_conn_param`, `enum iw_cm_event_type`, `enum iw_flags`.
- Atlas domain: Repository Root And Misc / include.
- 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.