@@ -9,13 +9,6 @@ import (
9
9
"unsafe"
10
10
)
11
11
12
- const (
13
- _CTRL_KERN = 1
14
- _KERN_PROC = 14
15
- _KERN_PROC_ALL = 0
16
- _KINFO_STRUCT_SIZE = 648
17
- )
18
-
19
12
type DarwinProcess struct {
20
13
pid int
21
14
ppid int
@@ -34,16 +27,6 @@ func (p *DarwinProcess) Executable() string {
34
27
return p .binary
35
28
}
36
29
37
- type kinfoProc struct {
38
- _ [40 ]byte
39
- Pid int32
40
- _ [199 ]byte
41
- Comm [16 ]byte
42
- _ [301 ]byte
43
- PPid int32
44
- _ [84 ]byte
45
- }
46
-
47
30
func findProcess (pid int ) (Process , error ) {
48
31
ps , err := processes ()
49
32
if err != nil {
@@ -60,7 +43,6 @@ func findProcess(pid int) (Process, error) {
60
43
}
61
44
62
45
func processes () ([]Process , error ) {
63
-
64
46
buf , err := darwinSyscall ()
65
47
if err != nil {
66
48
return nil , err
@@ -74,6 +56,7 @@ func processes() ([]Process, error) {
74
56
if err != nil {
75
57
return nil , err
76
58
}
59
+
77
60
k = i
78
61
procs = append (procs , proc )
79
62
}
@@ -91,7 +74,6 @@ func processes() ([]Process, error) {
91
74
}
92
75
93
76
func darwinCstring (s [16 ]byte ) string {
94
-
95
77
i := 0
96
78
for _ , b := range s {
97
79
if b != 0 {
@@ -104,8 +86,7 @@ func darwinCstring(s [16]byte) string {
104
86
return string (s [:i ])
105
87
}
106
88
107
- func darwinSyscall () (buf * bytes.Buffer , err error ) {
108
-
89
+ func darwinSyscall () (* bytes.Buffer , error ) {
109
90
mib := [4 ]int32 {_CTRL_KERN , _KERN_PROC , _KERN_PROC_ALL , 0 }
110
91
size := uintptr (0 )
111
92
@@ -119,8 +100,7 @@ func darwinSyscall() (buf *bytes.Buffer, err error) {
119
100
0 )
120
101
121
102
if errno != 0 {
122
- err = errno
123
- return
103
+ return nil , errno
124
104
}
125
105
126
106
bs := make ([]byte , size )
@@ -134,10 +114,25 @@ func darwinSyscall() (buf *bytes.Buffer, err error) {
134
114
0 )
135
115
136
116
if errno != 0 {
137
- err = errno
138
- return
117
+ return nil , errno
139
118
}
140
119
141
- buf = bytes .NewBuffer (bs [0 :size ])
142
- return
120
+ return bytes .NewBuffer (bs [0 :size ]), nil
121
+ }
122
+
123
+ const (
124
+ _CTRL_KERN = 1
125
+ _KERN_PROC = 14
126
+ _KERN_PROC_ALL = 0
127
+ _KINFO_STRUCT_SIZE = 648
128
+ )
129
+
130
+ type kinfoProc struct {
131
+ _ [40 ]byte
132
+ Pid int32
133
+ _ [199 ]byte
134
+ Comm [16 ]byte
135
+ _ [301 ]byte
136
+ PPid int32
137
+ _ [84 ]byte
143
138
}
0 commit comments