Skip to content

Commit a011fc6

Browse files
committed
Add all enums
1 parent 3f67a0b commit a011fc6

File tree

2 files changed

+147
-0
lines changed

2 files changed

+147
-0
lines changed

ni-fpga-sys/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ description = "Rust bindings to the NI FPGA C API."
88
repository = "https://github.com/first-rust-competition/ni-fpga-rs"
99

1010
[dependencies]
11+
bitflags = "2.4.0"
1112
dlopen = "0.1.8"
1213
dlopen_derive = "0.1.4"

ni-fpga-sys/src/lib.rs

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,152 @@ use dlopen_derive::{WrapperApi, WrapperMultiApi};
6060

6161
pub type NiFpgaApiContainer = Container<NiFpgaApi>;
6262

63+
bitflags::bitflags! {
64+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
65+
pub struct OpenAttributes: u32 {
66+
const NoRun = 1;
67+
const BitfilePathIsUTF8 = 2;
68+
const BitfileContentsNotPath = 1u32 << 30;
69+
const IgnoreSignatureArgument = 1u32 << 31;
70+
}
71+
}
72+
73+
bitflags::bitflags! {
74+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
75+
pub struct CloseAttributes: u32 {
76+
const NoResetIfLastSession = 1;
77+
}
78+
}
79+
80+
bitflags::bitflags! {
81+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
82+
pub struct RunAttribute: u32 {
83+
const WaitUntilDone = 1;
84+
}
85+
}
86+
87+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
88+
pub enum FpgaViState {
89+
NotRunning,
90+
Invalid,
91+
Running,
92+
NaturallyStopped,
93+
Unknown,
94+
}
95+
96+
impl From<u32> for FpgaViState {
97+
fn from(value: u32) -> Self {
98+
match value {
99+
0 => FpgaViState::NotRunning,
100+
1 => FpgaViState::Invalid,
101+
2 => FpgaViState::Running,
102+
3 => FpgaViState::NaturallyStopped,
103+
_ => FpgaViState::Unknown,
104+
}
105+
}
106+
}
107+
108+
bitflags::bitflags! {
109+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
110+
pub struct Irq: u32 {
111+
const Irq0 = 1u32 << 0;
112+
const Irq1 = 1u32 << 1;
113+
const Irq2 = 1u32 << 2;
114+
const Irq3 = 1u32 << 3;
115+
const Irq4 = 1u32 << 4;
116+
const Irq5 = 1u32 << 5;
117+
const Irq6 = 1u32 << 6;
118+
const Irq7 = 1u32 << 7;
119+
const Irq8 = 1u32 << 8;
120+
const Irq9 = 1u32 << 9;
121+
const Irq10 = 1u32 << 10;
122+
const Irq11 = 1u32 << 11;
123+
const Irq12 = 1u32 << 12;
124+
const Irq13 = 1u32 << 13;
125+
const Irq14 = 1u32 << 14;
126+
const Irq15 = 1u32 << 15;
127+
const Irq16 = 1u32 << 16;
128+
const Irq17 = 1u32 << 17;
129+
const Irq18 = 1u32 << 18;
130+
const Irq19 = 1u32 << 19;
131+
const Irq20 = 1u32 << 20;
132+
const Irq21 = 1u32 << 21;
133+
const Irq22 = 1u32 << 22;
134+
const Irq23 = 1u32 << 23;
135+
const Irq24 = 1u32 << 24;
136+
const Irq25 = 1u32 << 25;
137+
const Irq26 = 1u32 << 26;
138+
const Irq27 = 1u32 << 27;
139+
const Irq28 = 1u32 << 28;
140+
const Irq29 = 1u32 << 29;
141+
const Irq30 = 1u32 << 30;
142+
const Irq31 = 1u32 << 31;
143+
}
144+
}
145+
146+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
147+
pub enum FifoProperty {
148+
BytesPerElement,
149+
HostBufferAllocationGranularity,
150+
HostBufferSize,
151+
HostBufferMirrorSize,
152+
HostBufferType,
153+
HostBuffer,
154+
FlowControl,
155+
ElementsCurrentlyAcquired,
156+
Unknown,
157+
}
158+
159+
impl From<u32> for FifoProperty {
160+
fn from(value: u32) -> Self {
161+
match value {
162+
1 => FifoProperty::BytesPerElement,
163+
2 => FifoProperty::HostBufferAllocationGranularity,
164+
3 => FifoProperty::HostBufferSize,
165+
4 => FifoProperty::HostBufferMirrorSize,
166+
5 => FifoProperty::HostBufferType,
167+
6 => FifoProperty::HostBuffer,
168+
7 => FifoProperty::FlowControl,
169+
8 => FifoProperty::ElementsCurrentlyAcquired,
170+
_ => FifoProperty::Unknown,
171+
}
172+
}
173+
}
174+
175+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
176+
pub enum HostBufferType {
177+
AllocatedByRIO,
178+
AllocatedByUser,
179+
Unknown,
180+
}
181+
182+
impl From<u32> for HostBufferType {
183+
fn from(value: u32) -> Self {
184+
match value {
185+
1 => HostBufferType::AllocatedByRIO,
186+
2 => HostBufferType::AllocatedByUser,
187+
_ => HostBufferType::Unknown,
188+
}
189+
}
190+
}
191+
192+
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
193+
pub enum FifoFlowControl {
194+
Disabled,
195+
Enabled,
196+
Unknown,
197+
}
198+
199+
impl From<u32> for FifoFlowControl {
200+
fn from(value: u32) -> Self {
201+
match value {
202+
1 => FifoFlowControl::Disabled,
203+
2 => FifoFlowControl::Enabled,
204+
_ => FifoFlowControl::Unknown,
205+
}
206+
}
207+
}
208+
63209
#[derive(WrapperApi)]
64210
pub struct NiFpgaHmbApi {
65211
NiFpgaDll_OpenHmb: extern "C" fn(

0 commit comments

Comments
 (0)