@@ -857,6 +857,7 @@ impl Drop for Dir {
857
857
target_os = "espidf" ,
858
858
target_os = "fuchsia" ,
859
859
target_os = "horizon" ,
860
+ target_os = "vxworks" ,
860
861
) ) ) ]
861
862
{
862
863
let fd = unsafe { libc:: dirfd ( self . 0 ) } ;
@@ -1313,7 +1314,12 @@ impl File {
1313
1314
}
1314
1315
1315
1316
pub fn set_times ( & self , times : FileTimes ) -> io:: Result < ( ) > {
1316
- #[ cfg( not( any( target_os = "redox" , target_os = "espidf" , target_os = "horizon" ) ) ) ]
1317
+ #[ cfg( not( any(
1318
+ target_os = "redox" ,
1319
+ target_os = "espidf" ,
1320
+ target_os = "horizon" ,
1321
+ target_os = "vxworks"
1322
+ ) ) ) ]
1317
1323
let to_timespec = |time : Option < SystemTime > | match time {
1318
1324
Some ( time) if let Some ( ts) = time. t . to_timespec ( ) => Ok ( ts) ,
1319
1325
Some ( time) if time > crate :: sys:: time:: UNIX_EPOCH => Err ( io:: const_io_error!(
@@ -1327,10 +1333,11 @@ impl File {
1327
1333
None => Ok ( libc:: timespec { tv_sec : 0 , tv_nsec : libc:: UTIME_OMIT as _ } ) ,
1328
1334
} ;
1329
1335
cfg_if:: cfg_if! {
1330
- if #[ cfg( any( target_os = "redox" , target_os = "espidf" , target_os = "horizon" ) ) ] {
1336
+ if #[ cfg( any( target_os = "redox" , target_os = "espidf" , target_os = "horizon" , target_os = "vxworks" ) ) ] {
1331
1337
// Redox doesn't appear to support `UTIME_OMIT`.
1332
1338
// ESP-IDF and HorizonOS do not support `futimens` at all and the behavior for those OS is therefore
1333
1339
// the same as for Redox.
1340
+ // `futimens` and `UTIME_OMIT` are a work in progress for vxworks.
1334
1341
let _ = times;
1335
1342
Err ( io:: const_io_error!(
1336
1343
io:: ErrorKind :: Unsupported ,
@@ -1962,13 +1969,20 @@ pub fn fchown(fd: c_int, uid: u32, gid: u32) -> io::Result<()> {
1962
1969
Ok ( ( ) )
1963
1970
}
1964
1971
1972
+ #[ cfg( not( target_os = "vxworks" ) ) ]
1965
1973
pub fn lchown ( path : & Path , uid : u32 , gid : u32 ) -> io:: Result < ( ) > {
1966
1974
run_path_with_cstr ( path, & |path| {
1967
1975
cvt ( unsafe { libc:: lchown ( path. as_ptr ( ) , uid as libc:: uid_t , gid as libc:: gid_t ) } )
1968
1976
. map ( |_| ( ) )
1969
1977
} )
1970
1978
}
1971
1979
1980
+ #[ cfg( target_os = "vxworks" ) ]
1981
+ pub fn lchown ( path : & Path , uid : u32 , gid : u32 ) -> io:: Result < ( ) > {
1982
+ let ( _, _, _) = ( path, uid, gid) ;
1983
+ Err ( io:: const_io_error!( io:: ErrorKind :: Unsupported , "lchown not supported by vxworks" , ) )
1984
+ }
1985
+
1972
1986
#[ cfg( not( any( target_os = "fuchsia" , target_os = "vxworks" ) ) ) ]
1973
1987
pub fn chroot ( dir : & Path ) -> io:: Result < ( ) > {
1974
1988
run_path_with_cstr ( dir, & |dir| cvt ( unsafe { libc:: chroot ( dir. as_ptr ( ) ) } ) . map ( |_| ( ) ) )
0 commit comments