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>

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.
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
Definition at line 238 of file nm_minidriver.h.
Function Documentation
◆ nm_minidriver_properties_init()
|
inlinestatic |
initialize all properties to 0
Definition at line 468 of file nm_minidriver.h.
Referenced by nm_minidriver_getprops().
◆ nm_minidriver_properties_normalize()
|
inlinestatic |
ensure properties are in canonical form
Definition at line 473 of file nm_minidriver.h.
References assert(), nm_minidriver_properties_s::capabilities, nm_minidriver_capabilities_s::max_iovecs, nm_minidriver_capabilities_s::max_msg_size, nm_minidriver_capabilities_s::max_pkt_recvs, nm_minidriver_capabilities_s::max_pkt_sends, NM_LEN_MAX, and nm_minidriver_capabilities_s::supports_iovec.
Referenced by nm_minidriver_getprops().

◆ nm_pkt_init()
|
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 | |||
| ) |