1 // Copyright 2009 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 // Hand Writing 6 // - all pointer in ExternProc to uint64 7 8 // +build ignore 9 10 /* 11 Input to cgo -godefs. 12 */ 13 14 // +godefs map struct_in_addr [4]byte /* in_addr */ 15 // +godefs map struct_in6_addr [16]byte /* in6_addr */ 16 // +godefs map struct_ [16]byte /* in6_addr */ 17 18 package process 19 20 /* 21 #define __DARWIN_UNIX03 0 22 #define KERNEL 23 #define _DARWIN_USE_64_BIT_INODE 24 #include <stdint.h> 25 #include <dirent.h> 26 #include <fcntl.h> 27 #include <signal.h> 28 #include <termios.h> 29 #include <unistd.h> 30 #include <mach/mach.h> 31 #include <mach/message.h> 32 #include <sys/event.h> 33 #include <sys/mman.h> 34 #include <sys/mount.h> 35 #include <sys/param.h> 36 #include <sys/ptrace.h> 37 #include <sys/resource.h> 38 #include <sys/select.h> 39 #include <sys/signal.h> 40 #include <sys/socket.h> 41 #include <sys/stat.h> 42 #include <sys/time.h> 43 #include <sys/types.h> 44 #include <sys/uio.h> 45 #include <sys/un.h> 46 #include <net/bpf.h> 47 #include <net/if_dl.h> 48 #include <net/if_var.h> 49 #include <net/route.h> 50 #include <netinet/in.h> 51 52 #include <sys/sysctl.h> 53 #include <sys/ucred.h> 54 #include <sys/proc.h> 55 #include <sys/time.h> 56 #include <sys/_types/_timeval.h> 57 #include <sys/appleapiopts.h> 58 #include <sys/cdefs.h> 59 #include <sys/param.h> 60 #include <bsm/audit.h> 61 #include <sys/queue.h> 62 63 enum { 64 sizeofPtr = sizeof(void*), 65 }; 66 67 union sockaddr_all { 68 struct sockaddr s1; // this one gets used for fields 69 struct sockaddr_in s2; // these pad it out 70 struct sockaddr_in6 s3; 71 struct sockaddr_un s4; 72 struct sockaddr_dl s5; 73 }; 74 75 struct sockaddr_any { 76 struct sockaddr addr; 77 char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; 78 }; 79 80 struct ucred_queue { 81 struct ucred *tqe_next; 82 struct ucred **tqe_prev; 83 TRACEBUF 84 }; 85 86 */ 87 import "C" 88 89 // Machine characteristics; for internal use. 90 91 const ( 92 sizeofPtr = C.sizeofPtr 93 sizeofShort = C.sizeof_short 94 sizeofInt = C.sizeof_int 95 sizeofLong = C.sizeof_long 96 sizeofLongLong = C.sizeof_longlong 97 ) 98 99 // Basic types 100 101 type ( 102 _C_short C.short 103 _C_int C.int 104 _C_long C.long 105 _C_long_long C.longlong 106 ) 107 108 // Time 109 110 type Timespec C.struct_timespec 111 112 type Timeval C.struct_timeval 113 114 // Processes 115 116 type Rusage C.struct_rusage 117 118 type Rlimit C.struct_rlimit 119 120 type UGid_t C.gid_t 121 122 type KinfoProc C.struct_kinfo_proc 123 124 type Eproc C.struct_eproc 125 126 type Proc C.struct_proc 127 128 type Session C.struct_session 129 130 type ucred C.struct_ucred 131 132 type Uucred C.struct__ucred 133 134 type Upcred C.struct__pcred 135 136 type Vmspace C.struct_vmspace 137 138 type Sigacts C.struct_sigacts 139 140 type ExternProc C.struct_extern_proc 141 142 type Itimerval C.struct_itimerval 143 144 type Vnode C.struct_vnode 145 146 type Pgrp C.struct_pgrp 147 148 type UserStruct C.struct_user 149 150 type Au_session C.struct_au_session 151 152 type Posix_cred C.struct_posix_cred 153 154 type Label C.struct_label 155 156 type AuditinfoAddr C.struct_auditinfo_addr 157 type AuMask C.struct_au_mask 158 type AuTidAddr C.struct_au_tid_addr 159 160 // TAILQ(ucred) 161 type UcredQueue C.struct_ucred_queue 162