/* 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 #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 */ }