summaryrefslogtreecommitdiff
path: root/vendor/github.com/power-devops/perfstat/uptime.go
blob: 860878747969d8291d9ce421ac84c01b813411c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//go:build aix
// +build aix

package perfstat

/*
#include "c_helpers.h"
*/
import "C"

import (
	"fmt"
	"time"
)

func timeSince(ts uint64) uint64 {
	return uint64(time.Now().Unix()) - ts
}

// BootTime() returns the time of the last boot in UNIX seconds
func BootTime() (uint64, error) {
	sec := C.boottime()
	if sec == -1 {
		return 0, fmt.Errorf("Can't determine boot time")
	}
	return uint64(sec), nil
}

// UptimeSeconds() calculates uptime in seconds
func UptimeSeconds() (uint64, error) {
	boot, err := BootTime()
	if err != nil {
		return 0, err
	}
	return timeSince(boot), nil
}