-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathprocess_dragonfly.go
101 lines (93 loc) · 1.75 KB
/
process_dragonfly.go
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// Copyright 2021 Tobias Klauser. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package ps
import (
"unsafe"
"golang.org/x/sys/unix"
)
type kinfoProc struct {
Paddr uint64
Flags int32
Stat uint32
Lock int32
Acflag int32
Traceflag int32
Fd uint64
Siglist sigset_t
Sigignore sigset_t
Sigcatch sigset_t
Sigflag int32
Start unix.Timeval
Comm [17]byte
Uid uint32
Ngroups int16
Groups [16]uint32
Ruid uint32
Svuid uint32
Rgid uint32
Svgid uint32
Pid int32
Ppid int32
Pgid int32
Jobc int32
Sid int32
Login [40]byte
Tdev uint32
Tpgid int32
Tsid int32
Exitstat uint16
Nthreads int32
Nice int32
Swtime uint32
Vm_map_size uint64
Vm_rssize int64
Vm_swrss int64
Vm_tsize int64
Vm_dsize int64
Vm_ssize int64
Vm_prssize uint32
Jailid int32
Ru unix.Rusage
Cru unix.Rusage
Auxflags int32
Lwp kinfoLwp
Ktaddr uint64
Spare [2]int32
}
const sizeofKinfoProc = int(unsafe.Sizeof(kinfoProc{}))
type kinfoLwp struct {
Pid int32
Tid int32
Flags int32
Stat uint32
Lock int32
Tdflags int32
Mpcount int32
Prio int32
Tdprio int32
Rtprio rtprio
Uticks uint64
Sticks uint64
Iticks uint64
Cpticks uint64
Pctcpu uint32
Slptime uint32
Origcpu int32
Estcpu int32
Cpuid int32
Ru unix.Rusage
Siglist sigset_t
Sigmask sigset_t
Wchan uint64
Wmesg [9]int8
Comm [17]int8
_ [6]byte
}
type rtprio struct {
Type uint16
Prio uint16
}
type sigset_t struct {
Val [4]uint32
}