1// +build ignore
2
3// We still need editing by hands.
4// go tool cgo -godefs types_freebsd.go | sed 's/\*int64/int64/' | sed 's/\*byte/int64/'  > process_freebsd_amd64.go
5
6/*
7Input to cgo -godefs.
8*/
9
10// +godefs map struct_pargs int64 /* pargs */
11// +godefs map struct_proc int64 /* proc */
12// +godefs map struct_user int64 /* user */
13// +godefs map struct_vnode int64 /* vnode */
14// +godefs map struct_vnode int64 /* vnode */
15// +godefs map struct_filedesc int64 /* filedesc */
16// +godefs map struct_vmspace int64 /* vmspace */
17// +godefs map struct_pcb int64 /* pcb */
18// +godefs map struct_thread int64 /* thread */
19// +godefs map struct___sigset [16]byte /* sigset */
20
21package process
22
23/*
24#include <sys/types.h>
25#include <sys/user.h>
26
27enum {
28	sizeofPtr = sizeof(void*),
29};
30
31
32*/
33import "C"
34
35// Machine characteristics; for internal use.
36
37const (
38	CTLKern          = 1  // "high kernel": proc, limits
39	KernProc         = 14 // struct: process entries
40	KernProcPID      = 1  // by process id
41	KernProcProc     = 8  // only return procs
42	KernProcPathname = 12 // path to executable
43	KernProcArgs     = 7  // get/set arguments/proctitle
44)
45
46const (
47	sizeofPtr      = C.sizeofPtr
48	sizeofShort    = C.sizeof_short
49	sizeofInt      = C.sizeof_int
50	sizeofLong     = C.sizeof_long
51	sizeofLongLong = C.sizeof_longlong
52)
53
54const (
55	sizeOfKinfoVmentry = C.sizeof_struct_kinfo_vmentry
56	sizeOfKinfoProc    = C.sizeof_struct_kinfo_proc
57)
58
59// from sys/proc.h
60const (
61	SIDL   = 1 /* Process being created by fork. */
62	SRUN   = 2 /* Currently runnable. */
63	SSLEEP = 3 /* Sleeping on an address. */
64	SSTOP  = 4 /* Process debugging or suspension. */
65	SZOMB  = 5 /* Awaiting collection by parent. */
66	SWAIT  = 6 /* Waiting for interrupt. */
67	SLOCK  = 7 /* Blocked on a lock. */
68)
69
70// Basic types
71
72type (
73	_C_short     C.short
74	_C_int       C.int
75	_C_long      C.long
76	_C_long_long C.longlong
77)
78
79// Time
80
81type Timespec C.struct_timespec
82
83type Timeval C.struct_timeval
84
85// Processes
86
87type Rusage C.struct_rusage
88
89type Rlimit C.struct_rlimit
90
91type KinfoProc C.struct_kinfo_proc
92
93type Priority C.struct_priority
94
95type KinfoVmentry C.struct_kinfo_vmentry
96