135ea84adSSiva Chandra Reddy //===-- Implementation of dirfd -------------------------------------------===// 235ea84adSSiva Chandra Reddy // 335ea84adSSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 435ea84adSSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 535ea84adSSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 635ea84adSSiva Chandra Reddy // 735ea84adSSiva Chandra Reddy //===----------------------------------------------------------------------===// 835ea84adSSiva Chandra Reddy 935ea84adSSiva Chandra Reddy #include "dirfd.h" 1035ea84adSSiva Chandra Reddy 1135ea84adSSiva Chandra Reddy #include "src/__support/File/dir.h" 1235ea84adSSiva Chandra Reddy #include "src/__support/common.h" 13*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 1435ea84adSSiva Chandra Reddy 1535ea84adSSiva Chandra Reddy #include <dirent.h> 1635ea84adSSiva Chandra Reddy 17*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 1835ea84adSSiva Chandra Reddy 1935ea84adSSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, dirfd, (::DIR * dir)) { 20b6bc9d72SGuillaume Chatelet auto *d = reinterpret_cast<LIBC_NAMESPACE::Dir *>(dir); 2135ea84adSSiva Chandra Reddy return d->getfd(); 2235ea84adSSiva Chandra Reddy } 2335ea84adSSiva Chandra Reddy 24*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 25