Skip to content

Commit

Permalink
Add all enums
Browse files Browse the repository at this point in the history
  • Loading branch information
ThadHouse committed Sep 2, 2023
1 parent 3f67a0b commit a011fc6
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 0 deletions.
1 change: 1 addition & 0 deletions ni-fpga-sys/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ description = "Rust bindings to the NI FPGA C API."
repository = "https://github.com/first-rust-competition/ni-fpga-rs"

[dependencies]
bitflags = "2.4.0"
dlopen = "0.1.8"
dlopen_derive = "0.1.4"
146 changes: 146 additions & 0 deletions ni-fpga-sys/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,152 @@ use dlopen_derive::{WrapperApi, WrapperMultiApi};

pub type NiFpgaApiContainer = Container<NiFpgaApi>;

bitflags::bitflags! {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct OpenAttributes: u32 {
const NoRun = 1;
const BitfilePathIsUTF8 = 2;
const BitfileContentsNotPath = 1u32 << 30;
const IgnoreSignatureArgument = 1u32 << 31;
}
}

bitflags::bitflags! {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct CloseAttributes: u32 {
const NoResetIfLastSession = 1;
}
}

bitflags::bitflags! {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct RunAttribute: u32 {
const WaitUntilDone = 1;
}
}

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum FpgaViState {
NotRunning,
Invalid,
Running,
NaturallyStopped,
Unknown,
}

impl From<u32> for FpgaViState {
fn from(value: u32) -> Self {
match value {
0 => FpgaViState::NotRunning,
1 => FpgaViState::Invalid,
2 => FpgaViState::Running,
3 => FpgaViState::NaturallyStopped,
_ => FpgaViState::Unknown,
}
}
}

bitflags::bitflags! {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct Irq: u32 {
const Irq0 = 1u32 << 0;
const Irq1 = 1u32 << 1;
const Irq2 = 1u32 << 2;
const Irq3 = 1u32 << 3;
const Irq4 = 1u32 << 4;
const Irq5 = 1u32 << 5;
const Irq6 = 1u32 << 6;
const Irq7 = 1u32 << 7;
const Irq8 = 1u32 << 8;
const Irq9 = 1u32 << 9;
const Irq10 = 1u32 << 10;
const Irq11 = 1u32 << 11;
const Irq12 = 1u32 << 12;
const Irq13 = 1u32 << 13;
const Irq14 = 1u32 << 14;
const Irq15 = 1u32 << 15;
const Irq16 = 1u32 << 16;
const Irq17 = 1u32 << 17;
const Irq18 = 1u32 << 18;
const Irq19 = 1u32 << 19;
const Irq20 = 1u32 << 20;
const Irq21 = 1u32 << 21;
const Irq22 = 1u32 << 22;
const Irq23 = 1u32 << 23;
const Irq24 = 1u32 << 24;
const Irq25 = 1u32 << 25;
const Irq26 = 1u32 << 26;
const Irq27 = 1u32 << 27;
const Irq28 = 1u32 << 28;
const Irq29 = 1u32 << 29;
const Irq30 = 1u32 << 30;
const Irq31 = 1u32 << 31;
}
}

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum FifoProperty {
BytesPerElement,
HostBufferAllocationGranularity,
HostBufferSize,
HostBufferMirrorSize,
HostBufferType,
HostBuffer,
FlowControl,
ElementsCurrentlyAcquired,
Unknown,
}

impl From<u32> for FifoProperty {
fn from(value: u32) -> Self {
match value {
1 => FifoProperty::BytesPerElement,
2 => FifoProperty::HostBufferAllocationGranularity,
3 => FifoProperty::HostBufferSize,
4 => FifoProperty::HostBufferMirrorSize,
5 => FifoProperty::HostBufferType,
6 => FifoProperty::HostBuffer,
7 => FifoProperty::FlowControl,
8 => FifoProperty::ElementsCurrentlyAcquired,
_ => FifoProperty::Unknown,
}
}
}

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum HostBufferType {
AllocatedByRIO,
AllocatedByUser,
Unknown,
}

impl From<u32> for HostBufferType {
fn from(value: u32) -> Self {
match value {
1 => HostBufferType::AllocatedByRIO,
2 => HostBufferType::AllocatedByUser,
_ => HostBufferType::Unknown,
}
}
}

#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub enum FifoFlowControl {
Disabled,
Enabled,
Unknown,
}

impl From<u32> for FifoFlowControl {
fn from(value: u32) -> Self {
match value {
1 => FifoFlowControl::Disabled,
2 => FifoFlowControl::Enabled,
_ => FifoFlowControl::Unknown,
}
}
}

#[derive(WrapperApi)]
pub struct NiFpgaHmbApi {
NiFpgaDll_OpenHmb: extern "C" fn(
Expand Down

0 comments on commit a011fc6

Please sign in to comment.