Skip to content

Commit

Permalink
Rollup merge of rust-lang#65246 - Wind-River:real_master_2, r=kennytm
Browse files Browse the repository at this point in the history
vxWorks: implement get_path() and get_mode() for File fmt::Debug
  • Loading branch information
Centril authored Oct 13, 2019
2 parents 7c20a8d + 6afc509 commit 2a9c791
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions src/libstd/sys/vxworks/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -400,13 +400,27 @@ impl FromInner<c_int> for File {

impl fmt::Debug for File {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fn get_path(_fd: c_int) -> Option<PathBuf> {
// FIXME(#:(): implement this for VxWorks
None
fn get_path(fd: c_int) -> Option<PathBuf> {
let mut buf = vec![0;libc::PATH_MAX as usize];
let n = unsafe { libc::ioctl(fd, libc::FIOGETNAME, buf.as_ptr()) };
if n == -1 {
return None;
}
let l = buf.iter().position(|&c| c == 0).unwrap();
buf.truncate(l as usize);
Some(PathBuf::from(OsString::from_vec(buf)))
}
fn get_mode(_fd: c_int) -> Option<(bool, bool)> {
// FIXME(#:(): implement this for VxWorks
None
fn get_mode(fd: c_int) -> Option<(bool, bool)> {
let mode = unsafe { libc::fcntl(fd, libc::F_GETFL) };
if mode == -1 {
return None;
}
match mode & libc::O_ACCMODE {
libc::O_RDONLY => Some((true, false)),
libc::O_RDWR => Some((true, true)),
libc::O_WRONLY => Some((false, true)),
_ => None
}
}

let fd = self.0.raw();
Expand Down

0 comments on commit 2a9c791

Please sign in to comment.