drivers/infiniband/core/sa.h

Source file repositories/reference/linux-study-clean/drivers/infiniband/core/sa.h

File Facts

System
Linux kernel
Corpus path
drivers/infiniband/core/sa.h
Extension
.h
Size
2321 bytes
Lines
65
Domain
Driver Families
Bucket
drivers/infiniband
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef SA_H
#define SA_H

#include <rdma/ib_sa.h>

static inline void ib_sa_client_get(struct ib_sa_client *client)
{
	atomic_inc(&client->users);
}

static inline void ib_sa_client_put(struct ib_sa_client *client)
{
	if (atomic_dec_and_test(&client->users))
		complete(&client->comp);
}

int ib_sa_mcmember_rec_query(struct ib_sa_client *client,
			     struct ib_device *device, u32 port_num, u8 method,
			     struct ib_sa_mcmember_rec *rec,
			     ib_sa_comp_mask comp_mask,
			     unsigned long timeout_ms, gfp_t gfp_mask,
			     void (*callback)(int status,
					      struct ib_sa_mcmember_rec *resp,
					      void *context),
			     void *context, struct ib_sa_query **sa_query);

int mcast_init(void);
void mcast_cleanup(void);

#endif /* SA_H */

Annotation

Implementation Notes