Copyright 2019 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 aix darwin freebsd linux netbsd openbsd solaris

package unix

import (
	
)
Round the length of a raw sockaddr up to align it properly.
func ( int) int {
	 := SizeofPtr
dragonfly needs to check ABI version at runtime, see cmsgAlignOf in sockcmsg_dragonfly.go
	switch runtime.GOOS {
There is no alignment on AIX.
		 = 1
NOTE: It seems like 64-bit Darwin, Illumos and Solaris kernels still require 32-bit aligned access to network subsystem.
		if SizeofPtr == 8 {
			 = 4
		}
NetBSD and OpenBSD armv7 require 64-bit alignment.
		if runtime.GOARCH == "arm" {
			 = 8
NetBSD aarch64 requires 128-bit alignment.
		if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" {
			 = 16
		}
	}

	return ( +  - 1) & ^( - 1)