X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fplibc.h;h=9c1d954e9cd833c125f407527e47196bddbb888b;hb=a67bd3630046d3a52195a13cbd4b4631c283d68d;hp=842edb66c996e879cfc5ad7cfb279ad596a36a28;hpb=946de21c805f2684d27ea7a4d7b6ae5a6337f925;p=oweals%2Fgnunet.git diff --git a/src/include/plibc.h b/src/include/plibc.h index 842edb66c..9c1d954e9 100644 --- a/src/include/plibc.h +++ b/src/include/plibc.h @@ -1,6 +1,6 @@ /* This file is part of PlibC. - (C) 2005, 2006, 2007, 2008, 2009, 2010 Nils Durner (and other contributing authors) + Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Nils Durner (and other contributing authors) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -14,15 +14,17 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** - * @file include/plibc.h - * @brief PlibC header + * @file + * PlibC header + * * @attention This file is usually not installed under Unix, * so ship it with your application - * @version $Revision: 149 $ + * + * @version $Revision: 158 $ */ #ifndef _PLIBC_H_ @@ -70,8 +72,8 @@ extern "C" { /* Convert LARGE_INTEGER to double */ #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + \ (double)((x).LowPart)) -#ifndef __MINGW64_VERSION_MAJOR -struct stat64 +#ifndef HAVE_DECL__STATI64 +struct _stati64 { _dev_t st_dev; _ino_t st_ino; @@ -81,9 +83,9 @@ struct stat64 short st_gid; _dev_t st_rdev; __int64 st_size; - __time64_t st_atime; - __time64_t st_mtime; - __time64_t st_ctime; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; }; #endif typedef unsigned int sa_family_t; @@ -364,7 +366,7 @@ enum /* Make sure it's the same as WSATIMEDOUT */ # define ETIMEDOUT 138 /* Connection timed out */ #endif -#if !defined(EWOULDBLOCK) || EWOULBLOCK == 140 +#if !defined(EWOULDBLOCK) || EWOULDBLOCK == 140 # undef EWOULDBLOCK /* MinGW-w64 defines it as 140, but we want it as EAGAIN */ # define EWOULDBLOCK EAGAIN /* Operation would block */ #endif @@ -403,49 +405,6 @@ struct statfs long f_namelen; /* maximum length of filenames */ long f_spare[6]; /* spare for later */ }; - -/* Taken from the Wine project - /wine/include/winternl.h */ -enum SYSTEM_INFORMATION_CLASS -{ - SystemBasicInformation = 0, - Unknown1, - SystemPerformanceInformation = 2, - SystemTimeOfDayInformation = 3, /* was SystemTimeInformation */ - Unknown4, - SystemProcessInformation = 5, - Unknown6, - Unknown7, - SystemProcessorPerformanceInformation = 8, - Unknown9, - Unknown10, - SystemDriverInformation, - Unknown12, - Unknown13, - Unknown14, - Unknown15, - SystemHandleList, - Unknown17, - Unknown18, - Unknown19, - Unknown20, - SystemCacheInformation, - Unknown22, - SystemInterruptInformation = 23, - SystemExceptionInformation = 33, - SystemRegistryQuotaInformation = 37, - SystemLookasideInformation = 45 -}; - -typedef struct -{ - LARGE_INTEGER IdleTime; - LARGE_INTEGER KernelTime; - LARGE_INTEGER UserTime; - LARGE_INTEGER Reserved1[2]; - ULONG Reserved2; -} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; - #define sleep(secs) (Sleep(secs * 1000)) /*********************** statfs *****************************/ @@ -468,17 +427,39 @@ typedef struct #define LOCK_UN 8 /* remove lock */ /* Not supported under MinGW */ +#ifndef S_IRGRP #define S_IRGRP 0 +#endif +#ifndef S_IWGRP #define S_IWGRP 0 +#endif +#ifndef S_IROTH #define S_IROTH 0 +#endif +#ifndef S_IXGRP #define S_IXGRP 0 +#endif +#ifndef S_IWOTH #define S_IWOTH 0 +#endif +#ifndef S_IXOTH #define S_IXOTH 0 +#endif +#ifndef S_ISUID #define S_ISUID 0 +#endif +#ifndef S_ISGID #define S_ISGID 0 +#endif +#ifndef S_ISVTX #define S_ISVTX 0 +#endif +#ifndef S_IRWXG #define S_IRWXG 0 +#endif +#ifndef S_IRWXO #define S_IRWXO 0 +#endif #define SHUT_WR SD_SEND #define SHUT_RD SD_RECEIVE @@ -517,6 +498,8 @@ unsigned plibc_get_handle_count(); typedef void (*TPanicProc) (int, char *); void plibc_set_panic_proc(TPanicProc proc); +void plibc_set_stat_size_size(int iLength); +void plibc_set_stat_time_size(int iLength); int flock(int fd, int operation); int fsync(int fildes); @@ -558,12 +541,12 @@ int _win_close(int fd); int _win_creat(const char *path, mode_t mode); char *_win_ctime(const time_t *clock); char *_win_ctime_r(const time_t *clock, char *buf); -int _win_fstat(int handle, struct _stat *buffer); +int _win_fstat(int handle, struct stat *buffer); int _win_ftruncate(int fildes, off_t length); int _win_truncate(const char *fname, int distance); int _win_kill(pid_t pid, int sig); int _win_pipe(int *phandles); -intptr_t _win_mkfifo(const char *path, mode_t mode); +int _win_mkfifo(const char *path, mode_t mode); int _win_rmdir(const char *path); int _win_access( const char *path, int mode ); int _win_chmod(const char *filename, int pmode); @@ -572,8 +555,8 @@ long _win_random(void); void _win_srandom(unsigned int seed); int _win_remove(const char *path); int _win_rename(const char *oldname, const char *newname); -int _win_stat(const char *path, struct _stat *buffer); -int _win_stat64(const char *path, struct stat64 *buffer); +int _win_stat(const char *path, struct stat *buffer); +int _win_stati64(const char *path, struct _stati64 *buffer); long _win_sysconf(int name); int _win_unlink(const char *filename); int _win_write(int fildes, const void *buf, size_t nbyte); @@ -585,8 +568,8 @@ void *_win_mmap(void *start, size_t len, int access, int flags, int fd, unsigned long long offset); int _win_msync(void *start, size_t length, int flags); int _win_munmap(void *start, size_t length); -int _win_lstat(const char *path, struct _stat *buf); -int _win_lstat64(const char *path, struct stat64 *buf); +int _win_lstat(const char *path, struct stat *buf); +int _win_lstati64(const char *path, struct _stati64 *buf); int _win_readlink(const char *path, char *buf, size_t bufsize); int _win_accept(int s, struct sockaddr *addr, int *addrlen); @@ -745,6 +728,7 @@ char *strcasestr(const char *haystack_start, const char *needle_start); #define TDESTROY(r, f) tdestroy(r, f) #define LFIND(k, b, n, s, c) lfind(k, b, n, s, c) #define LSEARCH(k, b, n, s, c) lsearch(k, b, n, s, c) + #define STRUCT_STAT64 struct stat64 #else #define DIR_SEPARATOR '\\' #define DIR_SEPARATOR_STR "\\" @@ -780,7 +764,7 @@ char *strcasestr(const char *haystack_start, const char *needle_start); #define REMOVE(p) _win_remove(p) #define RENAME(o, n) _win_rename(o, n) #define STAT(p, b) _win_stat(p, b) - #define STAT64(p, b) _win_stat64(p, b) + #define STAT64(p, b) _win_stati64(p, b) #define SYSCONF(n) _win_sysconf(n) #define UNLINK(f) _win_unlink(f) #define WRITE(f, b, n) _win_write(f, b, n) @@ -795,7 +779,7 @@ char *strcasestr(const char *haystack_start, const char *needle_start); #define STRERROR(i) _win_strerror(i) #define READLINK(p, b, s) _win_readlink(p, b, s) #define LSTAT(p, b) _win_lstat(p, b) - #define LSTAT64(p, b) _win_lstat64(p, b) + #define LSTAT64(p, b) _win_lstati64(p, b) #define PRINTF printf #define FPRINTF fprintf #define VPRINTF(f, a) vprintf(f, a) @@ -845,6 +829,7 @@ char *strcasestr(const char *haystack_start, const char *needle_start); #define TDESTROY(r, f) _win_tdestroy(r, f) #define LFIND(k, b, n, s, c) _win_lfind(k, b, n, s, c) #define LSEARCH(k, b, n, s, c) _win_lsearch(k, b, n, s, c) + #define STRUCT_STAT64 struct _stati64 #endif /* search.h */