// Copyright 2017 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// +build darwin dragonfly freebsd netbsd openbsdpackagesocketimport"unsafe"func(h*msghdr)pack(vs[]iovec,bs[][]byte,oob[]byte,sa[]byte){fori:=rangevs{vs[i].set(bs[i])}h.setIov(vs)iflen(oob)>0{h.Control=(*byte)(unsafe.Pointer(&oob[0]))h.Controllen=uint32(len(oob))}ifsa!=nil{h.Name=(*byte)(unsafe.Pointer(&sa[0]))h.Namelen=uint32(len(sa))}}func(h*msghdr)name()[]byte{ifh.Name!=nil&&h.Namelen>0{return(*[sizeofSockaddrInet6]byte)(unsafe.Pointer(h.Name))[:h.Namelen]}returnnil}func(h*msghdr)controllen()int{returnint(h.Controllen)}func(h*msghdr)flags()int{returnint(h.Flags)}