![]() |
|
|||
File indexing completed on 2025-05-11 08:24:15
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /** 0004 * @file 0005 * 0006 * @brief Get File Status 0007 * @ingroup libcsupport 0008 */ 0009 0010 /* 0011 * COPYRIGHT (c) 1989-2013. 0012 * On-Line Applications Research Corporation (OAR). 0013 * 0014 * Redistribution and use in source and binary forms, with or without 0015 * modification, are permitted provided that the following conditions 0016 * are met: 0017 * 1. Redistributions of source code must retain the above copyright 0018 * notice, this list of conditions and the following disclaimer. 0019 * 2. Redistributions in binary form must reproduce the above copyright 0020 * notice, this list of conditions and the following disclaimer in the 0021 * documentation and/or other materials provided with the distribution. 0022 * 0023 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0024 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0025 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0026 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0027 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0028 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0029 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0030 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0031 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0032 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0033 * POSSIBILITY OF SUCH DAMAGE. 0034 */ 0035 0036 #ifdef HAVE_CONFIG_H 0037 #include "config.h" 0038 #endif 0039 0040 /* 0041 * lstat() and stat() share the same implementation with a minor 0042 * difference on how links are evaluated. 0043 */ 0044 0045 #ifndef _STAT_NAME 0046 #define _STAT_NAME stat 0047 #define _STAT_R_NAME _stat_r 0048 #define _STAT_FOLLOW_LINKS RTEMS_FS_FOLLOW_LINK 0049 #endif 0050 0051 #include <sys/stat.h> 0052 #include <string.h> 0053 0054 #include <rtems/libio_.h> 0055 0056 /* 0057 * Prototype to avoid warnings 0058 */ 0059 int _STAT_NAME( const char *path, struct stat *buf ); 0060 0061 /** 0062 * POSIX 1003.1b 5.6.2 - Get File Status 0063 * 0064 * Reused from lstat(). 0065 */ 0066 int _STAT_NAME( const char *path, struct stat *buf ) 0067 { 0068 int rv = 0; 0069 rtems_filesystem_eval_path_context_t ctx; 0070 int eval_flags = _STAT_FOLLOW_LINKS; 0071 const rtems_filesystem_location_info_t *currentloc = 0072 rtems_filesystem_eval_path_start( &ctx, path, eval_flags ); 0073 0074 memset( buf, 0, sizeof( *buf ) ); 0075 0076 rv = (*currentloc->handlers->fstat_h)( currentloc, buf ); 0077 0078 rtems_filesystem_eval_path_cleanup( &ctx ); 0079 0080 return rv; 0081 } 0082 0083 #if defined(RTEMS_NEWLIB) 0084 0085 #include <reent.h> 0086 0087 /* 0088 * Prototype to avoid warnings 0089 */ 0090 int _STAT_R_NAME( 0091 struct _reent *ptr RTEMS_UNUSED, 0092 const char *path, 0093 struct stat *buf 0094 ); 0095 0096 /** 0097 * This is the Newlib dependent reentrant version of stat() and lstat(). 0098 */ 0099 int _STAT_R_NAME( 0100 struct _reent *ptr RTEMS_UNUSED, 0101 const char *path, 0102 struct stat *buf 0103 ) 0104 { 0105 return _STAT_NAME( path, buf ); 0106 } 0107 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |