drivers/infiniband/sw/rxe/rxe_task.h

Source file repositories/reference/linux-study-clean/drivers/infiniband/sw/rxe/rxe_task.h

File Facts

System
Linux kernel
Corpus path
drivers/infiniband/sw/rxe/rxe_task.h
Extension
.h
Size
1271 bytes
Lines
59
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

struct rxe_task {
	struct work_struct	work;
	int			state;
	spinlock_t		lock;
	struct rxe_qp		*qp;
	int			(*func)(struct rxe_qp *qp);
	int			ret;
	long			num_sched;
	long			num_done;
};

int rxe_alloc_wq(void);

void rxe_destroy_wq(void);

/*
 * init rxe_task structure
 *	qp  => parameter to pass to func
 *	func => function to call until it returns != 0
 */
int rxe_init_task(struct rxe_task *task, struct rxe_qp *qp,
		  int (*func)(struct rxe_qp *));

/* cleanup task */
void rxe_cleanup_task(struct rxe_task *task);

void rxe_sched_task(struct rxe_task *task);

/* keep a task from scheduling */
void rxe_disable_task(struct rxe_task *task);

/* allow task to run */
void rxe_enable_task(struct rxe_task *task);

#endif /* RXE_TASK_H */

Annotation

Implementation Notes