1 /*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2025 Tobias Stoeckmann 5 * All rights reserved. 6 */ 7 8 /* !!ONLY FOR USE INTERNALLY TO LIBARCHIVE!! */ 9 10 #ifndef ARCHIVE_PLATFORM_STAT_H_INCLUDED 11 #define ARCHIVE_PLATFORM_STAT_H_INCLUDED 12 13 #ifndef __LIBARCHIVE_BUILD 14 #error This header is only to be used internally to libarchive. 15 #endif 16 17 #if defined(_WIN32) && !defined(__CYGWIN__) 18 /* We use _lseeki64() on Windows. */ 19 typedef int64_t la_seek_t; 20 21 struct la_seek_stat { 22 int64_t st_mtime; 23 ino_t st_ino; 24 unsigned short st_mode; 25 uint32_t st_nlink; 26 gid_t st_gid; 27 la_seek_t st_size; 28 uid_t st_uid; 29 dev_t st_dev; 30 dev_t st_rdev; 31 }; 32 typedef struct la_seek_stat la_seek_stat_t; 33 34 #define la_seek_fstat(fd, st) __la_seek_fstat((fd), (st)) 35 #define la_seek_stat(fd, st) __la_seek_stat((fd), (st)) 36 37 #else 38 typedef off_t la_seek_t; 39 typedef struct stat la_seek_stat_t; 40 41 #define la_seek_fstat(fd, st) fstat((fd), (st)) 42 #define la_seek_stat(fd, st) stat((fd), (st)) 43 #endif 44 45 #endif /* !ARCHIVE_PLATFORM_STAT_H_INCLUDED */ 46