NewMadeleine

Documentation

nm_onesided_private.h File Reference

internal definitions for interface 'onesided'. More...

#include <nm_sendrecv_interface.h>
#include <stdint.h>
Include dependency graph for nm_onesided_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nm_onesided_header_s
 header used on the wire for onesided requests More...
 
struct  nm_onesided_request_s
 a send request for onesided More...
 
struct  nm_onesided_target_request_s
 a request used for target-side completions More...
 
struct  nm_onesided_target_completion_s
 status of a target-side completion More...
 
struct  nm_onesided_s
 an instance of interface 'onesided' More...
 

Macros

#define NM_ONESIDED_OP_PUT   ((nm_onesided_flag_t)0x01)
 
#define NM_ONESIDED_OP_GET   ((nm_onesided_flag_t)0x02)
 
#define NM_ONESIDED_OP_FENCE   ((nm_onesided_flag_t)0x03)
 
#define NM_ONESIDED_OP_QUEUE   ((nm_onesided_flag_t)0x04)
 
#define NM_ONESIDED_OP_MASK   ((nm_onesided_flag_t)0x0F)
 
#define NM_ONESIDED_FLAG_TARGET_COMPLETION   ((nm_onesided_flag_t)0x10)
 generate a completion on the target side More...
 
#define NM_ONESIDED_TARGET_COMPLETION_MAX   64
 maximum size for target-side completion data More...
 

Typedefs

typedef uint32_t nm_onesided_flag_t
 

Functions

struct nm_onesided_header_s __attribute__ ((packed))
 
 PUK_ALLOCATOR_TYPE (nm_sr_req, nm_sr_request_t)
 
 PUK_ALLOCATOR_TYPE (nm_onesided_target_completion, struct nm_onesided_target_completion_s)
 
 PUK_DLFQ_TYPE (nm_onesided_queue_entry, void *, NULL)
 
 PUK_VECT_TYPE (nm_onesided_queue, struct nm_onesided_queue_entry_dlfq_s *)
 

Variables

uintptr_t addr
 remote address (or queue id for enqueue) More...
 
nm_len_t size
 size of the onsided data (not incuding target-side completion) More...
 
nm_onesided_flag_t flags
 
nm_seq_t seq
 seq number for target-side completion More...
 
uint8_t target_size
 size of target-side completion data More...
 
struct nm_onesided_request_s __attribute__
 

Detailed Description

internal definitions for interface 'onesided'.

Not part of the public API. Included ion the interface header only for inlining purpose.

Definition in file nm_onesided_private.h.

Macro Definition Documentation

◆ NM_ONESIDED_FLAG_TARGET_COMPLETION

#define NM_ONESIDED_FLAG_TARGET_COMPLETION   ((nm_onesided_flag_t)0x10)

generate a completion on the target side

Definition at line 37 of file nm_onesided_private.h.

◆ NM_ONESIDED_OP_FENCE

#define NM_ONESIDED_OP_FENCE   ((nm_onesided_flag_t)0x03)

Definition at line 33 of file nm_onesided_private.h.

◆ NM_ONESIDED_OP_GET

#define NM_ONESIDED_OP_GET   ((nm_onesided_flag_t)0x02)

Definition at line 32 of file nm_onesided_private.h.

◆ NM_ONESIDED_OP_MASK

#define NM_ONESIDED_OP_MASK   ((nm_onesided_flag_t)0x0F)

Definition at line 35 of file nm_onesided_private.h.

◆ NM_ONESIDED_OP_PUT

#define NM_ONESIDED_OP_PUT   ((nm_onesided_flag_t)0x01)

Definition at line 31 of file nm_onesided_private.h.

◆ NM_ONESIDED_OP_QUEUE

#define NM_ONESIDED_OP_QUEUE   ((nm_onesided_flag_t)0x04)

Definition at line 34 of file nm_onesided_private.h.

◆ NM_ONESIDED_TARGET_COMPLETION_MAX

#define NM_ONESIDED_TARGET_COMPLETION_MAX   64

maximum size for target-side completion data

Definition at line 71 of file nm_onesided_private.h.

Typedef Documentation

◆ nm_onesided_flag_t

typedef uint32_t nm_onesided_flag_t

Definition at line 29 of file nm_onesided_private.h.

Function Documentation

◆ __attribute__()

struct nm_onesided_header_s __attribute__ ( (packed)  )

◆ PUK_ALLOCATOR_TYPE() [1/2]

PUK_ALLOCATOR_TYPE ( nm_onesided_target_completion  ,
struct nm_onesided_target_completion_s   
)

◆ PUK_ALLOCATOR_TYPE() [2/2]

PUK_ALLOCATOR_TYPE ( nm_sr_req  ,
nm_sr_request_t   
)

◆ PUK_DLFQ_TYPE()

PUK_DLFQ_TYPE ( nm_onesided_queue_entry  ,
void *  ,
NULL   
)

◆ PUK_VECT_TYPE()

PUK_VECT_TYPE ( nm_onesided_queue  ,
struct nm_onesided_queue_entry_dlfq_s *   
)

Variable Documentation

◆ __attribute__

struct nm_onesided_request_s __attribute__

◆ addr

uintptr_t addr

remote address (or queue id for enqueue)

Definition at line 0 of file nm_onesided_private.h.

Referenced by nm_dcfa_rdma_send().

◆ flags

Definition at line 2 of file nm_onesided_private.h.

Referenced by nm_header_init_data(), and nm_header_init_pkt_data().

◆ seq

nm_seq_t seq

seq number for target-side completion

Definition at line 3 of file nm_onesided_private.h.

◆ size

◆ target_size

uint8_t target_size

size of target-side completion data

Definition at line 4 of file nm_onesided_private.h.