|
static bool | nlx_core_tm_invariant (const struct nlx_core_transfer_mc *lctm) |
|
static bool | nlx_core_tm_is_locked (const struct nlx_core_transfer_mc *lctm) |
|
static bool | nlx_core_buffer_invariant (const struct nlx_core_buffer *lcb) |
|
static uint32_t | nlx_core_kmem_loc_checksum (const struct nlx_core_kmem_loc *loc) |
|
static void | nlx_core_bev_free_cb (struct nlx_core_bev_link *ql) |
|
M0_INTERNAL int | nlx_core_bevq_provision (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, size_t need) |
|
M0_INTERNAL void | nlx_core_bevq_release (struct nlx_core_transfer_mc *lctm, size_t release) |
|
M0_INTERNAL bool | nlx_core_buf_event_get (struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer_event *lcbe) |
|
static uint64_t | nlx_core_match_bits_encode (uint32_t tmid, uint64_t counter) |
|
static void | nlx_core_match_bits_decode (uint64_t mb, uint32_t *tmid, uint64_t *counter) |
|
static uint64_t | nlx_core_buf_desc_checksum (const struct nlx_core_buf_desc *cbd) |
|
M0_INTERNAL void | nlx_core_buf_desc_encode (struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf, struct nlx_core_buf_desc *cbd) |
|
M0_INTERNAL int | nlx_core_buf_desc_decode (struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf, struct nlx_core_buf_desc *cbd) |
|
int | nlx_core_ep_addr_decode (struct nlx_core_domain *lcdom, const char *ep_addr, struct nlx_core_ep_addr *cepa) |
|
void | nlx_core_ep_addr_encode (struct nlx_core_domain *lcdom, const struct nlx_core_ep_addr *cepa, char buf[M0_NET_LNET_XEP_ADDR_LEN]) |
|
M0_INTERNAL void | nlx_core_dom_set_debug (struct nlx_core_domain *lcdom, unsigned dbg) |
|
M0_INTERNAL void | nlx_core_tm_set_debug (struct nlx_core_transfer_mc *lctm, unsigned dbg) |
|
static int | nlx_core_dom_init (struct m0_net_domain *dom, struct nlx_core_domain *lcdom) |
|
static void | nlx_core_dom_fini (struct nlx_core_domain *lcdom) |
|
static m0_bcount_t | nlx_core_get_max_buffer_size (struct nlx_core_domain *lcdom) |
|
static m0_bcount_t | nlx_core_get_max_buffer_segment_size (struct nlx_core_domain *lcdom) |
|
static int32_t | nlx_core_get_max_buffer_segments (struct nlx_core_domain *lcdom) |
|
static int | nlx_core_buf_register (struct nlx_core_domain *lcdom, nlx_core_opaque_ptr_t buffer_id, const struct m0_bufvec *bvec, struct nlx_core_buffer *lcbuf) |
|
static void | nlx_core_buf_deregister (struct nlx_core_domain *lcdom, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_msg_recv (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_msg_send (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_active_recv (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_active_send (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_passive_recv (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_passive_send (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_del (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer *lcbuf) |
|
static int | nlx_core_buf_event_wait (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, m0_time_t timeout) |
|
static int | nlx_core_nidstrs_get (struct nlx_core_domain *lcdom, char ***nidary) |
|
static void | nlx_core_nidstrs_put (struct nlx_core_domain *lcdom, char ***nidary) |
|
static int | nlx_core_tm_start (struct nlx_core_domain *lcdom, struct m0_net_transfer_mc *tm, struct nlx_core_transfer_mc *lctm) |
|
static void | nlx_core_tm_stop (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm) |
|
static bool | nlx_core_ep_eq (const struct nlx_core_ep_addr *cep1, const struct nlx_core_ep_addr *cep2) |
|
static int | nlx_core_new_blessed_bev (struct nlx_core_domain *lcdom, struct nlx_core_transfer_mc *lctm, struct nlx_core_buffer_event **bevp) |
|
static void * | nlx_core_mem_alloc (size_t size, unsigned shift) |
|
static void | nlx_core_mem_free (void *data, size_t size, unsigned shift) |
|
| M0_BASSERT (sizeof(nlx_core_opaque_ptr_t) >=sizeof(void *)) |
|
struct nlx_core_ep_addr | __attribute__ ((__packed__)) |
|
| M0_BASSERT (M0_NET_LNET_TMID_BITS+M0_NET_LNET_BUFFER_ID_BITS<=64) |
|
| M0_BASSERT (sizeof(((struct nlx_core_kmem_loc *) NULL) ->kl_page)+sizeof(((struct nlx_core_kmem_loc *) NULL) ->kl_offset)==sizeof(((struct nlx_core_kmem_loc *) NULL) ->kl_data)) |
|
static bool | nlx_core_kmem_loc_invariant (const struct nlx_core_kmem_loc *loc) |
|
static bool | nlx_core_kmem_loc_is_empty (const struct nlx_core_kmem_loc *loc) |
|
static bool | nlx_core_kmem_loc_eq (const struct nlx_core_kmem_loc *a, const struct nlx_core_kmem_loc *b) |
|
static int | nlx_core_nidstr_decode (struct nlx_core_domain *lcdom, const char *nidstr, uint64_t *nid) |
|
static int | nlx_core_nidstr_encode (struct nlx_core_domain *lcdom, uint64_t nid, char nidstr[M0_NET_LNET_NIDSTR_SIZE]) |
|
Subroutine to provision additional buffer event entries on the buffer event queue if needed. It increments the struct nlx_core_transfer_mc::ctm_bev_needed counter by the number of LNet events that can be delivered, as indicated by the need
parameter.
The subroutine is to be used in the consumer address space only, and uses a kernel or user space specific allocator subroutine to obtain an appropriately blessed entry in the producer space.
The invoker must lock the transfer machine prior to this call.
- Parameters
-
lcdom | LNet core domain pointer. |
lctm | Pointer to LNet core TM data structure. |
need | Number of additional buffer entries required. |
- See also
- nlx_core_new_blessed_bev(), nlx_core_bevq_release()
Definition at line 175 of file lnet_core.c.
Enqueues a buffer for active bulk receive. The cb_match_bits field should be set to the value of the match bits of the remote passive buffer. The cb_addr field should be set with the end point address of the transfer machine with the passive buffer.
The invoker should ensure that the subroutine is not invoked concurrently with any of the other buffer operation initiation subroutines or the nlx_core_buf_event_get() subroutine.
The invoker should provision sufficient buffer event structures prior to the call, using the nlx_core_bevq_provision() subroutine.
- Parameters
-
lcdom | The domain private data. |
lctm | Transfer machine private data. |
lcbuf | Buffer private data. |
- Precondition
- The buffer is queued on the specified transfer machine.
-
lcbuf->cb_length is valid
-
lcbuf->cb_match_bits != 0
-
lcbuf->cb_addr is valid
-
lcbuf->cb_max_operations == 1
- See also
- nlx_core_bevq_provision()
Definition at line 1467 of file klnet_core.c.
This subroutine generates new match bits for the given buffer's cb_match_bits field.
It is intended to be used by the transport prior to invoking passive buffer operations. The reason it is not combined with the passive operation subroutines is that the core API does not guarantee unique match bits. The match bit counter will wrap over time, though, being a very large counter, it would take considerable time before it does wrap.
- Parameters
-
lctm | Transfer machine private data. |
lcbuf | The buffer private data. |
cbd | Descriptor structure to be filled in. |
- Precondition
- The buffer is queued on the specified transfer machine on one of the passive bulk queues.
- See also
- nlx_core_buf_desc_decode()
Definition at line 292 of file lnet_core.c.
Enqueues a buffer for message reception. Multiple messages may be received into the buffer, space permitting, up to the configured maximum.
The invoker should ensure that the subroutine is not invoked concurrently with any of the other buffer operation initiation subroutines or the nlx_core_buf_event_get() subroutine.
The invoker should provision sufficient buffer event structures prior to the call, using the nlx_core_bevq_provision() subroutine.
- Parameters
-
lcdom | The domain private data. |
lctm | Transfer machine private data. |
lcbuf | Buffer private data. |
- Precondition
- lcbuf->cb_length is valid
-
lcbuf->cb_min_receive_size is valid
-
lcbuf->cb_max_operations > 0
- See also
- nlx_core_bevq_provision()
Definition at line 1373 of file klnet_core.c.
Enqueues a buffer for passive bulk receive. The match bits for the passive buffer should be set in the buffer with the nlx_core_buf_desc_encode() subroutine before this call. It is guaranteed that the buffer can be remotely accessed when the subroutine returns.
The invoker should ensure that the subroutine is not invoked concurrently with any of the other buffer operation initiation subroutines or the nlx_core_buf_event_get() subroutine.
The invoker should provision sufficient buffer event structures prior to the call, using the nlx_core_bevq_provision() subroutine.
- Parameters
-
lcdom | The domain private data. |
lctm | Transfer machine private data. |
lcbuf | Buffer private data. |
- Precondition
- The buffer is queued on the specified transfer machine.
-
lcbuf->cb_length is valid
-
lcbuf->cb_match_bits != 0
-
lcbuf->cb_max_operations == 1
- See also
- nlx_core_bevq_provision()
Definition at line 1566 of file klnet_core.c.
Enqueues a buffer for passive bulk send. See nlx_core_buf_passive_recv() for how the buffer is to be initialized. It is guaranteed that the buffer can be remotely accessed when the subroutine returns.
The invoker should ensure that the subroutine is not invoked concurrently with any of the other buffer operation initiation subroutines or the nlx_core_buf_event_get() subroutine.
The invoker should provision sufficient buffer event structures prior to the call, using the nlx_core_bevq_provision() subroutine.
- Parameters
-
lcdom | The private data pointer for the domain. |
lctm | Transfer machine private data. |
lcbuf | Buffer private data. |
- Precondition
- The buffer is queued on the specified transfer machine.
-
lcbuf->cb_length is valid
-
lcbuf->cb_match_bits != 0
-
lcbuf->cb_max_operations == 1
- See also
- nlx_core_bevq_provision()
Definition at line 1617 of file klnet_core.c.