Motr  M0
LNet Transport Device
Collaboration diagram for LNet Transport Device:

Modules

 LNet Transport Device Internals
 Detailed functional specification of the internals of the LNet Transport Device.
 

Data Structures

struct  m0_lnet_dev_dom_init_params
 
struct  m0_lnet_dev_buf_register_params
 
struct  m0_lnet_dev_buf_deregister_params
 
struct  m0_lnet_dev_buf_queue_params
 
struct  m0_lnet_dev_buf_event_wait_params
 
struct  m0_lnet_dev_nid_encdec_params
 
struct  m0_lnet_dev_nidstrs_get_params
 
struct  m0_lnet_dev_tm_start_params
 
struct  m0_lnet_dev_tm_stop_params
 
struct  m0_lnet_dev_bev_bless_params
 

Macros

#define WRITABLE_USER_PAGE_GET(uaddr, pg)   get_user_pages((unsigned long) (uaddr), 1, FOLL_WRITE, &(pg), NULL)
 
#define WRITABLE_USER_PAGE_PUT(pg)
 
#define M0_LNET_DEV   "m0lnet"
 
#define M0_LNET_IOC_MAGIC   'c'
 
#define M0_LNET_IOC_MIN_NR   0x21
 
#define M0_LNET_IOC_MAX_NR   0x4f
 
#define M0_LNET_DOM_INIT   _IOWR(M0_LNET_IOC_MAGIC, 0x21, struct m0_lnet_dev_dom_init_params)
 
#define M0_LNET_BUF_REGISTER   _IOW(M0_LNET_IOC_MAGIC, 0x26, struct m0_lnet_dev_buf_register_params)
 
#define M0_LNET_BUF_DEREGISTER   _IOW(M0_LNET_IOC_MAGIC, 0x27, struct m0_lnet_dev_buf_deregister_params)
 
#define M0_LNET_BUF_MSG_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x28, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_MSG_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x29, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_ACTIVE_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x2a, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_ACTIVE_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x2b, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_PASSIVE_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x2c, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_PASSIVE_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x2d, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_DEL   _IOW(M0_LNET_IOC_MAGIC, 0x2e, struct m0_lnet_dev_buf_queue_params)
 
#define M0_LNET_BUF_EVENT_WAIT   _IOW(M0_LNET_IOC_MAGIC, 0x2f, struct m0_lnet_dev_buf_event_wait_params)
 
#define M0_LNET_NIDSTR_DECODE   _IOWR(M0_LNET_IOC_MAGIC, 0x30, struct m0_lnet_dev_nid_encdec_params)
 
#define M0_LNET_NIDSTR_ENCODE   _IOWR(M0_LNET_IOC_MAGIC, 0x31, struct m0_lnet_dev_nid_encdec_params)
 
#define M0_LNET_NIDSTRS_GET   _IOW(M0_LNET_IOC_MAGIC, 0x32, struct m0_lnet_dev_nidstrs_get_params)
 
#define M0_LNET_TM_START   _IOW(M0_LNET_IOC_MAGIC, 0x33, struct m0_lnet_dev_tm_start_params)
 
#define M0_LNET_TM_STOP   _IOW(M0_LNET_IOC_MAGIC, 0x34, struct m0_lnet_dev_tm_stop_params)
 
#define M0_LNET_BEV_BLESS   _IOW(M0_LNET_IOC_MAGIC, 0x35, struct m0_lnet_dev_bev_bless_params)
 

Functions

M0_INTERNAL int nlx_dev_init (void)
 
M0_INTERNAL void nlx_dev_fini (void)
 

Detailed Description

The external interfaces of the LNet transport device are obtained by including the file net/lnet/linux_kernel/klnet_drv.h.

The device appears in file system as /dev/m0lnet.

See also
The LNet Transport Device and Driver DLD its Functional Specification

Macro Definition Documentation

◆ M0_LNET_BEV_BLESS

#define M0_LNET_BEV_BLESS   _IOW(M0_LNET_IOC_MAGIC, 0x35, struct m0_lnet_dev_bev_bless_params)

Definition at line 206 of file lnet_ioctl.h.

◆ M0_LNET_BUF_ACTIVE_RECV

#define M0_LNET_BUF_ACTIVE_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x2a, struct m0_lnet_dev_buf_queue_params)

Definition at line 181 of file lnet_ioctl.h.

◆ M0_LNET_BUF_ACTIVE_SEND

#define M0_LNET_BUF_ACTIVE_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x2b, struct m0_lnet_dev_buf_queue_params)

Definition at line 183 of file lnet_ioctl.h.

◆ M0_LNET_BUF_DEL

#define M0_LNET_BUF_DEL   _IOW(M0_LNET_IOC_MAGIC, 0x2e, struct m0_lnet_dev_buf_queue_params)

Definition at line 189 of file lnet_ioctl.h.

◆ M0_LNET_BUF_DEREGISTER

#define M0_LNET_BUF_DEREGISTER   _IOW(M0_LNET_IOC_MAGIC, 0x27, struct m0_lnet_dev_buf_deregister_params)

Definition at line 175 of file lnet_ioctl.h.

◆ M0_LNET_BUF_EVENT_WAIT

#define M0_LNET_BUF_EVENT_WAIT   _IOW(M0_LNET_IOC_MAGIC, 0x2f, struct m0_lnet_dev_buf_event_wait_params)

Definition at line 191 of file lnet_ioctl.h.

◆ M0_LNET_BUF_MSG_RECV

#define M0_LNET_BUF_MSG_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x28, struct m0_lnet_dev_buf_queue_params)

Definition at line 177 of file lnet_ioctl.h.

◆ M0_LNET_BUF_MSG_SEND

#define M0_LNET_BUF_MSG_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x29, struct m0_lnet_dev_buf_queue_params)

Definition at line 179 of file lnet_ioctl.h.

◆ M0_LNET_BUF_PASSIVE_RECV

#define M0_LNET_BUF_PASSIVE_RECV   _IOW(M0_LNET_IOC_MAGIC, 0x2c, struct m0_lnet_dev_buf_queue_params)

Definition at line 185 of file lnet_ioctl.h.

◆ M0_LNET_BUF_PASSIVE_SEND

#define M0_LNET_BUF_PASSIVE_SEND   _IOW(M0_LNET_IOC_MAGIC, 0x2d, struct m0_lnet_dev_buf_queue_params)

Definition at line 187 of file lnet_ioctl.h.

◆ M0_LNET_BUF_REGISTER

#define M0_LNET_BUF_REGISTER   _IOW(M0_LNET_IOC_MAGIC, 0x26, struct m0_lnet_dev_buf_register_params)

Definition at line 173 of file lnet_ioctl.h.

◆ M0_LNET_DEV

#define M0_LNET_DEV   "m0lnet"

The name of the M0_LNET device.

Definition at line 164 of file lnet_ioctl.h.

◆ M0_LNET_DOM_INIT

#define M0_LNET_DOM_INIT   _IOWR(M0_LNET_IOC_MAGIC, 0x21, struct m0_lnet_dev_dom_init_params)

Definition at line 170 of file lnet_ioctl.h.

◆ M0_LNET_IOC_MAGIC

#define M0_LNET_IOC_MAGIC   'c'

Definition at line 166 of file lnet_ioctl.h.

◆ M0_LNET_IOC_MAX_NR

#define M0_LNET_IOC_MAX_NR   0x4f

Definition at line 168 of file lnet_ioctl.h.

◆ M0_LNET_IOC_MIN_NR

#define M0_LNET_IOC_MIN_NR   0x21

Definition at line 167 of file lnet_ioctl.h.

◆ M0_LNET_NIDSTR_DECODE

#define M0_LNET_NIDSTR_DECODE   _IOWR(M0_LNET_IOC_MAGIC, 0x30, struct m0_lnet_dev_nid_encdec_params)

Definition at line 194 of file lnet_ioctl.h.

◆ M0_LNET_NIDSTR_ENCODE

#define M0_LNET_NIDSTR_ENCODE   _IOWR(M0_LNET_IOC_MAGIC, 0x31, struct m0_lnet_dev_nid_encdec_params)

Definition at line 196 of file lnet_ioctl.h.

◆ M0_LNET_NIDSTRS_GET

#define M0_LNET_NIDSTRS_GET   _IOW(M0_LNET_IOC_MAGIC, 0x32, struct m0_lnet_dev_nidstrs_get_params)

Definition at line 198 of file lnet_ioctl.h.

◆ M0_LNET_TM_START

#define M0_LNET_TM_START   _IOW(M0_LNET_IOC_MAGIC, 0x33, struct m0_lnet_dev_tm_start_params)

Definition at line 201 of file lnet_ioctl.h.

◆ M0_LNET_TM_STOP

#define M0_LNET_TM_STOP   _IOW(M0_LNET_IOC_MAGIC, 0x34, struct m0_lnet_dev_tm_stop_params)

Definition at line 203 of file lnet_ioctl.h.

◆ WRITABLE_USER_PAGE_GET

#define WRITABLE_USER_PAGE_GET (   uaddr,
  pg 
)    get_user_pages((unsigned long) (uaddr), 1, FOLL_WRITE, &(pg), NULL)

Definition at line 146 of file klnet_drv.h.

◆ WRITABLE_USER_PAGE_PUT

#define WRITABLE_USER_PAGE_PUT (   pg)
Value:
({ \
struct page *__pg = (pg); \
if (!PageReserved(__pg)) \
SetPageDirty(__pg); \
put_page(__pg); \
})

Put a writable user page after calling SetPageDirty().

Definition at line 155 of file klnet_drv.h.

Function Documentation

◆ nlx_dev_fini()

M0_INTERNAL void nlx_dev_fini ( void  )

Finalise the M0 LNet device.

Definition at line 1653 of file klnet_drv.c.

Here is the caller graph for this function:

◆ nlx_dev_init()

M0_INTERNAL int nlx_dev_init ( void  )

Initialise the M0 LNet Transport device. Registers the device as a miscellaneous character device.

Definition at line 1640 of file klnet_drv.c.

Here is the call graph for this function:
Here is the caller graph for this function: