Home | History | Annotate | Download | only in syscall
      1 // Copyright 2014 The Go Authors.  All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package syscall
      6 
      7 type Timespec struct {
      8 	Sec  int64
      9 	Nsec int32
     10 }
     11 
     12 type Timeval struct {
     13 	Sec  int64
     14 	Usec int32
     15 }
     16 
     17 func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
     18 
     19 func NsecToTimespec(nsec int64) (ts Timespec) {
     20 	ts.Sec = int64(nsec / 1e9)
     21 	ts.Nsec = int32(nsec % 1e9)
     22 	return
     23 }
     24 
     25 func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
     26 
     27 func NsecToTimeval(nsec int64) (tv Timeval) {
     28 	nsec += 999 // round up to microsecond
     29 	tv.Usec = int32(nsec % 1e9 / 1e3)
     30 	tv.Sec = int64(nsec / 1e9)
     31 	return
     32 }
     33