@@ -28,14 +28,14 @@ use crate::{
2828 memory:: VirtualMemory ,
2929 syscall:: {
3030 args:: {
31- CmsgHdr , ControlMode , Domain , FdNum , FileMode , Flock , FlockType , FlockWhence ,
32- ITimerspec , ITimerval , InputMode , Iovec , IpMreq , IpMreqn , Ipv6Mreq , Linger ,
33- LinuxDirent64 , LocalMode , LongOffset , MMsgHdr , MsgHdr , MsgHdrFlags , Offset ,
31+ Clock , CmsgHdr , ControlMode , Domain , FdNum , FileMode , Flock , FlockType ,
32+ FlockWhence , ITimerspec , ITimerval , InputMode , Iovec , IpMreq , IpMreqn , Ipv6Mreq ,
33+ Linger , LinuxDirent64 , LocalMode , LongOffset , MMsgHdr , MsgHdr , MsgHdrFlags , Offset ,
3434 OpenFlags , OpenHow , OutputMode , PSelectSigsetArg , PktInfo , PktInfo6 , Pointer ,
3535 PtraceSyscallInfo , PtraceSyscallInfoValue , RLimit , ResolveFlags , Rusage ,
3636 SchedParam , SemInfo , SigEvent , SigEventData , SocketAddr , SocketAddrNetlink ,
3737 SocketAddrUnix , Stat , SysInfo , Termios , Time , TimerId , Timespec , Timeval , Timezone ,
38- Ucred , UserCapData , UserCapHeader , UserRegs32 , UserRegs64 , WStatus , WinSize ,
38+ Tms , Ucred , UserCapData , UserCapHeader , UserRegs32 , UserRegs64 , WStatus , WinSize ,
3939 } ,
4040 traits:: Abi ,
4141 } ,
@@ -3262,3 +3262,83 @@ impl From<PtraceSyscallInfo> for RawPtraceSyscallInfo {
32623262
32633263impl Pointee for SemInfo { }
32643264impl PrimitivePointee for SemInfo { }
3265+
3266+ impl Pointee for Clock { }
3267+ impl AbiDependentPointee for Clock {
3268+ type I386 = Clock32 ;
3269+ type Amd64 = Clock64 ;
3270+ }
3271+
3272+ #[ derive( Debug , Clone , Copy , Pod , Zeroable ) ]
3273+ #[ repr( transparent) ]
3274+ pub struct Clock32 ( u32 ) ;
3275+
3276+ #[ derive( Debug , Clone , Copy , Pod , Zeroable ) ]
3277+ #[ repr( transparent) ]
3278+ pub struct Clock64 ( u64 ) ;
3279+
3280+ impl From < Clock > for Clock32 {
3281+ fn from ( value : Clock ) -> Self {
3282+ Self ( value. 0 as u32 )
3283+ }
3284+ }
3285+
3286+ impl From < Clock > for Clock64 {
3287+ fn from ( value : Clock ) -> Self {
3288+ Self ( value. 0 )
3289+ }
3290+ }
3291+
3292+ impl Pointee for Tms { }
3293+ impl AbiDependentPointee for Tms {
3294+ type I386 = Tms32 ;
3295+ type Amd64 = Tms64 ;
3296+ }
3297+
3298+ #[ derive( Debug , Clone , Copy , Pod , Zeroable ) ]
3299+ #[ repr( C ) ]
3300+ pub struct Tms32 {
3301+ /// user time
3302+ pub utime : Clock32 ,
3303+ /// system time
3304+ pub stime : Clock32 ,
3305+ /// user time of children
3306+ pub cutime : Clock32 ,
3307+ /// system time of children
3308+ pub cstime : Clock32 ,
3309+ }
3310+
3311+ #[ derive( Debug , Clone , Copy , Pod , Zeroable ) ]
3312+ #[ repr( C ) ]
3313+ pub struct Tms64 {
3314+ /// user time
3315+ pub utime : Clock64 ,
3316+ /// system time
3317+ pub stime : Clock64 ,
3318+ /// user time of children
3319+ pub cutime : Clock64 ,
3320+ /// system time of children
3321+ pub cstime : Clock64 ,
3322+ }
3323+
3324+ impl From < Tms > for Tms32 {
3325+ fn from ( value : Tms ) -> Self {
3326+ Self {
3327+ utime : value. utime . into ( ) ,
3328+ stime : value. stime . into ( ) ,
3329+ cutime : value. cutime . into ( ) ,
3330+ cstime : value. cstime . into ( ) ,
3331+ }
3332+ }
3333+ }
3334+
3335+ impl From < Tms > for Tms64 {
3336+ fn from ( value : Tms ) -> Self {
3337+ Self {
3338+ utime : value. utime . into ( ) ,
3339+ stime : value. stime . into ( ) ,
3340+ cutime : value. cutime . into ( ) ,
3341+ cstime : value. cstime . into ( ) ,
3342+ }
3343+ }
3344+ }
0 commit comments