Home | History | Annotate | Line # | Download | only in libarchive
      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