// Copyright 2018 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 linux// +build !appenginepackagefastwalkimport("bytes""syscall""unsafe")funcdirentNamlen(dirent*syscall.Dirent)uint64{constfixedHdr=uint16(unsafe.Offsetof(syscall.Dirent{}.Name))nameBuf:=(*[unsafe.Sizeof(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]))constnameBufLen=uint16(len(nameBuf))limit:=dirent.Reclen-fixedHdriflimit>nameBufLen{limit=nameBufLen}nameLen:=bytes.IndexByte(nameBuf[:limit],0)ifnameLen<0{panic("failed to find terminating 0 byte in dirent")}returnuint64(nameLen)}