You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: xattrs_darwin.go
    path of file: ./repos/podman/vendor/github.com/containers/storage/pkg/system
    
    the code of the file until where you have to start completion: package system

import (
	"bytes"
	"os"

	"golang.org/x/sys/unix"
)

const (
	// Value is larger than the maximum size allowed
	E2BIG unix.Errno = unix.E2BIG

	// Operation not supported
	EOPNOTSUPP unix.Errno = unix.EOPNOTSUPP
)

// Lgetxattr retrieves the value of the extended attribute identified by attr
// and associated with the given path in the file system.
// Returns a []byte slice if the xattr is set and nil otherwise.
func Lgetxattr(path string, attr string) ([]byte, error) {
	// Start with a 128 length byte array
	dest := ma
    
func Llistxattr(path string) ([]string, error) {
	dest := make([]byte, 128)
	sz, errno := unix.Llistxattr(path, dest)

	for errno == unix.ERANGE {
		// Buffer too small, use zero-sized buffer to get the actual size
		sz, errno = unix.Llistxattr(path, []byte{})
		if errno != nil {
			return nil, &os.PathError{Op: "llistxattr", Path: path, Err: errno}
		}

		dest = make([]byte, sz)
		sz, errno = unix.Llistxattr(path, dest)
	}
	if errno != nil {
		return nil, &os.PathError{Op: "llistxattr", Path: path, Err: errno}
	}

	var attrs []string
	for _, token := range bytes.Split(dest[:sz], []byte{0}) {
		if len(token) > 0 {
			attrs = append(attrs, string(token))
		}
	}

	return attrs, nil
}