Motr  M0

#include <klnet_core.h>

Collaboration diagram for nlx_kcore_ops:
Collaboration graph

Data Fields

int(* ko_dom_init )(struct nlx_kcore_domain *kd, struct nlx_core_domain *cd)
 
void(* ko_dom_fini )(struct nlx_kcore_domain *kd, struct nlx_core_domain *cd)
 
int(* ko_buf_register )(struct nlx_kcore_domain *kd, nlx_core_opaque_ptr_t buffer_id, struct nlx_core_buffer *cb, struct nlx_kcore_buffer *kb)
 
void(* ko_buf_deregister )(struct nlx_core_buffer *cb, struct nlx_kcore_buffer *kb)
 
int(* ko_tm_start )(struct nlx_kcore_domain *kd, struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm)
 
void(* ko_tm_stop )(struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm)
 
nlx_kcore_queue_op_t ko_buf_msg_recv
 
nlx_kcore_queue_op_t ko_buf_msg_send
 
nlx_kcore_queue_op_t ko_buf_active_recv
 
nlx_kcore_queue_op_t ko_buf_active_send
 
nlx_kcore_queue_op_t ko_buf_passive_recv
 
nlx_kcore_queue_op_t ko_buf_passive_send
 
int(* ko_buf_del )(struct nlx_kcore_transfer_mc *ktm, struct nlx_kcore_buffer *kb)
 
int(* ko_buf_event_wait )(struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm, m0_time_t timeout)
 

Detailed Description

Kernel core operations. The operations listed here implement the common code shared by both the core API implemented in the kernel and the core API support provided by the LNet transport driver.

Definition at line 268 of file klnet_core.h.

Field Documentation

◆ ko_buf_active_recv

nlx_kcore_queue_op_t ko_buf_active_recv

Performs kernel core tasks relating to adding a buffer to the bulk active receive queue.

Definition at line 349 of file klnet_core.h.

◆ ko_buf_active_send

nlx_kcore_queue_op_t ko_buf_active_send

Performs kernel core tasks relating to adding a buffer to the bulk active send queue.

Definition at line 355 of file klnet_core.h.

◆ ko_buf_del

int(* ko_buf_del) (struct nlx_kcore_transfer_mc *ktm, struct nlx_kcore_buffer *kb)

Performs kernel core tasks relating to canceling a buffer operation.

Parameters
ktmThe kernel transfer machine private data.
kbThe kernel buffer private data.

Definition at line 374 of file klnet_core.h.

◆ ko_buf_deregister

void(* ko_buf_deregister) (struct nlx_core_buffer *cb, struct nlx_kcore_buffer *kb)

Performs common kernel core tasks related to de-registering a buffer.

Parameters
cbThe core private data pointer for the buffer.
kbKernel core private buffer pointer.

Definition at line 304 of file klnet_core.h.

◆ ko_buf_event_wait

int(* ko_buf_event_wait) (struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm, m0_time_t timeout)

Performs common kernel core tasks to wait for buffer events.

Parameters
ctmThe transfer machine private data.
ktmThe kernel transfer machine private data.
timeoutAbsolute time at which to stop waiting.

Definition at line 383 of file klnet_core.h.

◆ ko_buf_msg_recv

nlx_kcore_queue_op_t ko_buf_msg_recv

Performs kernel core tasks relating to adding a buffer to the message receive queue.

Definition at line 337 of file klnet_core.h.

◆ ko_buf_msg_send

nlx_kcore_queue_op_t ko_buf_msg_send

Performs kernel core tasks relating to adding a buffer to the message send queue.

Definition at line 343 of file klnet_core.h.

◆ ko_buf_passive_recv

nlx_kcore_queue_op_t ko_buf_passive_recv

Performs kernel core tasks relating to adding a buffer to the bulk passive receive queue.

Definition at line 361 of file klnet_core.h.

◆ ko_buf_passive_send

nlx_kcore_queue_op_t ko_buf_passive_send

Performs kernel core tasks relating to adding a buffer to the bulk passive send queue.

Definition at line 367 of file klnet_core.h.

◆ ko_buf_register

int(* ko_buf_register) (struct nlx_kcore_domain *kd, nlx_core_opaque_ptr_t buffer_id, struct nlx_core_buffer *cb, struct nlx_kcore_buffer *kb)

Performs common kernel core tasks related to registering a network buffer. The nlx_kcore_buffer::kb_kiov is not set.

Parameters
kdKernel core private domain pointer.
buffer_idValue to set in the cb_buffer_id field.
cbThe core private data pointer for the buffer.
kbKernel core private buffer pointer.

Definition at line 294 of file klnet_core.h.

◆ ko_dom_fini

void(* ko_dom_fini) (struct nlx_kcore_domain *kd, struct nlx_core_domain *cd)

Finilizes the core private data associated with a kernel core private data object.

Parameters
kdKernel core private data pointer.
cdCore private data pointer.

Definition at line 283 of file klnet_core.h.

◆ ko_dom_init

int(* ko_dom_init) (struct nlx_kcore_domain *kd, struct nlx_core_domain *cd)

Initializes the core private data given a previously initialized kernel core private data object.

Parameters
kdKernel core private data pointer.
cdCore private data pointer.

Definition at line 275 of file klnet_core.h.

◆ ko_tm_start

int(* ko_tm_start) (struct nlx_kcore_domain *kd, struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm)

Performs kernel core tasks related to starting a transfer machine. Internally this results in the creation of the LNet EQ associated with the transfer machine.

Parameters
kdThe kernel domain for this transfer machine.
ctmThe transfer machine private data to be initialized. The nlx_core_transfer_mc::ctm_addr must be set by the caller. If the lcpea_tmid field value is M0_NET_LNET_TMID_INVALID then a transfer machine identifier is dynamically assigned to the transfer machine and the nlx_core_transfer_mc::ctm_addr is modified in place.
ktmThe kernel transfer machine private data to be initialized.

Definition at line 320 of file klnet_core.h.

◆ ko_tm_stop

void(* ko_tm_stop) (struct nlx_core_transfer_mc *ctm, struct nlx_kcore_transfer_mc *ktm)

Performs kernel core tasks relating to stopping a transfer machine. Kernel resources are released.

Parameters
ctmThe transfer machine private data.
ktmThe kernel transfer machine private data.

Definition at line 330 of file klnet_core.h.


The documentation for this struct was generated from the following file: