Skip to content

Commit 636d86a

Browse files
th133bpangWR
authored andcommitted
Added vxworks libc references - worked on by danielmccormick and taehyun-lee
1 parent 231ac68 commit 636d86a

File tree

7 files changed

+2215
-0
lines changed

7 files changed

+2215
-0
lines changed

src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ cfg_if! {
114114

115115
mod switch;
116116
pub use switch::*;
117+
} else if #[cfg(target_os = "vxworks")] {
118+
mod vxworks;
119+
pub use vxworks::*;
117120
} else if #[cfg(unix)] {
118121
mod fixed_width_ints;
119122
pub use fixed_width_ints::*;

src/vxworks/aarch64.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
pub type c_long = i64;
2+
pub type c_ulong = u64;
3+
4+
#[cfg(feature = "_WRS_KERNEL")]
5+
pub type _Vx_TASK_ID = *mut ::windTcb;
6+
7+
#[cfg(feature = "_WRS_KERNEL")]
8+
s! {
9+
pub struct OBJ_CORE {
10+
pub handle : ::HANDLE,
11+
pub ownerList : ::DL_LIST,
12+
pub ownerNode : ::DL_NODE,
13+
pub classNode : ::DL_NODE,
14+
pub ownerId : *mut ::OBJ_CORE,
15+
pub ownerRtpId : ::RTP_ID,
16+
pub name : *mut ::c_char,
17+
pub pObjClass : *mut ::wind_class,
18+
pub objHandleList : ::DL_LIST,
19+
pub refCnt : u16,
20+
pub accessCnt : u16,
21+
pub padding : u32, // There is a chance that Rust automatically pads, but
22+
// no point in risking it
23+
}
24+
25+
// semLibP.h
26+
pub struct semaphore {
27+
#[repr(align(16))]
28+
pub magic : ::OBJ_CORE,
29+
pub semType : u8,
30+
pub options : u8,
31+
pub recurse : u16,
32+
pub priInheritFlag : ::BOOL,
33+
pub qHead : ::Q_HEAD,
34+
pub state : ::size_t, //state is union of UINT and struct pointer
35+
pub events : ::EVENTS_RSRC,
36+
}
37+
38+
}

src/vxworks/armv7.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
pub type c_long = i32;
2+
pub type c_ulong = u32;
3+
4+
#[cfg(feature = "_WRS_KERNEL")]
5+
pub type _Vx_TASK_ID = ::c_int;
6+
7+
#[cfg(feature = "_WRS_KERNEL")]
8+
s! {
9+
pub struct OBJ_CORE {
10+
pub handle : ::HANDLE,
11+
pub ownerList : ::DL_LIST,
12+
pub ownerNode : ::DL_NODE,
13+
pub classNode : ::DL_NODE,
14+
pub ownerId : *mut ::OBJ_CORE,
15+
pub ownerRtpId : ::RTP_ID,
16+
pub name : *mut ::c_char,
17+
pub pObjClass : *mut ::wind_class,
18+
pub objHandleList : ::DL_LIST,
19+
pub refCnt : u16,
20+
pub accessCnt : u16,
21+
}
22+
23+
// semLibP.h
24+
pub struct semaphore {
25+
#[repr(align(8))]
26+
pub magic : ::OBJ_CORE,
27+
pub semType : u8,
28+
pub options : u8,
29+
pub recurse : u16,
30+
pub priInheritFlag : ::BOOL,
31+
pub qHead : ::Q_HEAD,
32+
pub state : ::size_t, //state is union of UINT and struct pointer
33+
pub events : ::EVENTS_RSRC,
34+
}
35+
}

src/vxworks/armv7le.rs

Whitespace-only changes.

0 commit comments

Comments
 (0)