12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* Copyright 2020 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. */
- #include <dirent.h>
- #include "runtime.h"
- unsigned char direntType (struct dirent *)
- __asm__ (GOSYM_PREFIX "os.direntType");
- unsigned char
- direntType (struct dirent *p __attribute__((unused)))
- {
- #ifndef HAVE_STRUCT_DIRENT_D_TYPE
- return 'U';
- #else
- switch (p->d_type)
- {
- #ifdef DT_BLK
- case DT_BLK:
- return 'B';
- #endif
- #ifdef DT_CHR
- case DT_CHR:
- return 'C';
- #endif
- #ifdef DT_DBF
- case DT_DBF:
- // Database record file.
- // Treat as regular file.
- return 'R';
- #endif
- #ifdef DT_DIR
- case DT_DIR:
- return 'D';
- #endif
- #ifdef DT_FIFO
- case DT_FIFO:
- return 'F';
- #endif
- #ifdef DT_LNK
- case DT_LNK:
- return 'L';
- #endif
- #ifdef DT_REG
- case DT_REG:
- return 'R';
- #endif
- #ifdef DT_SOCK
- case DT_SOCK:
- return 'S';
- #endif
- default:
- return 'U';
- }
- #endif /* HAVE_DIRENT_D_TYPE */
- }
|