NewMadeleine

Documentation

« back to PM2 home.

Definition of the minidriver interface. More...

#include <stdint.h>
#include <stdbool.h>
#include <nm_data.h>
#include <nm_public.h>
#include <Padico/Puk.h>
#include <sys/uio.h>
#include <string.h>
Include dependency graph for nm_minidriver.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  nm_drv_profile_s
 Performance information for driver. More...
 
struct  nm_minidriver_capabilities_s
 Static driver capabilities. More...
 
struct  nm_minidriver_hints_s
 some hints to help drivers tune themselves More...
 
struct  nm_minidriver_properties_s
 
struct  nm_pkt_s
 a packet to submit to a driver More...
 
struct  nm_minidriver_iface_s
 Interface driver for the 'NewMad_minidriver' component interface. More...
 

Macros

#define NM_RDV_DATA_SIZE   (4 * sizeof(uint64_t))
 size of rdv data packet with RTR, in bytes
 

Enumerations

enum  nm_minidriver_reentrance_e {
  nm_minidriver_reentrance_full = -1 , nm_minidriver_reentrance_pkt = 0 , nm_minidriver_reentrance_trk_dir , nm_minidriver_reentrance_trk ,
  nm_minidriver_reentrance_hybrid , nm_minidriver_reentrance_drv_dir , nm_minidriver_reentrance_drv
}
 level of reentrance of driver. More...
 

Functions

static void nm_pkt_init (struct nm_pkt_s *p_pkt)
 
 PUK_IFACE_TYPE (NewMad_minidriver, struct nm_minidriver_iface_s)
 
static void nm_minidriver_properties_init (struct nm_minidriver_properties_s *p_props)
 initialize all properties to 0
 
static void nm_minidriver_properties_normalize (struct nm_minidriver_properties_s *p_props)
 ensure properties are in canonical form
 

Detailed Description

Definition of the minidriver interface.

See Minidriver interface

Definition in file nm_minidriver.h.

Macro Definition Documentation

◆ NM_RDV_DATA_SIZE

#define NM_RDV_DATA_SIZE   (4 * sizeof(uint64_t))

size of rdv data packet with RTR, in bytes

Definition at line 293 of file nm_minidriver.h.

Enumeration Type Documentation

◆ nm_minidriver_reentrance_e

level of reentrance of driver.

Only applies to probe/post/poll functions.

  • getprops/init/close/connect/disconnect are never multithreaded
  • wait/prefetch/unfetch may always be run in another thread, whatever the reentrance level is set to
Enumerator
nm_minidriver_reentrance_full 

no restriction on reentrance

nm_minidriver_reentrance_pkt 

no concurrent calls for a given pkt (default)

nm_minidriver_reentrance_trk_dir 

no concurrent calls for a track except between send/recv

nm_minidriver_reentrance_trk 

no concurrent calls for a track (driver instance)

nm_minidriver_reentrance_hybrid 

no concurrent calls for a track on sender-side, no concurrent calls for the driver on receiver-side

nm_minidriver_reentrance_drv_dir 

no concurrent calls for the driver except between send/recv directions

nm_minidriver_reentrance_drv 

no concurrent calls at all for the full driver

Definition at line 238 of file nm_minidriver.h.

Function Documentation

◆ nm_minidriver_properties_init()

static void nm_minidriver_properties_init ( struct nm_minidriver_properties_s p_props)
inlinestatic

initialize all properties to 0

Definition at line 468 of file nm_minidriver.h.

Referenced by nm_minidriver_getprops().

◆ nm_minidriver_properties_normalize()

static void nm_minidriver_properties_normalize ( struct nm_minidriver_properties_s p_props)
inlinestatic

◆ nm_pkt_init()

static void nm_pkt_init ( struct nm_pkt_s p_pkt)
inlinestatic

Definition at line 342 of file nm_minidriver.h.

Referenced by nm_minidriver_recv_pkt_build(), and nm_minidriver_send_pkt_build().

◆ PUK_IFACE_TYPE()

PUK_IFACE_TYPE ( NewMad_minidriver  ,
struct nm_minidriver_iface_s   
)