|  | // Copyright 2009 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 hurd linux | 
|  |  | 
|  | package syscall | 
|  |  | 
|  | import "unsafe" | 
|  |  | 
|  | func rawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { | 
|  | r1, r2, _ = RawSyscall(trap, a1, a2, a3) | 
|  | return | 
|  | } | 
|  |  | 
|  | func direntIno(buf []byte) (uint64, bool) { | 
|  | return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) | 
|  | } | 
|  |  | 
|  | func direntReclen(buf []byte) (uint64, bool) { | 
|  | return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) | 
|  | } | 
|  |  | 
|  | func direntNamlen(buf []byte) (uint64, bool) { | 
|  | reclen, ok := direntReclen(buf) | 
|  | if !ok { | 
|  | return 0, false | 
|  | } | 
|  | return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true | 
|  | } |