rogue
Loading...
Searching...
No Matches
AxisDriver.h
Go to the documentation of this file.
1
23#ifndef __AXIS_DRIVER_H__
24#define __AXIS_DRIVER_H__
25#include "DmaDriver.h"
26
28#define AXIS_Read_Ack 0x2001 // NOLINT
29
31#define AXIS_Write_ReqMissed 0x2002 // NOLINT
32
33// Only define the following if not compiling for kernel space
34#ifndef DMA_IN_KERNEL
35
51static inline uint32_t axisSetFlags(uint32_t fuser, uint32_t luser, uint32_t cont) {
52 uint32_t flags;
53
54 // Set flags based on input parameters, ensuring each is in its correct position
55 flags = fuser & 0xFF; // First user-defined flag
56 flags |= (luser << 8) & 0xFF00; // Last user-defined flag
57 flags |= (cont << 16) & 0x10000; // Continuation flag
58
59 return flags;
60}
61
69static inline uint32_t axisGetFuser(uint32_t flags) {
70 return flags & 0xFF;
71}
72
80static inline uint32_t axisGetLuser(uint32_t flags) {
81 return (flags >> 8) & 0xFF;
82}
83
91static inline uint32_t axisGetCont(uint32_t flags) {
92 return (flags >> 16) & 0x1;
93}
94
104static inline void axisReadAck(int32_t fd) {
105 ioctl(fd, AXIS_Read_Ack, 0);
106}
107
117static inline void axisWriteReqMissed(int32_t fd) {
118 ioctl(fd, AXIS_Write_ReqMissed, 0);
119}
120
121#endif // !DMA_IN_KERNEL
122#endif // __AXIS_DRIVER_H__
static void axisWriteReqMissed(int32_t fd)
Issues AXIS missed-write-request ioctl command.
Definition AxisDriver.h:117
static uint32_t axisGetLuser(uint32_t flags)
Extracts last-user flag from packed AXIS flags.
Definition AxisDriver.h:80
static uint32_t axisSetFlags(uint32_t fuser, uint32_t luser, uint32_t cont)
Packs AXIS first-user, last-user, and continuation bits.
Definition AxisDriver.h:51
static uint32_t axisGetFuser(uint32_t flags)
Extracts first-user flag from packed AXIS flags.
Definition AxisDriver.h:69
#define AXIS_Read_Ack
ioctl command code used to acknowledge a completed AXIS read.
Definition AxisDriver.h:28
#define AXIS_Write_ReqMissed
ioctl command code used to signal a missed AXIS write request.
Definition AxisDriver.h:31
static void axisReadAck(int32_t fd)
Issues AXIS read-acknowledge ioctl command.
Definition AxisDriver.h:104
static uint32_t axisGetCont(uint32_t flags)
Extracts continuation flag from packed AXIS flags.
Definition AxisDriver.h:91