CNDP  22.08.0
cne_isa.h File Reference
#include <sys/syscall.h>
#include <stdint.h>
#include <cne_common.h>

Go to the source code of this file.

Functions

static __cne_always_inline void cne_umonitor (volatile void *addr)
 
static __cne_always_inline void cne_umwait (const uint64_t timestamp)
 
static __cne_always_inline void cne_tpause (const uint64_t timestamp)
 
static __cne_always_inline void cne_movdiri (volatile void *addr, uint32_t value)
 
static __cne_always_inline void cne_movdir64b (volatile void *dst, const void *src)
 
static __cne_always_inline void cne_cldemote (const volatile void *p)
 

Detailed Description

APIs for ISA instructions

Definition in file cne_isa.h.

Function Documentation

◆ cne_umonitor()

static __cne_always_inline void cne_umonitor ( volatile void *  addr)
static

Set the address for UMONITOR instruction.

For more information about usage of these instructions, please refer to Intel(R) 64 and IA-32 Architectures Software Developer's Manual.

Parameters
addrAddress to use for umonitor.
Returns
None.

Definition at line 36 of file cne_isa.h.

◆ cne_umwait()

static __cne_always_inline void cne_umwait ( const uint64_t  timestamp)
static

Execute UMWAIT given the timestamp value.

This function will enter C0.2 state.

For more information about usage of these instructions, please refer to Intel(R) 64 and IA-32 Architectures Software Developer's Manual.

Parameters
timestampThe number of cycles to wait.
Returns
None.

Definition at line 56 of file cne_isa.h.

◆ cne_tpause()

static __cne_always_inline void cne_tpause ( const uint64_t  timestamp)
static

Execute TPAUSE given the timestamp value.

This function uses TPAUSE instruction and will enter C0.2 state. For more information about usage of this instruction, please refer to Intel(R) 64 and IA-32 Architectures Software Developer's Manual.

Parameters
timestampThe number of cycles to wait.
Returns
None.

Definition at line 81 of file cne_isa.h.

◆ cne_movdiri()

static __cne_always_inline void cne_movdiri ( volatile void *  addr,
uint32_t  value 
)
static

MOVDIRI instruction.

Parameters
addrThe address to put the value.
valueThe value to move to the given address.
Returns
None.

Definition at line 104 of file cne_isa.h.

◆ cne_movdir64b()

static __cne_always_inline void cne_movdir64b ( volatile void *  dst,
const void *  src 
)
static

Use movdir64b instruction to move data from source to destination

Parameters
dstThe destination address to put the source data
srcThe source address to get the data from.
Returns
None.

Definition at line 121 of file cne_isa.h.

◆ cne_cldemote()

static __cne_always_inline void cne_cldemote ( const volatile void *  p)
static

Demote a cacheline entry

Parameters
pThe address of the cacheline to demote.
Returns
None.

Definition at line 136 of file cne_isa.h.