* Merge in cygwin-64bit-branch.

This commit is contained in:
Corinna Vinschen
2013-04-23 09:44:36 +00:00
parent 1875ee55d3
commit 61522196c7
253 changed files with 10632 additions and 5055 deletions

View File

@@ -1,6 +1,6 @@
/* a.out.h
Copyright 1997, 1998, 1999, 2000, 2001 Red Hat, Inc.
Copyright 1997, 1998, 1999, 2000, 2001, 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -14,22 +14,25 @@ details. */
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#define COFF_IMAGE_WITH_PE
#define COFF_LONG_SECTION_NAMES
/*** coff information for Intel 386/486. */
/*** coff information for Intel 386/486 and AMD64. */
/********************** FILE HEADER **********************/
struct external_filehdr {
short f_magic; /* magic number */
short f_nscns; /* number of sections */
unsigned long f_timdat; /* time & date stamp */
unsigned long f_symptr; /* file pointer to symtab */
unsigned long f_nsyms; /* number of symtab entries */
short f_opthdr; /* sizeof(optional hdr) */
short f_flags; /* flags */
uint16_t f_magic; /* magic number */
uint16_t f_nscns; /* number of sections */
uint32_t f_timdat; /* time & date stamp */
uint32_t f_symptr; /* file pointer to symtab */
uint32_t f_nsyms; /* number of symtab entries */
uint16_t f_opthdr; /* sizeof(optional hdr) */
uint16_t f_flags; /* flags */
};
/* Bits for f_flags:
@@ -50,6 +53,7 @@ struct external_filehdr {
#define I386MAGIC 0x14c
#define I386PTXMAGIC 0x154
#define I386AIXMAGIC 0x175
#define AMD64MAGIC 0x8664
/* This is Lynx's all-platform magic number for executables. */
@@ -70,14 +74,14 @@ struct external_filehdr {
typedef struct
{
unsigned short magic; /* type of file */
unsigned short vstamp; /* version stamp */
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
unsigned long dsize; /* initialized data " " */
unsigned long bsize; /* uninitialized data " " */
unsigned long entry; /* entry pt. */
unsigned long text_start; /* base of text used for this file */
unsigned long data_start; /* base of data used for this file=
uint16_t magic; /* type of file */
uint16_t vstamp; /* version stamp */
uint32_t tsize; /* text size in bytes, padded to FW bdry*/
uint32_t dsize; /* initialized data " " */
uint32_t bsize; /* uninitialized data " " */
uint32_t entry; /* entry pt. */
uint32_t text_start; /* base of text used for this file */
uint32_t data_start; /* base of data used for this file=
*/
}
AOUTHDR;
@@ -103,16 +107,16 @@ AOUTHDR;
struct external_scnhdr {
char s_name[8]; /* section name */
unsigned long s_paddr; /* physical address, offset
uint32_t s_paddr; /* physical address, offset
of last addr in scn */
unsigned long s_vaddr; /* virtual address */
unsigned long s_size; /* section size */
unsigned long s_scnptr; /* file ptr to raw data for section */
unsigned long s_relptr; /* file ptr to relocation */
unsigned long s_lnnoptr; /* file ptr to line numbers */
unsigned short s_nreloc; /* number of relocation entries */
unsigned short s_nlnno; /* number of line number entries*/
unsigned long s_flags; /* flags */
uint32_t s_vaddr; /* virtual address */
uint32_t s_size; /* section size */
uint32_t s_scnptr; /* file ptr to raw data for section */
uint32_t s_relptr; /* file ptr to relocation */
uint32_t s_lnnoptr; /* file ptr to line numbers */
uint16_t s_nreloc; /* number of relocation entries */
uint16_t s_nlnno; /* number of line number entries*/
uint32_t s_flags; /* flags */
};
#define SCNHDR struct external_scnhdr
@@ -136,10 +140,10 @@ struct external_scnhdr {
*/
struct external_lineno {
union {
unsigned long l_symndx; /* function name symbol index, iff l_lnno 0 */
unsigned long l_paddr; /* (physical) address of line number */
uint32_t l_symndx; /* function name symbol index, iff l_lnno 0 */
uint32_t l_paddr; /* (physical) address of line number */
} l_addr;
unsigned short l_lnno; /* line number */
uint16_t l_lnno; /* line number */
};
#define LINENO struct external_lineno
@@ -156,13 +160,13 @@ struct external_syment
union {
char e_name[E_SYMNMLEN];
struct {
unsigned long e_zeroes;
unsigned long e_offset;
uint32_t e_zeroes;
uint32_t e_offset;
} e;
} e;
unsigned long e_value;
unsigned short e_scnum;
unsigned short e_type;
uint32_t e_value;
uint16_t e_scnum;
uint16_t e_type;
char e_sclass[1];
char e_numaux[1];
};
@@ -174,46 +178,46 @@ struct external_syment
union external_auxent {
struct {
unsigned long x_tagndx; /* str, un, or enum tag indx */
uint32_t x_tagndx; /* str, un, or enum tag indx */
union {
struct {
unsigned short x_lnno; /* declaration line number */
unsigned short x_size; /* str/union/array size */
uint16_t x_lnno; /* declaration line number */
uint16_t x_size; /* str/union/array size */
} x_lnsz;
unsigned long x_fsize; /* size of function */
uint32_t x_fsize; /* size of function */
} x_misc;
union {
struct { /* if ISFCN, tag, or .bb */
unsigned long x_lnnoptr;/* ptr to fcn line # */
unsigned long x_endndx; /* entry ndx past block end */
uint32_t x_lnnoptr; /* ptr to fcn line # */
uint32_t x_endndx; /* entry ndx past block end */
} x_fcn;
struct { /* if ISARY, up to 4 dimen. */
char x_dimen[E_DIMNUM][2];
} x_ary;
} x_fcnary;
unsigned short x_tvndx; /* tv index */
uint16_t x_tvndx; /* tv index */
} x_sym;
union {
char x_fname[E_FILNMLEN];
struct {
unsigned long x_zeroes;
unsigned long x_offset;
uint32_t x_zeroes;
uint32_t x_offset;
} x_n;
} x_file;
struct {
unsigned long x_scnlen; /* section length */
unsigned short x_nreloc; /* # relocation entries */
unsigned short x_nlinno; /* # line numbers */
unsigned long x_checksum; /* section COMDAT checksum */
unsigned short x_associated;/* COMDAT associated section index */
uint32_t x_scnlen; /* section length */
uint16_t x_nreloc; /* # relocation entries */
uint16_t x_nlinno; /* # line numbers */
uint32_t x_checksum; /* section COMDAT checksum */
uint16_t x_associated; /* COMDAT associated section index */
char x_comdat[1]; /* COMDAT selection number */
} x_scn;
struct {
unsigned long x_tvfill; /* tv fill value */
unsigned short x_tvlen; /* length of .tv */
uint32_t x_tvfill; /* tv fill value */
uint16_t x_tvlen; /* length of .tv */
char x_tvran[2][2]; /* tv range */
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
@@ -244,6 +248,20 @@ struct external_reloc {
#ifndef _PE_H
#define _PE_H
#define IMAGE_FILE_MACHINE_I386 0x014c
#define IMAGE_FILE_MACHINE_AMD64 0x8664
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
#define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224
#define IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
/* NT specific file attributes */
#define IMAGE_FILE_RELOCS_STRIPPED 0x0001
#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002
@@ -320,43 +338,43 @@ struct external_reloc {
#ifdef COFF_IMAGE_WITH_PE
/* The filehdr is only weired in images */
/* The filehdr is only weird in images */
#undef FILHDR
struct external_PE_filehdr
{
/* DOS header fields */
unsigned short e_magic; /* Magic number, 0x5a4d */
unsigned short e_cblp; /* Bytes on last page of file, 0x90 */
unsigned short e_cp; /* Pages in file, 0x3 */
unsigned short e_crlc; /* Relocations, 0x0 */
unsigned short e_cparhdr; /* Size of header in paragraphs, 0x4 */
unsigned short e_minalloc; /* Minimum extra paragraphs needed, 0x0 */
unsigned short e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */
unsigned short e_ss; /* Initial (relative) SS value, 0x0 */
unsigned short e_sp; /* Initial SP value, 0xb8 */
unsigned short e_csum; /* Checksum, 0x0 */
unsigned short e_ip; /* Initial IP value, 0x0 */
unsigned short e_cs; /* Initial (relative) CS value, 0x0 */
unsigned short e_lfarlc; /* File address of relocation table, 0x40 */
unsigned short e_ovno; /* Overlay number, 0x0 */
char e_res[4][2]; /* Reserved words, all 0x0 */
unsigned short e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */
unsigned short e_oeminfo; /* OEM information; e_oemid specific, 0x0 */
char e_res2[10][2]; /* Reserved words, all 0x0 */
unsigned long e_lfanew; /* File address of new exe header, 0x80 */
uint16_t e_magic; /* Magic number, 0x5a4d */
uint16_t e_cblp; /* Bytes on last page of file, 0x90 */
uint16_t e_cp; /* Pages in file, 0x3 */
uint16_t e_crlc; /* Relocations, 0x0 */
uint16_t e_cparhdr; /* Size of header in paragraphs, 0x4 */
uint16_t e_minalloc; /* Minimum extra paragraphs needed, 0x0 */
uint16_t e_maxalloc; /* Maximum extra paragraphs needed, 0xFFFF */
uint16_t e_ss; /* Initial (relative) SS value, 0x0 */
uint16_t e_sp; /* Initial SP value, 0xb8 */
uint16_t e_csum; /* Checksum, 0x0 */
uint16_t e_ip; /* Initial IP value, 0x0 */
uint16_t e_cs; /* Initial (relative) CS value, 0x0 */
uint16_t e_lfarlc; /* File address of relocation table, 0x40 */
uint16_t e_ovno; /* Overlay number, 0x0 */
char e_res[4][2]; /* Reserved words, all 0x0 */
uint16_t e_oemid; /* OEM identifier (for e_oeminfo), 0x0 */
uint16_t e_oeminfo; /* OEM information; e_oemid specific, 0x0 */
char e_res2[10][2]; /* Reserved words, all 0x0 */
uint32_t e_lfanew; /* File address of new exe header, 0x80 */
char dos_message[16][4]; /* other stuff, always follow DOS header */
unsigned int nt_signature; /* required NT signature, 0x4550 */
uint32_t nt_signature; /* required NT signature, 0x4550 */
/* From standard header */
unsigned short f_magic; /* magic number */
unsigned short f_nscns; /* number of sections */
unsigned long f_timdat; /* time & date stamp */
unsigned long f_symptr; /* file pointer to symtab */
unsigned long f_nsyms; /* number of symtab entries */
unsigned short f_opthdr; /* sizeof(optional hdr) */
unsigned short f_flags; /* flags */
uint16_t f_magic; /* magic number */
uint16_t f_nscns; /* number of sections */
uint32_t f_timdat; /* time & date stamp */
uint32_t f_symptr; /* file pointer to symtab */
uint32_t f_nsyms; /* number of symtab entries */
uint16_t f_opthdr; /* sizeof(optional hdr) */
uint16_t f_flags; /* flags */
};
@@ -368,37 +386,39 @@ struct external_PE_filehdr
typedef struct
{
unsigned short magic; /* type of file */
unsigned short vstamp; /* version stamp */
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
unsigned long dsize; /* initialized data " " */
unsigned long bsize; /* uninitialized data " " */
unsigned long entry; /* entry pt. */
unsigned long text_start; /* base of text used for this file */
unsigned long data_start; /* base of all data used for this file */
uint16_t magic; /* type of file */
uint16_t vstamp; /* version stamp */
uint32_t tsize; /* text size in bytes, padded to FW bdry*/
uint32_t dsize; /* initialized data " " */
uint32_t bsize; /* uninitialized data " " */
uint32_t entry; /* entry pt. */
uint32_t text_start; /* base of text used for this file */
#ifndef __x86_64__
uint32_t data_start; /* base of all data used for this file */
#endif
/* NT extra fields; see internal.h for descriptions */
unsigned long ImageBase;
unsigned long SectionAlignment;
unsigned long FileAlignment;
unsigned short MajorOperatingSystemVersion;
unsigned short MinorOperatingSystemVersion;
unsigned short MajorImageVersion;
unsigned short MinorImageVersion;
unsigned short MajorSubsystemVersion;
unsigned short MinorSubsystemVersion;
uintptr_t ImageBase;
uint32_t SectionAlignment;
uint32_t FileAlignment;
uint16_t MajorOperatingSystemVersion;
uint16_t MinorOperatingSystemVersion;
uint16_t MajorImageVersion;
uint16_t MinorImageVersion;
uint16_t MajorSubsystemVersion;
uint16_t MinorSubsystemVersion;
char Reserved1[4];
unsigned long SizeOfImage;
unsigned long SizeOfHeaders;
unsigned long CheckSum;
unsigned short Subsystem;
unsigned short DllCharacteristics;
unsigned long SizeOfStackReserve;
unsigned long SizeOfStackCommit;
unsigned long SizeOfHeapReserve;
unsigned long SizeOfHeapCommit;
unsigned long LoaderFlags;
unsigned long NumberOfRvaAndSizes;
uint32_t SizeOfImage;
uint32_t SizeOfHeaders;
uint32_t CheckSum;
uint16_t Subsystem;
uint16_t DllCharacteristics;
uintptr_t SizeOfStackReserve;
uintptr_t SizeOfStackCommit;
uintptr_t SizeOfHeapReserve;
uintptr_t SizeOfHeapCommit;
uint32_t LoaderFlags;
uint32_t NumberOfRvaAndSizes;
/* IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; */
char DataDirectory[16][2][4]; /* 16 entries, 2 elements/entry, 4 chars */
@@ -406,7 +426,11 @@ typedef struct
#undef AOUTSZ
#ifdef __x86_64__
#define AOUTSZ (AOUTHDRSZ + 212)
#else
#define AOUTSZ (AOUTHDRSZ + 196)
#endif
#undef E_FILNMLEN
#define E_FILNMLEN 18 /* # characters in a file name */

View File

@@ -1,6 +1,6 @@
/* asm/byteorder.h
Copyright 1996, 1998, 2000, 2001, 2006, 2009, 2011 Red Hat, Inc.
Copyright 1996, 1998, 2001, 2006, 2009, 2011, 2012 Red Hat, Inc.
This file is part of Cygwin.
@@ -34,11 +34,7 @@ _ELIDABLE_INLINE uint16_t __ntohs(uint16_t);
_ELIDABLE_INLINE uint32_t
__ntohl(uint32_t x)
{
__asm__("xchgb %b0,%h0\n\t" /* swap lower bytes */
"rorl $16,%0\n\t" /* swap words */
"xchgb %b0,%h0" /* swap higher bytes */
:"=q" (x)
: "0" (x));
__asm__("bswap %0" : "=r" (x) : "0" (x));
return x;
}
@@ -52,7 +48,7 @@ _ELIDABLE_INLINE uint16_t
__ntohs(uint16_t x)
{
__asm__("xchgb %b0,%h0" /* swap bytes */
: "=q" (x)
: "=Q" (x)
: "0" (x));
return x;
}

View File

@@ -2,5 +2,10 @@
#ifndef _WORDSIZE_H
#define _WORDSIZE_H 1
#define __WORDSIZE 32
#ifdef __x86_64__
# define __WORDSIZE 64
# define __WORDSIZE_COMPAT32 1
#else
# define __WORDSIZE 32
#endif
#endif /*_WORDSIZE_H*/

View File

@@ -59,24 +59,20 @@ extern "C" {
#define OTHER OTHER_OBJ
#ifdef __INSIDE_CYGWIN__
#ifndef __x86_64__
typedef struct __acl16 {
int a_type;
__uid16_t a_id;
mode_t a_perm;
} __aclent16_t;
#endif
#endif
typedef struct __acl32 {
int a_type;
__uid32_t a_id;
mode_t a_perm;
} __aclent32_t;
#else
typedef struct acl {
int a_type; /* entry type */
uid_t a_id; /* UID | GID */
mode_t a_perm; /* permissions */
} aclent_t;
#endif
#ifndef __INSIDE_CYGWIN__
int _EXFUN(acl,(const char *path, int cmd, int nentries, aclent_t *aclbufp));

View File

@@ -4,7 +4,7 @@
sys/config.h before. This way we can manaage our configuration
setting without bothering newlib.
Copyright 2003, 2007, 2008, 2009, 2010, 2012 Red Hat, Inc.
Copyright 2003, 2007, 2008, 2009, 2010, 2012, 2013 Red Hat, Inc.
Written by C. Vinschen.
This file is part of Cygwin.
@@ -38,11 +38,31 @@ extern "C" {
we might as well just use it here. */
#ifdef _COMPILING_NEWLIB
#ifdef __x86_64__
#include "../tlsoffsets64.h"
/* We would like to use just "%gs:8", but on x86_64 gcc uses pc-relative
addressing and translates "gs:8" into the wrong addressing mode. */
static inline char *___getreent (void)
{
register char *ret;
__asm __volatile__ ("movq %%gs:8,%0" : "=r" (ret));
return ret + tls_local_clib;
}
#define __getreent() ((struct _reent *) ___getreent())
#else
#include "../tlsoffsets.h"
extern char *_tlsbase __asm__ ("%fs:4");
#define __getreent() (struct _reent *)(_tlsbase + tls_local_clib)
#endif
#endif /* _COMPILING_NEWLIB */
#ifdef __x86_64__
# define __SYMBOL_PREFIX
#else
# define __SYMBOL_PREFIX "_"
#endif
#define _SYMSTR(x) __SYMBOL_PREFIX #x
#define __FILENAME_MAX__ 4096 /* Keep in sync with PATH_MAX in limits.h. */
/* The following block of macros is required to build newlib correctly for

View File

@@ -1,6 +1,6 @@
/* cygwin_dll.h
Copyright 1998, 1999, 2000, 2001, 2009, 2011 Red Hat, Inc.
Copyright 1998, 1999, 2000, 2001, 2009, 2011, 2012, 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -26,8 +26,8 @@ details. */
CDECL_BEGIN \
int WINAPI Entry (HINSTANCE h, DWORD reason, void *ptr); \
typedef int (*mainfunc) (int, char **, char **); \
extern int cygwin_attach_dll (HMODULE, mainfunc); \
extern void cygwin_detach_dll (DWORD); \
extern PVOID cygwin_attach_dll (HMODULE, mainfunc); \
extern void cygwin_detach_dll (PVOID); \
CDECL_END \
\
static HINSTANCE storedHandle; \
@@ -35,12 +35,14 @@ static DWORD storedReason; \
static void* storedPtr; \
int __dynamically_loaded; \
\
static int __dllMain (int a, char **b, char **c) \
static int __dllMain (int a __attribute__ ((unused)), \
char **b __attribute__ ((unused)), \
char **c __attribute__ ((unused))) \
{ \
return Entry (storedHandle, storedReason, storedPtr); \
} \
\
static DWORD dll_index; \
static PVOID dll_index; \
\
int WINAPI _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
{ \
@@ -56,7 +58,7 @@ int WINAPI _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
storedPtr = ptr; \
__dynamically_loaded = (ptr == NULL); \
dll_index = cygwin_attach_dll (h, &__dllMain); \
if (dll_index == (DWORD) -1) \
if (dll_index == (PVOID) -1) \
ret = 0; \
} \
break; \
@@ -67,7 +69,7 @@ int WINAPI _cygwin_dll_entry (HINSTANCE h, DWORD reason, void *ptr) \
if (ret) \
{ \
cygwin_detach_dll (dll_index); \
dll_index = (DWORD) -1; \
dll_index = (PVOID) -1; \
} \
} \
break; \

View File

@@ -19,6 +19,7 @@ extern "C" {
#endif
#ifdef __INSIDE_CYGWIN__
#ifndef __x86_64__
struct __group16
{
char *gr_name;
@@ -26,19 +27,12 @@ struct __group16
__gid16_t gr_gid;
char **gr_mem;
};
#endif
struct __group32
{
char *gr_name;
char *gr_passwd;
__gid32_t gr_gid;
char **gr_mem;
};
struct __group32 * getgrgid32 (__gid32_t gid);
struct __group32 * getgrnam32 (const char *name);
__gid32_t getgid32 ();
__gid32_t getegid32 ();
struct group * getgrgid32 (gid_t gid);
struct group * getgrnam32 (const char *name);
gid_t getgid32 ();
gid_t getegid32 ();
#endif
extern int getgrouplist (const char *, gid_t, gid_t *, int *);

View File

@@ -1,6 +1,6 @@
/* sys/ipc.h
Copyright 2001, 2002 Red Hat Inc.
Copyright 2001, 2002, 2012, 2013 Red Hat Inc.
Written by Robert Collins <rbtcollins@hotmail.com>
This file is part of Cygwin.
@@ -13,6 +13,7 @@ details. */
#define _CYGWIN_IPC_H
#include <sys/types.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C"

View File

@@ -1,6 +1,6 @@
/* sys/msg.h
Copyright 2002 Red Hat Inc.
Copyright 2002, 2012, 2013 Red Hat Inc.
Written by Conrad Scott <conrad.scott@dsl.pipex.com>
This file is part of Cygwin.
@@ -32,11 +32,11 @@ extern "C"
/* Used for the number of messages in the message queue.
*/
typedef unsigned long msgqnum_t;
typedef uint32_t msgqnum_t;
/* Used for the number of bytes allowed in a message queue.
*/
typedef unsigned long msglen_t;
typedef uint32_t msglen_t;
struct msqid_ds
{
@@ -66,27 +66,27 @@ struct msqid_ds
*/
struct msginfo
{
long msgmax; /* Maximum number of bytes per
int32_t msgmax; /* Maximum number of bytes per
message. */
long msgmnb; /* Maximum number of bytes on any one
int32_t msgmnb; /* Maximum number of bytes on any one
message queue. */
long msgmni; /* Maximum number of message queues,
int32_t msgmni; /* Maximum number of message queues,
system wide. */
long msgtql; /* Maximum number of messages, system
int32_t msgtql; /* Maximum number of messages, system
wide. */
long msgssz; /* Size of a message segment, must be
int32_t msgssz; /* Size of a message segment, must be
small power of 2 greater than 4. */
long msgseg; /* Number of message segments */
long msg_spare[2];
int32_t msgseg; /* Number of message segments */
int32_t msg_spare[2];
};
/* Buffer type for msgctl (MSG_INFO, ...) as used by ipcs(8).
*/
struct msg_info
{
long msg_ids; /* Number of allocated queues. */
long msg_num; /* Number of messages, system wide. */
long msg_tot; /* Size in bytes of messages, system wide. */
int32_t msg_ids; /* Number of allocated queues. */
int32_t msg_num; /* Number of messages, system wide. */
int32_t msg_tot; /* Size in bytes of messages, system wide. */
};
#endif /* _KERNEL */

View File

@@ -1,6 +1,6 @@
/* sys/sem.h
Copyright 2002 Red Hat Inc.
Copyright 2002, 2012, 2013 Red Hat Inc.
Written by Conrad Scott <conrad.scott@dsl.pipex.com>
This file is part of Cygwin.
@@ -67,23 +67,23 @@ struct sembuf
*/
struct seminfo
{
long semmni; /* Maximum number of unique semaphore
int32_t semmni; /* Maximum number of unique semaphore
sets, system wide. */
long semmns; /* Maximum number of semaphores,
int32_t semmns; /* Maximum number of semaphores,
system wide. */
long semmsl; /* Maximum number of semaphores per
int32_t semmsl; /* Maximum number of semaphores per
semaphore set. */
long semopm; /* Maximum number of operations per
int32_t semopm; /* Maximum number of operations per
semop call. */
long semmnu; /* Maximum number of undo structures,
int32_t semmnu; /* Maximum number of undo structures,
system wide. */
long semume; /* Maximum number of undo entries per
int32_t semume; /* Maximum number of undo entries per
undo structure. */
long semvmx; /* Maximum semaphore value. */
long semaem; /* Maximum adjust-on-exit value. */
long semmap; /* # of entries in semaphore map */
long semusz; /* size in bytes of undo structure */
long sem_spare[2];
int32_t semvmx; /* Maximum semaphore value. */
int32_t semaem; /* Maximum adjust-on-exit value. */
int32_t semmap; /* # of entries in semaphore map */
int32_t semusz; /* size in bytes of undo structure */
int32_t sem_spare[2];
};
/* Buffer type for semctl (SEM_INFO, ...) as used by ipcs(8).

View File

@@ -1,6 +1,6 @@
/* sys/shm.h
Copyright 2001, 2002 Red Hat Inc.
Copyright 2001, 2002, 2012, 2013 Red Hat Inc.
Written by Robert Collins <rbtcollins@hotmail.com>
This file is part of Cygwin.
@@ -40,12 +40,12 @@ extern "C"
/* Unsigned integer used for the number of current attaches.
*/
typedef unsigned int shmatt_t;
typedef uint32_t shmatt_t;
struct shmid_ds
{
struct ipc_perm shm_perm; /* Operation permission structure. */
size_t shm_segsz; /* Size of segment in bytes. */
uint32_t shm_segsz; /* Size of segment in bytes. */
pid_t shm_lpid; /* Process ID of last operation. */
pid_t shm_cpid; /* Process ID of creator. */
shmatt_t shm_nattch;/* Number of current attaches. */
@@ -69,17 +69,20 @@ struct shmid_ds
*/
struct shminfo
{
long shmmax; /* Maximum size in bytes of a shared
int32_t shmmax; /* Maximum size in bytes of a shared
memory segment. */
long shmmin; /* Minimum size in bytes of a shared
int32_t shmmin; /* Minimum size in bytes of a shared
memory segment. */
long shmmni; /* Maximum number of shared memory
int32_t shmmni; /* Maximum number of shared memory
segments, system wide. */
long shmseg; /* Maximum number of shared memory
int32_t shmseg; /* Maximum number of shared memory
segments attached per process. */
long shmall; /* Maximum number of bytes of shared
memory, system wide. */
long shm_spare[4];
int32_t shmall; /* Maximum number of bytes of shared
memory, system wide.
Note that XSI IPC shared memory allocation is
restricted to a bit less than 2 Gigs, even on
64 bit, so using an int32_t here is sufficient. */
int32_t shm_spare[4];
};
/* Buffer type for shmctl (SHM_INFO, ...) as used by ipcs(8).
@@ -87,9 +90,9 @@ struct shminfo
struct shm_info
{
#define shm_ids used_ids
long used_ids; /* Number of allocated segments. */
long shm_tot; /* Size in bytes of allocated segments. */
long shm_atts; /* Number of attached segments, system
int32_t used_ids; /* Number of allocated segments. */
int32_t shm_tot; /* Size in bytes of allocated segments. */
int32_t shm_atts; /* Number of attached segments, system
wide. */
};
#endif /* _KERNEL */

View File

@@ -12,53 +12,144 @@
#ifndef _CYGWIN_SIGNAL_H
#define _CYGWIN_SIGNAL_H
#include <bits/wordsize.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __x86_64__
struct _uc_fpxreg {
__uint16_t significand[4];
__uint16_t exponent;
__uint16_t padding[3];
};
struct _uc_xmmreg {
__uint32_t element[4];
};
struct _fpstate
{
unsigned long cw;
unsigned long sw;
unsigned long tag;
unsigned long ipoff;
unsigned long cssel;
unsigned long dataoff;
unsigned long datasel;
unsigned char _st[80];
unsigned long nxst;
__uint16_t cwd;
__uint16_t swd;
__uint16_t ftw;
__uint16_t fop;
__uint64_t rip;
__uint64_t rdp;
__uint32_t mxcsr;
__uint32_t mxcr_mask;
struct _uc_fpxreg st[8];
struct _uc_xmmreg xmm[16];
__uint32_t padding[24];
};
struct ucontext
{
unsigned long cr2;
unsigned long dr0;
unsigned long dr1;
unsigned long dr2;
unsigned long dr3;
unsigned long dr6;
unsigned long dr7;
struct _fpstate fpstate;
unsigned long gs;
unsigned long fs;
unsigned long es;
unsigned long ds;
unsigned long edi;
unsigned long esi;
unsigned long ebx;
unsigned long edx;
unsigned long ecx;
unsigned long eax;
unsigned long ebp;
unsigned long eip;
unsigned long cs;
unsigned long eflags;
unsigned long esp;
unsigned long ss;
unsigned char _internal;
unsigned long oldmask;
__uint64_t p1home;
__uint64_t p2home;
__uint64_t p3home;
__uint64_t p4home;
__uint64_t p5home;
__uint64_t p6home;
__uint32_t cr2;
__uint32_t mxcsr;
__uint16_t cs;
__uint16_t ds;
__uint16_t es;
__uint16_t fs;
__uint16_t gs;
__uint16_t ss;
__uint32_t eflags;
__uint64_t dr0;
__uint64_t dr1;
__uint64_t dr2;
__uint64_t dr3;
__uint64_t dr6;
__uint64_t dr7;
__uint64_t rax;
__uint64_t rcx;
__uint64_t rdx;
__uint64_t rbx;
__uint64_t rsp;
__uint64_t rbp;
__uint64_t rsi;
__uint64_t rdi;
__uint64_t r8;
__uint64_t r9;
__uint64_t r10;
__uint64_t r11;
__uint64_t r12;
__uint64_t r13;
__uint64_t r14;
__uint64_t r15;
__uint64_t rip;
struct _fpstate fpregs;
__uint64_t vcx;
__uint64_t dbc;
__uint64_t btr;
__uint64_t bfr;
__uint64_t etr;
__uint64_t efr;
__uint8_t _internal;
__uint64_t oldmask;
};
#define __COPY_CONTEXT_SIZE ((unsigned) &((struct ucontext *) 0)->_internal)
#else /* !x86_64 */
struct _uc_fpreg
{
__uint16_t significand[4];
__uint16_t exponent;
};
struct _fpstate
{
__uint32_t cw;
__uint32_t sw;
__uint32_t tag;
__uint32_t ipoff;
__uint32_t cssel;
__uint32_t dataoff;
__uint32_t datasel;
struct _uc_fpreg _st[8];
__uint32_t nxst;
};
struct ucontext
{
__uint32_t cr2;
__uint32_t dr0;
__uint32_t dr1;
__uint32_t dr2;
__uint32_t dr3;
__uint32_t dr6;
__uint32_t dr7;
struct _fpstate fpstate;
__uint32_t gs;
__uint32_t fs;
__uint32_t es;
__uint32_t ds;
__uint32_t edi;
__uint32_t esi;
__uint32_t ebx;
__uint32_t edx;
__uint32_t ecx;
__uint32_t eax;
__uint32_t ebp;
__uint32_t eip;
__uint32_t cs;
__uint32_t eflags;
__uint32_t esp;
__uint32_t ss;
__uint8_t _internal;
__uint32_t oldmask;
};
#endif /* !x86_64 */
#define __COPY_CONTEXT_SIZE ((size_t) (uintptr_t) &((struct ucontext *) 0)->_internal)
typedef union sigval
{
@@ -208,7 +299,13 @@ enum
perform notification */
};
#if __WORDSIZE == 64
typedef __uint64_t sigset_t;
#else
/* FIXME: We should probably raise the # of signals for 32 bit as well.
Unfortunately this is an ABI change so requires some forethought. */
typedef __uint32_t sigset_t;
#endif
typedef void (*_sig_func_ptr)(int);
@@ -274,10 +371,15 @@ struct sigaction
#define SIGUSR1 30 /* user defined signal 1 */
#define SIGUSR2 31 /* user defined signal 2 */
#if __WORDSIZE == 64
#define NSIG 65 /* signal 0 implied */
#else
#define NSIG 33 /* signal 0 implied */
#endif
/* Real-Time signals per SUSv3. RT_SIGMAX is defined as 8 in limits.h */
#define SIGRTMIN 32
#define SIGRTMAX ((SIGRTMIN) + 0)
#define NSIG 33 /* signal 0 implied */
#define SIGRTMAX (NSIG - 1)
#define SIG_HOLD ((_sig_func_ptr)2) /* Signal in signal mask */

View File

@@ -55,8 +55,8 @@ struct sockaddr_storage {
struct ucred {
pid_t pid;
__uid32_t uid;
__gid32_t gid;
uid_t uid;
gid_t gid;
};
struct linger {

View File

@@ -16,49 +16,6 @@ details. */
extern "C" {
#endif
#if defined (__INSIDE_CYGWIN__) || defined (_COMPILING_NEWLIB)
struct __stat32
{
__dev16_t st_dev;
__ino32_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
__uid16_t st_uid;
__gid16_t st_gid;
__dev16_t st_rdev;
_off_t st_size;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
blksize_t st_blksize;
__blkcnt32_t st_blocks;
long st_spare4[2];
};
struct __stat64
{
__dev32_t st_dev;
__ino64_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
__uid32_t st_uid;
__gid32_t st_gid;
__dev32_t st_rdev;
_off64_t st_size;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
blksize_t st_blksize;
__blkcnt64_t st_blocks;
timestruc_t st_birthtim;
};
extern int fstat64 (int fd, struct __stat64 *buf);
extern int stat64 (const char *file_name, struct __stat64 *buf);
extern int lstat64 (const char *file_name, struct __stat64 *buf);
#endif
struct stat
{
dev_t st_dev;
@@ -77,6 +34,33 @@ struct stat
timestruc_t st_birthtim;
};
#if defined (__INSIDE_CYGWIN__) || defined (_COMPILING_NEWLIB)
#ifndef __x86_64__
struct __stat32
{
__dev16_t st_dev;
__ino32_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
__uid16_t st_uid;
__gid16_t st_gid;
__dev16_t st_rdev;
_off_t st_size;
timestruc_t st_atim;
timestruc_t st_mtim;
timestruc_t st_ctim;
blksize_t st_blksize;
__blkcnt32_t st_blocks;
long st_spare4[2];
};
#endif
extern int fstat64 (int fd, struct stat *buf);
extern int stat64 (const char *file_name, struct stat *buf);
extern int lstat64 (const char *file_name, struct stat *buf);
#endif
#define st_atime st_atim.tv_sec
#define st_mtime st_mtim.tv_sec
#define st_ctime st_ctim.tv_sec

View File

@@ -1,6 +1,6 @@
/* cygwin/sysproto.h
Copyright 2003, 2005 Red Hat, Inc.
Copyright 2003, 2005, 2012, 2013 Red Hat, Inc.
This file is part of Cygwin.

View File

@@ -26,10 +26,10 @@ time_t __cdecl timegm (struct tm *);
#ifndef __STRICT_ANSI__
extern int daylight __asm__ ("__daylight");
extern int daylight __asm__ (_SYMSTR (_daylight));
#ifndef __timezonefunc__
extern long timezone __asm__ ("__timezone");
extern long timezone __asm__ (_SYMSTR (_timezone));
#endif
#endif /*__STRICT_ANSI__*/

View File

@@ -19,6 +19,7 @@ extern "C"
#include <stdint.h>
#include <endian.h>
#include <bits/wordsize.h>
#ifndef __timespec_t_defined
#define __timespec_t_defined
@@ -32,68 +33,72 @@ typedef struct timespec timestruc_t;
#ifndef __off_t_defined
#define __off_t_defined
/* Based on the newlib definitions. */
#if __WORDSIZE == 64
typedef _off_t off_t;
#else
typedef _off64_t off_t;
#endif
#endif /*__off_t_defined*/
typedef __loff_t loff_t;
#ifndef __dev_t_defined
#define __dev_t_defined
typedef short __dev16_t;
typedef unsigned long __dev32_t;
typedef __dev32_t dev_t;
typedef __int16_t __dev16_t;
typedef __uint32_t dev_t;
#endif /*__dev_t_defined*/
#ifndef __blksize_t_defined
#define __blksize_t_defined
typedef long blksize_t;
typedef __int32_t blksize_t;
#endif /*__blksize_t_defined*/
#ifndef __blkcnt_t_defined
#define __blkcnt_t_defined
typedef long __blkcnt32_t;
typedef long long __blkcnt64_t;
typedef __blkcnt64_t blkcnt_t;
typedef __int32_t __blkcnt32_t;
typedef __int64_t blkcnt_t;
#endif /*__blkcnt_t_defined*/
#ifndef __fsblkcnt_t_defined
#define __fsblkcnt_t_defined
/* Keep as is. 32 bit on i386, 64 bit on x86_64. */
typedef unsigned long fsblkcnt_t;
#endif /* __fsblkcnt_t_defined */
#ifndef __fsfilcnt_t_defined
#define __fsfilcnt_t_defined
/* Keep as is. 32 bit on i386, 64 bit on x86_64. */
typedef unsigned long fsfilcnt_t;
#endif /* __fsfilcnt_t_defined */
#ifndef __uid_t_defined
#define __uid_t_defined
typedef unsigned short __uid16_t;
typedef unsigned long __uid32_t;
typedef __uid32_t uid_t;
typedef __uint32_t uid_t;
#endif /*__uid_t_defined*/
#ifndef __gid_t_defined
#define __gid_t_defined
typedef unsigned short __gid16_t;
typedef unsigned long __gid32_t;
typedef __gid32_t gid_t;
typedef __uint32_t gid_t;
#endif /*__gid_t_defined*/
#ifndef __ino_t_defined
#define __ino_t_defined
typedef unsigned long __ino32_t;
typedef unsigned long long __ino64_t;
typedef __ino64_t ino_t;
#ifndef __x86_64__
typedef __uint32_t __ino32_t;
#endif
typedef __uint64_t ino_t;
#endif /*__ino_t_defined*/
/* Generic ID type, must match at least pid_t, uid_t and gid_t in size. */
#ifndef __id_t_defined
#define __id_t_defined
typedef unsigned long id_t;
typedef __uint32_t id_t;
#endif /* __id_t_defined */
#if defined (__INSIDE_CYGWIN__)
#if defined (__INSIDE_CYGWIN__) && !defined (__x86_64__)
struct __flock32 {
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
short l_whence; /* flag to choose starting offset */
@@ -102,14 +107,6 @@ struct __flock32 {
short l_pid; /* returned with F_GETLK */
short l_xxx; /* reserved for future use */
};
struct __flock64 {
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
short l_whence; /* flag to choose starting offset */
_off64_t l_start; /* relative offset, in bytes */
_off64_t l_len; /* length, in bytes; 0 means lock to EOF */
pid_t l_pid; /* returned with F_GETLK */
};
#endif
struct flock {

View File

@@ -1,7 +1,7 @@
/* version.h -- Cygwin version numbers and accompanying documentation.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007, 2008, 2009, 2010, 2011, 2012, 2013 Red Hat, Inc.
2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
This file is part of Cygwin.

View File

@@ -41,7 +41,7 @@ typedef struct {
struct _ftsent *fts_cur; /* current node */
struct _ftsent *fts_child; /* linked list of children */
struct _ftsent **fts_array; /* sort array */
__dev32_t fts_dev; /* starting device # */
dev_t fts_dev; /* starting device # */
char *fts_path; /* path for this descent */
int fts_rfd; /* fd for root */
int fts_pathlen; /* sizeof(path) */
@@ -88,8 +88,8 @@ typedef struct _ftsent {
u_short fts_pathlen; /* strlen(fts_path) */
u_short fts_namelen; /* strlen(fts_name) */
__ino64_t fts_ino; /* inode */
__dev32_t fts_dev; /* device */
ino_t fts_ino; /* inode */
dev_t fts_dev; /* device */
nlink_t fts_nlink; /* link count */
#define FTS_ROOTPARENTLEVEL -1
@@ -123,11 +123,7 @@ typedef struct _ftsent {
#define FTS_SKIP 4 /* discard node */
u_short fts_instr; /* fts_set() instructions */
#ifdef __INSIDE_CYGWIN__
struct __stat64 *fts_statp; /* stat(2) information */
#else
struct stat *fts_statp; /* stat(2) information */
#endif
char *fts_name; /* file name */
FTS *fts_fts; /* back pointer to main FTS */
} FTSENT;

View File

@@ -55,15 +55,9 @@ struct FTW {
};
__BEGIN_DECLS
#ifdef __INSIDE_CYGWIN__
int ftw(const char *, int (*)(const char *, const struct __stat64 *, int), int);
int nftw(const char *, int (*)(const char *, const struct __stat64 *, int,
struct FTW *), int, int);
#else
int ftw(const char *, int (*)(const char *, const struct stat *, int), int);
int nftw(const char *, int (*)(const char *, const struct stat *, int,
struct FTW *), int, int);
#endif
__END_DECLS
#endif /* !_FTW_H */

View File

@@ -61,14 +61,8 @@ typedef struct {
void (*gl_closedir)(void *);
struct dirent *(*gl_readdir)(void *);
void *(*gl_opendir)(const char *);
#if defined (__INSIDE_CYGWIN__)
int (*gl_lstat) __P((const char *, struct __stat64 *));
int (*gl_stat) __P((const char *, struct __stat64 *));
#else
int (*gl_lstat) __P((const char *, struct stat *));
int (*gl_stat) __P((const char *, struct stat *));
#endif
} glob_t;
/* Believed to have been introduced in 1003.2-1992 */

View File

@@ -14,13 +14,14 @@ details. */
#include <stdint.h>
#define __need_wchar_t
#include <stddef.h>
#include <bits/wordsize.h>
/* C99 requires that in C++ the following macros should be defined only
if requested. */
#if !defined (__cplusplus) || defined (__STDC_FORMAT_MACROS) \
|| defined (__INSIDE_CYGWIN__)
#ifdef __x86_64__
#if __WORDSIZE == 64
#define __PRI64 "l"
#define __PRIFAST "l"
#define __PRIPTR "l"
@@ -144,7 +145,7 @@ details. */
/* fscanf() macros for signed integers */
#ifdef __x86_64__
#if __WORDSIZE == 64
#define __SCN64 "l"
#define __SCNFAST "l"
#define __SCNPTR "l"

View File

@@ -18,9 +18,10 @@ extern "C" {
/*
* Function to return a Win32 HANDLE from a fd.
*/
extern long get_osfhandle(int);
extern int setmode (int __fd, int __mode);
int access(const char *__path, int __amode);
extern long _get_osfhandle(int);
#define get_osfhandle(i) _get_osfhandle(i)
extern int _setmode (int __fd, int __mode);
#define setmode(f,m) _setmode((f),(m))
#ifdef __cplusplus
};

View File

@@ -1,7 +1,7 @@
/* limits.h
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2011, 2012 Red Hat, Inc.
2011, 2012, 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -12,6 +12,7 @@ details. */
#ifndef _LIMITS_H___
#include <features.h>
#include <bits/wordsize.h>
#ifndef _MACH_MACHLIMITS_H_
@@ -24,15 +25,15 @@ details. */
/* Number of bits in a `char'. */
#undef CHAR_BIT
#define CHAR_BIT 8
#define CHAR_BIT __CHAR_BIT__
/* Number of bits in a `long'. */
#undef LONG_BIT
#define LONG_BIT 32
#define LONG_BIT (__SIZEOF_LONG__ * __CHAR_BIT__)
/* Number of bits in a `int'. */
#undef WORD_BIT
#define WORD_BIT 32
#define WORD_BIT (__SIZEOF_INT__ * __CHAR_BIT__)
/* Maximum length of a multibyte character. */
#ifndef MB_LEN_MAX
@@ -89,14 +90,14 @@ details. */
/* Minimum and maximum values a `signed long int' can hold.
(Same as `int'). */
#ifndef __LONG_MAX__
#ifndef __alpha__
#define __LONG_MAX__ 2147483647L
#else
#if __WORDSIZE == 64
#define __LONG_MAX__ 9223372036854775807L
#else
#define __LONG_MAX__ 2147483647L
# endif /* __alpha__ */
#endif
#undef LONG_MIN
#define LONG_MIN (-LONG_MAX-1)
#define LONG_MIN (-LONG_MAX-1L)
#undef LONG_MAX
#define LONG_MAX __LONG_MAX__
@@ -221,9 +222,9 @@ details. */
#define PTHREAD_DESTRUCTOR_ITERATIONS 1
/* Maximum number of data keys that can be created by a process. */
/* Tls has 64 items for pre win2000 - and we don't want to use them all :] */
/* Tls has 1088 items - and we don't want to use them all :] */
#undef PTHREAD_KEYS_MAX
#define PTHREAD_KEYS_MAX 32
#define PTHREAD_KEYS_MAX 1024
/* Minimum size in bytes of thread stack storage. */
/* Actually the minimum stack size is somewhat of a split personality.
@@ -242,9 +243,14 @@ details. */
/* #define PTHREAD_THREADS_MAX unspecified */
/* Maximum number of realtime signals reserved for application use. */
/* FIXME: We only support one realtime signal but _POSIX_RTSIG_MAX is 8. */
/* FIXME: We only support one realtime signal in 32 bit mode, but
_POSIX_RTSIG_MAX is 8. */
#undef RTSIG_MAX
#if __WORDSIZE == 64
#define RTSIG_MAX 33
#else
#define RTSIG_MAX 1
#endif
/* Maximum number of semaphores that a process may have. */
/* Windows allows any arbitrary number of semaphores per process. */

View File

@@ -33,9 +33,7 @@ struct mntent *getmntent_r (FILE *, struct mntent *, char *, int);
int endmntent (FILE *__filep);
#endif
#ifdef __CYGWIN__
/* Only include paths.h if building for Cygwin. This avoids including
newlib headers when building the native tools in winsup/utils. */
#ifndef _NOMNTENT_MACROS
#include <paths.h>
@@ -52,7 +50,7 @@ int endmntent (FILE *__filep);
#define MOUNTED _PATH_MOUNTED
#endif
#endif /* __CYGWIN__ */
#endif /* !_NOMNTENT_MACROS */
#ifdef __cplusplus
};

View File

@@ -11,6 +11,8 @@ details. */
#ifndef _STDINT_H
#define _STDINT_H
#include <bits/wordsize.h>
/* Exact-width integer types */
#ifndef __int8_t_defined
@@ -18,7 +20,7 @@ details. */
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef long int64_t;
#else
typedef long long int64_t;
@@ -31,7 +33,7 @@ typedef unsigned short uint16_t;
#define __uint32_t_defined
typedef unsigned int uint32_t;
#endif
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef unsigned long uint64_t;
#else
typedef unsigned long long uint64_t;
@@ -42,7 +44,7 @@ typedef unsigned long long uint64_t;
typedef signed char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef long int_least64_t;
#else
typedef long long int_least64_t;
@@ -51,7 +53,7 @@ typedef long long int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef unsigned long uint_least64_t;
#else
typedef unsigned long long uint_least64_t;
@@ -60,7 +62,7 @@ typedef unsigned long long uint_least64_t;
/* Fastest minimum-width integer types */
typedef signed char int_fast8_t;
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef long int_fast16_t;
typedef long int_fast32_t;
typedef long int_fast64_t;
@@ -71,7 +73,7 @@ typedef long long int_fast64_t;
#endif
typedef unsigned char uint_fast8_t;
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef unsigned long uint_fast16_t;
typedef unsigned long uint_fast32_t;
typedef unsigned long uint_fast64_t;
@@ -85,13 +87,13 @@ typedef unsigned long long uint_fast64_t;
#ifndef __intptr_t_defined
#define __intptr_t_defined
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef long intptr_t;
#else
typedef int intptr_t;
#endif
#endif
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef unsigned long uintptr_t;
#else
typedef unsigned int uintptr_t;
@@ -99,7 +101,7 @@ typedef unsigned int uintptr_t;
/* Greatest-width integer types */
#ifdef __x86_64__
#if __WORDSIZE == 64
typedef long intmax_t;
typedef unsigned long uintmax_t;
#else
@@ -157,7 +159,7 @@ typedef unsigned long long uintmax_t;
/* Limits of fastest minimum-width integer types */
#define INT_FAST8_MIN (-128)
#ifdef __x86_64__
#if __WORDSIZE == 64
#define INT_FAST16_MIN (-__I64(9223372036854775807) - 1)
#define INT_FAST32_MIN (-__I64(9223372036854775807) - 1)
#else
@@ -167,7 +169,7 @@ typedef unsigned long long uintmax_t;
#define INT_FAST64_MIN (-__I64(9223372036854775807) - 1)
#define INT_FAST8_MAX (127)
#ifdef __x86_64__
#if __WORDSIZE == 64
#define INT_FAST16_MAX (__I64(9223372036854775807))
#define INT_FAST32_MAX (__I64(9223372036854775807))
#else
@@ -177,7 +179,7 @@ typedef unsigned long long uintmax_t;
#define INT_FAST64_MAX (__I64(9223372036854775807))
#define UINT_FAST8_MAX (255)
#ifdef __x86_64__
#if __WORDSIZE == 64
#define UINT_FAST16_MAX (__U64(18446744073709551615))
#define UINT_FAST32_MAX (__U64(18446744073709551615))
#else
@@ -188,9 +190,9 @@ typedef unsigned long long uintmax_t;
/* Limits of integer types capable of holding object pointers */
#ifdef __x86_64__
#if __WORDSIZE == 64
#define INTPTR_MIN (-__I64(9223372036854775807) - 1)
#define INTPTR_MAX (__I64(9223372036854775807)
#define INTPTR_MAX (__I64(9223372036854775807))
#define UINTPTR_MAX (__U64(18446744073709551615))
#else
#define INTPTR_MIN (-2147483647 - 1)
@@ -207,7 +209,7 @@ typedef unsigned long long uintmax_t;
/* Limits of other integer types */
#ifndef PTRDIFF_MIN
#ifdef __x86_64__
#if __WORDSIZE == 64
#define PTRDIFF_MIN (-9223372036854775807L - 1)
#define PTRDIFF_MAX (9223372036854775807L)
#else
@@ -224,7 +226,7 @@ typedef unsigned long long uintmax_t;
#endif
#ifndef SIZE_MAX
#ifdef __x86_64__
#if __WORDSIZE == 64
#define SIZE_MAX (18446744073709551615UL)
#else
#define SIZE_MAX (4294967295U)
@@ -258,7 +260,7 @@ typedef unsigned long long uintmax_t;
#define INT8_C(x) x
#define INT16_C(x) x
#define INT32_C(x) x
#ifdef __x86_64__
#if __WORDSIZE == 64
#define INT64_C(x) x ## L
#else
#define INT64_C(x) x ## LL
@@ -267,7 +269,7 @@ typedef unsigned long long uintmax_t;
#define UINT8_C(x) x
#define UINT16_C(x) x
#define UINT32_C(x) x ## U
#ifdef __x86_64__
#if __WORDSIZE == 64
#define UINT64_C(x) x ## UL
#else
#define UINT64_C(x) x ## ULL
@@ -275,7 +277,7 @@ typedef unsigned long long uintmax_t;
/* Macros for greatest-width integer constant expressions */
#ifdef __x86_64__
#if __WORDSIZE == 64
#define INTMAX_C(x) x ## L
#define UINTMAX_C(x) x ## UL
#else

View File

@@ -1,7 +1,7 @@
/* sys/cygwin.h
Copyright 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
2009, 2010, 2011, 2012 Red Hat, Inc.
2009, 2010, 2011, 2012, 2013 Red Hat, Inc.
This file is part of Cygwin.
@@ -14,6 +14,7 @@ details. */
#include <sys/types.h>
#include <limits.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
@@ -21,8 +22,9 @@ extern "C" {
#define _CYGWIN_SIGNAL_STRING "cYgSiGw00f"
#ifndef __x86_64__
/* DEPRECATED INTERFACES. These are restricted to MAX_PATH length.
Don't use in modern applications. */
Don't use in modern applications. They don't exist on x86_64. */
extern int cygwin_win32_to_posix_path_list (const char *, char *)
__attribute__ ((deprecated));
extern int cygwin_win32_to_posix_path_list_buf_size (const char *)
@@ -39,6 +41,7 @@ extern int cygwin_conv_to_posix_path (const char *, char *)
__attribute__ ((deprecated));
extern int cygwin_conv_to_full_posix_path (const char *, char *)
__attribute__ ((deprecated));
#endif /* !__x86_64__ */
/* Use these interfaces in favor of the above. */
@@ -200,7 +203,7 @@ CW_TOKEN_RESTRICTED = 1
};
#define CW_NEXTPID 0x80000000 /* or with pid to get next one */
unsigned long cygwin_internal (cygwin_getinfo_types, ...);
uintptr_t cygwin_internal (cygwin_getinfo_types, ...);
/* Flags associated with process_state */
enum
@@ -255,12 +258,14 @@ struct per_process
/* The offset of these 3 values can never change. */
/* magic_biscuit is the size of this class and should never change. */
unsigned long magic_biscuit;
unsigned long dll_major;
unsigned long dll_minor;
uint32_t magic_biscuit;
uint32_t dll_major;
uint32_t dll_minor;
struct _reent **impure_ptr_ptr;
#ifndef __x86_64__
char ***envptr;
#endif
/* Used to point to the memory machine we should use. Usually these
point back into the dll, but they can be overridden by the user. */
@@ -284,10 +289,10 @@ struct per_process
/* For future expansion of values set by the app. */
void (*premain[4]) (int, char **, struct per_process *);
/* non-zero of ctors have been run. Inherited from parent. */
int run_ctors_p;
/* non-zero if ctors have been run. Inherited from parent. */
int32_t run_ctors_p;
DWORD unused[7];
DWORD_PTR unused[7];
/* Pointers to real operator new/delete functions for forwarding. */
struct per_process_cxx_malloc *cxx_malloc;
@@ -298,7 +303,11 @@ struct per_process
DWORD api_minor; /* linked with */
/* For future expansion, so apps won't have to be relinked if we
add an item. */
DWORD unused2[3];
#ifdef __x86_64__
DWORD_PTR unused2[5];
#else
DWORD_PTR unused2[3];
#endif
void *pseudo_reloc_start;
void *pseudo_reloc_end;
void *image_base;
@@ -310,7 +319,7 @@ struct per_process
#endif
struct _reent *impure_ptr;
};
#define per_process_overwrite ((unsigned) &(((struct per_process *) NULL)->threadinterface))
#define per_process_overwrite offsetof (struct per_process, threadinterface)
#ifdef _PATH_PASSWD
extern HANDLE cygwin_logon_user (const struct passwd *, const char *);
@@ -335,11 +344,11 @@ extern void cygwin_premain3 (int, char **, struct per_process *);
#define EXTERNAL_PINFO_VERSION_32_LP 2
#define EXTERNAL_PINFO_VERSION EXTERNAL_PINFO_VERSION_32_LP
#ifndef _SYS_TYPES_H
typedef unsigned short __uid16_t;
typedef unsigned short __gid16_t;
typedef unsigned long __uid32_t;
typedef unsigned long __gid32_t;
#ifndef __uid_t_defined
typedef __uint16_t __uid16_t;
typedef __uint16_t __gid16_t;
typedef __uint32_t uid_t;
typedef __uint32_t gid_t;
#endif
struct external_pinfo
@@ -367,8 +376,8 @@ struct external_pinfo
DWORD process_state;
/* Only available if version >= EXTERNAL_PINFO_VERSION_32_BIT */
__uid32_t uid32;
__gid32_t gid32;
uid_t uid32;
gid_t gid32;
/* Only available if version >= EXTERNAL_PINFO_VERSION_32_LP */
char *progname_long;

View File

@@ -1,6 +1,7 @@
/* Posix dirent.h for WIN32.
Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2010, 2012 Red Hat, Inc.
Copyright 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2010, 2012,
2013 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@@ -16,38 +17,50 @@
#define __DIRENT_VERSION 2
#ifndef __x86_64__
#pragma pack(push,4)
#endif
#define _DIRENT_HAVE_D_TYPE
struct dirent
{
long __d_version; /* Used internally */
__ino64_t d_ino;
uint32_t __d_version; /* Used internally */
ino_t d_ino;
unsigned char d_type;
unsigned char __d_unused1[3];
__uint32_t __d_internal1;
char d_name[NAME_MAX + 1];
};
#ifndef __x86_64__
#pragma pack(pop)
#endif
#define d_fileno d_ino /* BSD compatible definition */
#ifdef __x86_64__
#define __DIRENT_COOKIE 0xcdcd8484
#else
#define __DIRENT_COOKIE 0xdede4242
#endif
#ifndef __x86_64__
#pragma pack(push,4)
#endif
typedef struct __DIR
{
/* This is first to set alignment in non _COMPILING_NEWLIB case. */
unsigned long __d_cookie;
struct dirent *__d_dirent;
char *__d_dirname; /* directory name with trailing '*' */
long __d_position; /* used by telldir/seekdir */
__int32_t __d_position; /* used by telldir/seekdir */
int __d_fd;
unsigned __d_internal;
uintptr_t __d_internal;
void *__handle;
void *__fh;
unsigned __flags;
} DIR;
#ifndef __x86_64__
#pragma pack(pop)
#endif
DIR *opendir (const char *);
DIR *fdopendir (int);

View File

@@ -34,7 +34,7 @@ extern "C" {
#define RLIMIT_NLIMITS 7 /* upper bound of RLIMIT_* defines */
#define RLIM_NLIMITS RLIMIT_NLIMITS
#define RLIM_INFINITY (0xffffffffUL)
#define RLIM_INFINITY (~0UL)
#define RLIM_SAVED_MAX RLIM_INFINITY
#define RLIM_SAVED_CUR RLIM_INFINITY

View File

@@ -1,7 +1,7 @@
/* sys/strace.h
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
2010, 2011 Red Hat, Inc.
2010, 2011, 2012 Red Hat, Inc.
This file is part of Cygwin.
@@ -29,6 +29,7 @@ details. */
#define _SYS_STRACE_H
#include <stdarg.h>
#include <sys/types.h>
#ifdef __cplusplus
@@ -49,7 +50,7 @@ public:
void prntf (unsigned, const char *func, const char *, ...) /*__attribute__ ((regparm(3)))*/;
void vprntf (unsigned, const char *func, const char *, va_list ap) /*__attribute__ ((regparm(3)))*/;
void wm (int message, int word, int lon) __attribute__ ((regparm(3)));
void write_childpid (unsigned long) __attribute__ ((regparm (3)));
void write_childpid (pid_t) __attribute__ ((regparm (3)));
bool attached () const {return _active == 3;}
bool active () const {return _active & 1;}
unsigned char& active_val () {return _active;}