mirror of git://sourceware.org/git/glibc.git
Update.
* version.h (VERSION): Bump to 2.0.99. * posix/fnmath.h: Don't redefine __P when used in glibc. * posix/glob.h: Likewise. * inet/rcmd.c (__ivaliduser2): Fix memory leak. Patch by Dick Streefland <dick_streefland@tasking.com>. * stdio-common/tst-ungetc.c: Add more test cases. * sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h. * sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number definitions to ... * sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here. New file. * sysdeps/unix/sysv/linux/fpathconf.c: New file. * sysdeps/unix/sysv/linux/pathconf.c: New file. * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here. * sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise. 1998-10-20 Philip Blundell <pb@nexus.co.uk> * sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include <asm/ptrace.h> to define struct pt_regs. * sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother including <asm/ptrace.h> here. * sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to C_SYMBOL_NAME macro. 1998-10-23 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at end of enumerator list. * sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise. * posix/wordexp.h: Likewise. * db/db.h: Use __PMT instead of __P in typedefs. * db/mpool.h: Likewise. * sysdeps/generic/bits/siginfo.h: Likewise. * nis/rpcsvc/ypclnt.h: Likewise. 1998-10-23 Ulrich Drepper <drepper@cygnus.com>
This commit is contained in:
parent
d6787ff257
commit
24f25de656
43
ChangeLog
43
ChangeLog
|
@ -1,3 +1,46 @@
|
||||||
|
1998-10-23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* version.h (VERSION): Bump to 2.0.99.
|
||||||
|
|
||||||
|
* posix/fnmath.h: Don't redefine __P when used in glibc.
|
||||||
|
* posix/glob.h: Likewise.
|
||||||
|
|
||||||
|
* inet/rcmd.c (__ivaliduser2): Fix memory leak.
|
||||||
|
Patch by Dick Streefland <dick_streefland@tasking.com>.
|
||||||
|
|
||||||
|
* stdio-common/tst-ungetc.c: Add more test cases.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/Dist: Add linux_fsinfo.h.
|
||||||
|
* sysdeps/unix/sysv/linux/fstatvfs.c: Move filesystem magic number
|
||||||
|
definitions to ...
|
||||||
|
* sysdeps/unix/sysv/linux/linux_fsinfo.h: ...here. New file.
|
||||||
|
* sysdeps/unix/sysv/linux/fpathconf.c: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/pathconf.c: New file.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/fpathconf.c: Handle _PC_LINK_MAX here.
|
||||||
|
* sysdeps/unix/sysv/linux/alpha/pathconf.c: Likewise.
|
||||||
|
|
||||||
|
1998-10-20 Philip Blundell <pb@nexus.co.uk>
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: Include
|
||||||
|
<asm/ptrace.h> to define struct pt_regs.
|
||||||
|
* sysdeps/unix/sysv/linux/arm/profil-counter.h: Don't bother
|
||||||
|
including <asm/ptrace.h> here.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/arm/sysdep.S: Remove spurious call to
|
||||||
|
C_SYMBOL_NAME macro.
|
||||||
|
|
||||||
|
1998-10-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
|
* sysdeps/generic/sys/ptrace.h (__ptrace_request): Remove comma at
|
||||||
|
end of enumerator list.
|
||||||
|
* sysdeps/unix/sysv/linux/sys/ptrace.h (__ptrace_request): Likewise.
|
||||||
|
* posix/wordexp.h: Likewise.
|
||||||
|
|
||||||
|
* db/db.h: Use __PMT instead of __P in typedefs.
|
||||||
|
* db/mpool.h: Likewise.
|
||||||
|
* sysdeps/generic/bits/siginfo.h: Likewise.
|
||||||
|
* nis/rpcsvc/ypclnt.h: Likewise.
|
||||||
|
|
||||||
1998-10-23 Ulrich Drepper <drepper@cygnus.com>
|
1998-10-23 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
* libio/genops.c (_IO_seekmark): When switching to backup buffer
|
* libio/genops.c (_IO_seekmark): When switching to backup buffer
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* siginfo_t, sigevent and constants. Stub version.
|
/* siginfo_t, sigevent and constants. Stub version.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -185,7 +185,7 @@ typedef struct sigevent
|
||||||
sigval_t sigev_value;
|
sigval_t sigev_value;
|
||||||
int sigev_signo;
|
int sigev_signo;
|
||||||
int sigev_notify;
|
int sigev_notify;
|
||||||
void (*sigev_notify_function) __P ((sigval_t)); /* Function to start. */
|
void (*sigev_notify_function) __PMT ((sigval_t)); /* Function to start. */
|
||||||
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
||||||
} sigevent_t;
|
} sigevent_t;
|
||||||
|
|
||||||
|
|
20
db/db.h
20
db/db.h
|
@ -117,14 +117,14 @@ typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
|
||||||
/* Access method description structure. */
|
/* Access method description structure. */
|
||||||
typedef struct __db {
|
typedef struct __db {
|
||||||
DBTYPE type; /* Underlying db type. */
|
DBTYPE type; /* Underlying db type. */
|
||||||
int (*close) __P((struct __db *));
|
int (*close) __PMT((struct __db *));
|
||||||
int (*del) __P((const struct __db *, const DBT *, u_int));
|
int (*del) __PMT((const struct __db *, const DBT *, u_int));
|
||||||
int (*get) __P((const struct __db *, const DBT *, DBT *, u_int));
|
int (*get) __PMT((const struct __db *, const DBT *, DBT *, u_int));
|
||||||
int (*put) __P((const struct __db *, DBT *, const DBT *, u_int));
|
int (*put) __PMT((const struct __db *, DBT *, const DBT *, u_int));
|
||||||
int (*seq) __P((const struct __db *, DBT *, DBT *, u_int));
|
int (*seq) __PMT((const struct __db *, DBT *, DBT *, u_int));
|
||||||
int (*sync) __P((const struct __db *, u_int));
|
int (*sync) __PMT((const struct __db *, u_int));
|
||||||
void *internal; /* Access method private. */
|
void *internal; /* Access method private. */
|
||||||
int (*fd) __P((const struct __db *));
|
int (*fd) __PMT((const struct __db *));
|
||||||
} DB;
|
} DB;
|
||||||
|
|
||||||
#define BTREEMAGIC 0x053162
|
#define BTREEMAGIC 0x053162
|
||||||
|
@ -139,9 +139,9 @@ typedef struct {
|
||||||
int minkeypage; /* minimum keys per page */
|
int minkeypage; /* minimum keys per page */
|
||||||
u_int psize; /* page size */
|
u_int psize; /* page size */
|
||||||
int (*compare) /* comparison function */
|
int (*compare) /* comparison function */
|
||||||
__P((const DBT *, const DBT *));
|
__PMT((const DBT *, const DBT *));
|
||||||
size_t (*prefix) /* prefix function */
|
size_t (*prefix) /* prefix function */
|
||||||
__P((const DBT *, const DBT *));
|
__PMT((const DBT *, const DBT *));
|
||||||
int lorder; /* byte order */
|
int lorder; /* byte order */
|
||||||
} BTREEINFO;
|
} BTREEINFO;
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ typedef struct {
|
||||||
u_int nelem; /* number of elements */
|
u_int nelem; /* number of elements */
|
||||||
u_int cachesize; /* bytes to cache */
|
u_int cachesize; /* bytes to cache */
|
||||||
u_int32_t /* hash function */
|
u_int32_t /* hash function */
|
||||||
(*hash) __P((const void *, size_t));
|
(*hash) __PMT((const void *, size_t));
|
||||||
int lorder; /* byte order */
|
int lorder; /* byte order */
|
||||||
} HASHINFO;
|
} HASHINFO;
|
||||||
|
|
||||||
|
|
|
@ -70,9 +70,9 @@ typedef struct MPOOL {
|
||||||
u_long pagesize; /* file page size */
|
u_long pagesize; /* file page size */
|
||||||
int fd; /* file descriptor */
|
int fd; /* file descriptor */
|
||||||
/* page in conversion routine */
|
/* page in conversion routine */
|
||||||
void (*pgin) __P((void *, pgno_t, void *));
|
void (*pgin) __PMT((void *, pgno_t, void *));
|
||||||
/* page out conversion routine */
|
/* page out conversion routine */
|
||||||
void (*pgout) __P((void *, pgno_t, void *));
|
void (*pgout) __PMT((void *, pgno_t, void *));
|
||||||
void *pgcookie; /* cookie for page in/out routines */
|
void *pgcookie; /* cookie for page in/out routines */
|
||||||
#ifdef STATISTICS
|
#ifdef STATISTICS
|
||||||
u_long cachehit;
|
u_long cachehit;
|
||||||
|
|
16
inet/rcmd.c
16
inet/rcmd.c
|
@ -553,6 +553,7 @@ __ivaliduser2(hostf, raddr, luser, ruser, rhost)
|
||||||
int hcheck, ucheck;
|
int hcheck, ucheck;
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
size_t bufsize = 0;
|
size_t bufsize = 0;
|
||||||
|
int retval = -1;
|
||||||
|
|
||||||
while (__getline (&buf, &bufsize, hostf) > 0) {
|
while (__getline (&buf, &bufsize, hostf) > 0) {
|
||||||
buf[bufsize - 1] = '\0'; /* Make sure it's terminated. */
|
buf[bufsize - 1] = '\0'; /* Make sure it's terminated. */
|
||||||
|
@ -595,7 +596,7 @@ __ivaliduser2(hostf, raddr, luser, ruser, rhost)
|
||||||
hcheck = __icheckhost (raddr, buf, rhost);
|
hcheck = __icheckhost (raddr, buf, rhost);
|
||||||
|
|
||||||
if (hcheck < 0)
|
if (hcheck < 0)
|
||||||
return -1;
|
break;
|
||||||
|
|
||||||
if (hcheck) {
|
if (hcheck) {
|
||||||
/* Then check user part */
|
/* Then check user part */
|
||||||
|
@ -605,16 +606,21 @@ __ivaliduser2(hostf, raddr, luser, ruser, rhost)
|
||||||
ucheck = __icheckuser (user, ruser);
|
ucheck = __icheckuser (user, ruser);
|
||||||
|
|
||||||
/* Positive 'host user' match? */
|
/* Positive 'host user' match? */
|
||||||
if (ucheck > 0)
|
if (ucheck > 0) {
|
||||||
return 0;
|
retval = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Negative 'host -user' match? */
|
/* Negative 'host -user' match? */
|
||||||
if (ucheck < 0)
|
if (ucheck < 0)
|
||||||
return -1;
|
break;
|
||||||
|
|
||||||
/* Neither, go on looking for match */
|
/* Neither, go on looking for match */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
if (buf != NULL)
|
||||||
|
free (buf);
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
|
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ __BEGIN_DECLS
|
||||||
/* struct ypall_callback * is the arg which must be passed to yp_all */
|
/* struct ypall_callback * is the arg which must be passed to yp_all */
|
||||||
struct ypall_callback
|
struct ypall_callback
|
||||||
{
|
{
|
||||||
int (*foreach) __P ((int __status, char *__key, int __keylen,
|
int (*foreach) __PMT ((int __status, char *__key, int __keylen,
|
||||||
char *__val, int __vallen, char *__data));
|
char *__val, int __vallen, char *__data));
|
||||||
char *data;
|
char *data;
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,8 +24,10 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
|
#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
|
||||||
# undef __P
|
# if !defined __GLIBC__ || !defined __P
|
||||||
# define __P(protos) protos
|
# undef __P
|
||||||
|
# define __P(protos) protos
|
||||||
|
# endif
|
||||||
#else /* Not C++ or ANSI C. */
|
#else /* Not C++ or ANSI C. */
|
||||||
# undef __P
|
# undef __P
|
||||||
# define __P(protos) ()
|
# define __P(protos) ()
|
||||||
|
|
18
posix/glob.h
18
posix/glob.h
|
@ -24,15 +24,17 @@ extern "C" {
|
||||||
|
|
||||||
#undef __ptr_t
|
#undef __ptr_t
|
||||||
#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
|
#if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
|
||||||
# undef __P
|
# if !defined __GLIBC__ || !defined __P
|
||||||
# undef __PMT
|
# undef __P
|
||||||
# define __P(protos) protos
|
# undef __PMT
|
||||||
# define __PMT(protos) protos
|
# define __P(protos) protos
|
||||||
# define __ptr_t void *
|
# define __PMT(protos) protos
|
||||||
# if !defined __GNUC__ || __GNUC__ < 2
|
# if !defined __GNUC__ || __GNUC__ < 2
|
||||||
# undef __const
|
# undef __const
|
||||||
# define __const const
|
# define __const const
|
||||||
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# define __ptr_t void *
|
||||||
#else /* Not C++ or ANSI C. */
|
#else /* Not C++ or ANSI C. */
|
||||||
# undef __P
|
# undef __P
|
||||||
# undef __PMT
|
# undef __PMT
|
||||||
|
|
|
@ -33,7 +33,7 @@ enum
|
||||||
WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
|
WRDE_SHOWERR = (1 << 4), /* Don't redirect stderr to /dev/null. */
|
||||||
WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
|
WRDE_UNDEF = (1 << 5), /* Error for expanding undefined variables. */
|
||||||
__WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
|
__WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
|
||||||
WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF),
|
WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Structure describing a word-expansion run. */
|
/* Structure describing a word-expansion run. */
|
||||||
|
|
|
@ -22,17 +22,24 @@ main (int argc, char *argv[])
|
||||||
name = tmpnam (NULL);
|
name = tmpnam (NULL);
|
||||||
fp = fopen (name, "w");
|
fp = fopen (name, "w");
|
||||||
assert (fp != NULL)
|
assert (fp != NULL)
|
||||||
fputs ("bl", fp);
|
fputs ("bla", fp);
|
||||||
fclose (fp);
|
fclose (fp);
|
||||||
fp = NULL;
|
fp = NULL;
|
||||||
|
|
||||||
fp = fopen (name, "r");
|
fp = fopen (name, "r");
|
||||||
assert (fp != NULL)
|
assert (fp != NULL);
|
||||||
assert (getc (fp) != EOF);
|
assert (ungetc ('z', fp) == 'z');
|
||||||
assert ((c = getc (fp)) != EOF);
|
assert (getc (fp) == 'z');
|
||||||
|
assert (getc (fp) == 'b');
|
||||||
|
assert (getc (fp) == 'l');
|
||||||
|
assert (ungetc ('m', fp) == 'm');
|
||||||
|
assert (getc (fp) == 'm');
|
||||||
|
assert ((c = getc (fp)) == 'a');
|
||||||
assert (getc (fp) == EOF);
|
assert (getc (fp) == EOF);
|
||||||
assert (ungetc (c, fp) == c);
|
assert (ungetc (c, fp) == c);
|
||||||
assert (feof (fp) == 0);
|
assert (feof (fp) == 0);
|
||||||
|
assert (getc (fp) == c);
|
||||||
|
assert (getc (fp) == EOF);
|
||||||
|
|
||||||
the_end:
|
the_end:
|
||||||
if (fp != NULL)
|
if (fp != NULL)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* siginfo_t, sigevent and constants. Stub version.
|
/* siginfo_t, sigevent and constants. Stub version.
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -185,7 +185,7 @@ typedef struct sigevent
|
||||||
sigval_t sigev_value;
|
sigval_t sigev_value;
|
||||||
int sigev_signo;
|
int sigev_signo;
|
||||||
int sigev_notify;
|
int sigev_notify;
|
||||||
void (*sigev_notify_function) __P ((sigval_t)); /* Function to start. */
|
void (*sigev_notify_function) __PMT ((sigval_t)); /* Function to start. */
|
||||||
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
||||||
} sigevent_t;
|
} sigevent_t;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* `ptrace' debugger support interface. Generic version; constants are common.
|
/* `ptrace' debugger support interface. Generic version; constants are common.
|
||||||
Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
|
Copyright (C) 1991, 1992, 1996, 1998 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -119,7 +119,7 @@ enum __ptrace_request
|
||||||
|
|
||||||
/* Write the floating-point accelerator unit registers from
|
/* Write the floating-point accelerator unit registers from
|
||||||
the contents of the `struct fpa_regs' at ADDR. */
|
the contents of the `struct fpa_regs' at ADDR. */
|
||||||
PTRACE_SETFPAREGS,
|
PTRACE_SETFPAREGS
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Perform process tracing functions. REQUEST is one of the values
|
/* Perform process tracing functions. REQUEST is one of the values
|
||||||
|
|
|
@ -7,6 +7,7 @@ kernel_stat.h
|
||||||
kernel_termios.h
|
kernel_termios.h
|
||||||
ldd-rewrite.sed
|
ldd-rewrite.sed
|
||||||
lddlibc4.c
|
lddlibc4.c
|
||||||
|
linux_fsinfo.h
|
||||||
llseek.c
|
llseek.c
|
||||||
s_pread64.c
|
s_pread64.c
|
||||||
s_pwrite64.c
|
s_pwrite64.c
|
||||||
|
|
|
@ -22,9 +22,7 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <sys/statfs.h>
|
#include <sys/statfs.h>
|
||||||
|
|
||||||
#define EXT2_SUPER_MAGIC 0xef53
|
#include <linux_fsinfo.h>
|
||||||
#define UFS_MAGIC 0x00011954
|
|
||||||
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
|
|
||||||
|
|
||||||
static long int default_fpathconf (int fd, int name);
|
static long int default_fpathconf (int fd, int name);
|
||||||
|
|
||||||
|
@ -55,6 +53,46 @@ __fpathconf (fd, name)
|
||||||
/* This filesystem supported files >2GB. */
|
/* This filesystem supported files >2GB. */
|
||||||
return 64;
|
return 64;
|
||||||
}
|
}
|
||||||
|
if (name == _PC_LINK_MAX)
|
||||||
|
{
|
||||||
|
struct statfs fsbuf;
|
||||||
|
|
||||||
|
/* Determine the filesystem type. */
|
||||||
|
if (__fstatfs (fd, &fsbuf) < 0)
|
||||||
|
/* not possible, return the default value. */
|
||||||
|
return LINK_MAX;
|
||||||
|
|
||||||
|
switch (fsbuf.f_type)
|
||||||
|
{
|
||||||
|
case EXT2_SUPER_MAGIC:
|
||||||
|
return EXT2_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX_SUPER_MAGIC:
|
||||||
|
case MINIX_SUPER_MAGIC2:
|
||||||
|
return MINIX_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX2_SUPER_MAGIC:
|
||||||
|
case MINIX2_SUPER_MAGIC2:
|
||||||
|
return MINIX2_LINK_MAX;
|
||||||
|
|
||||||
|
case XENIX_SUPER_MAGIC:
|
||||||
|
return XENIX_LINK_MAX;
|
||||||
|
|
||||||
|
case SYSV4_SUPER_MAGIC:
|
||||||
|
case SYSV2_SUPER_MAGIC:
|
||||||
|
return SYSV_LINK_MAX;
|
||||||
|
|
||||||
|
case COH_SUPER_MAGIC:
|
||||||
|
return COH_LINK_MAX;
|
||||||
|
|
||||||
|
case UFS_MAGIC:
|
||||||
|
case UFS_CIGAM:
|
||||||
|
return UFS_LINK_MAX;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return LINK_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Fallback to the generic version. */
|
/* Fallback to the generic version. */
|
||||||
return default_fpathconf (fd, name);
|
return default_fpathconf (fd, name);
|
||||||
|
|
|
@ -23,9 +23,7 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/statfs.h>
|
#include <sys/statfs.h>
|
||||||
|
|
||||||
#define EXT2_SUPER_MAGIC 0xef53
|
#include <linux_fsinfo.h>
|
||||||
#define UFS_MAGIC 0x00011954
|
|
||||||
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
|
|
||||||
|
|
||||||
static long int default_pathconf (const char *path, int name);
|
static long int default_pathconf (const char *path, int name);
|
||||||
|
|
||||||
|
@ -48,6 +46,46 @@ __pathconf (const char *path, int name)
|
||||||
/* This filesystem supported files >2GB. */
|
/* This filesystem supported files >2GB. */
|
||||||
return 64;
|
return 64;
|
||||||
}
|
}
|
||||||
|
if (name == _PC_LINK_MAX)
|
||||||
|
{
|
||||||
|
struct statfs fsbuf;
|
||||||
|
|
||||||
|
/* Determine the filesystem type. */
|
||||||
|
if (__statfs (fd, &fsbuf) < 0)
|
||||||
|
/* not possible, return the default value. */
|
||||||
|
return LINK_MAX;
|
||||||
|
|
||||||
|
switch (fsbuf.f_type)
|
||||||
|
{
|
||||||
|
case EXT2_SUPER_MAGIC:
|
||||||
|
return EXT2_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX_SUPER_MAGIC:
|
||||||
|
case MINIX_SUPER_MAGIC2:
|
||||||
|
return MINIX_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX2_SUPER_MAGIC:
|
||||||
|
case MINIX2_SUPER_MAGIC2:
|
||||||
|
return MINIX2_LINK_MAX;
|
||||||
|
|
||||||
|
case XENIX_SUPER_MAGIC:
|
||||||
|
return XENIX_LINK_MAX;
|
||||||
|
|
||||||
|
case SYSV4_SUPER_MAGIC:
|
||||||
|
case SYSV2_SUPER_MAGIC:
|
||||||
|
return SYSV_LINK_MAX;
|
||||||
|
|
||||||
|
case COH_SUPER_MAGIC:
|
||||||
|
return COH_LINK_MAX;
|
||||||
|
|
||||||
|
case UFS_MAGIC:
|
||||||
|
case UFS_CIGAM:
|
||||||
|
return UFS_LINK_MAX;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return LINK_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Fallback to the generic version. */
|
/* Fallback to the generic version. */
|
||||||
return default_pathconf (path, name);
|
return default_pathconf (path, name);
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
Fortunately 2.0 puts a magic number in the first word and this is not
|
Fortunately 2.0 puts a magic number in the first word and this is not
|
||||||
a legal value for `trap_no', so we can tell them apart. */
|
a legal value for `trap_no', so we can tell them apart. */
|
||||||
|
|
||||||
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
union k_sigcontext
|
union k_sigcontext
|
||||||
{
|
{
|
||||||
struct
|
struct
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
Boston, MA 02111-1307, USA. */
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <asm/ptrace.h>
|
|
||||||
#include <bits/armsigctx.h>
|
#include <bits/armsigctx.h>
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
.type C_SYMBOL_NAME(errno),%object
|
.type C_SYMBOL_NAME(errno),%object
|
||||||
.size C_SYMBOL_NAME(errno),4
|
.size C_SYMBOL_NAME(errno),4
|
||||||
C_SYMBOL_NAME(errno): .zero 4
|
C_SYMBOL_NAME(errno): .zero 4
|
||||||
weak_alias (C_SYMBOL_NAME(errno), C_SYMBOL_NAME(_errno))
|
weak_alias (errno, _errno)
|
||||||
.text
|
.text
|
||||||
|
|
||||||
/* The syscall stubs jump here when they detect an error.
|
/* The syscall stubs jump here when they detect an error.
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* Linux specific extensions to fpathconf.
|
||||||
|
Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <sys/statfs.h>
|
||||||
|
|
||||||
|
#include "linux_fsinfo.h"
|
||||||
|
|
||||||
|
static long int posix_fpathconf (int fd, int name);
|
||||||
|
|
||||||
|
|
||||||
|
/* Get file-specific information about descriptor FD. */
|
||||||
|
long int
|
||||||
|
__fpathconf (fd, name)
|
||||||
|
int fd;
|
||||||
|
int name;
|
||||||
|
{
|
||||||
|
if (name == _PC_LINK_MAX)
|
||||||
|
{
|
||||||
|
struct statfs fsbuf;
|
||||||
|
|
||||||
|
/* Determine the filesystem type. */
|
||||||
|
if (__fstatfs (fd, &fsbuf) < 0)
|
||||||
|
/* not possible, return the default value. */
|
||||||
|
return LINK_MAX;
|
||||||
|
|
||||||
|
switch (fsbuf.f_type)
|
||||||
|
{
|
||||||
|
case EXT2_SUPER_MAGIC:
|
||||||
|
return EXT2_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX_SUPER_MAGIC:
|
||||||
|
case MINIX_SUPER_MAGIC2:
|
||||||
|
return MINIX_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX2_SUPER_MAGIC:
|
||||||
|
case MINIX2_SUPER_MAGIC2:
|
||||||
|
return MINIX2_LINK_MAX;
|
||||||
|
|
||||||
|
case XENIX_SUPER_MAGIC:
|
||||||
|
return XENIX_LINK_MAX;
|
||||||
|
|
||||||
|
case SYSV4_SUPER_MAGIC:
|
||||||
|
case SYSV2_SUPER_MAGIC:
|
||||||
|
return SYSV_LINK_MAX;
|
||||||
|
|
||||||
|
case COH_SUPER_MAGIC:
|
||||||
|
return COH_LINK_MAX;
|
||||||
|
|
||||||
|
case UFS_MAGIC:
|
||||||
|
case UFS_CIGAM:
|
||||||
|
return UFS_LINK_MAX;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return LINK_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return posix_fpathconf (fd, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __fpathconf static posix_fpathconf
|
||||||
|
#include <sysdeps/posix/fpathconf.c>
|
|
@ -26,31 +26,7 @@
|
||||||
#include <sys/statfs.h>
|
#include <sys/statfs.h>
|
||||||
#include <sys/statvfs.h>
|
#include <sys/statvfs.h>
|
||||||
|
|
||||||
/* These definitions come from the kernel headers. But we cannot
|
#include "linux_fsinfo.h"
|
||||||
include the headers here because of type clashes. If new
|
|
||||||
filesystem types will become available we have to add the
|
|
||||||
appropriate definitions here.*/
|
|
||||||
#define ADFS_SUPER_MAGIC 0xadf5
|
|
||||||
#define AFFS_SUPER_MAGIC 0xadff
|
|
||||||
#define CODA_SUPER_MAGIC 0x73757245
|
|
||||||
#define EXT2_SUPER_MAGIC 0xef53
|
|
||||||
#define HPFS_SUPER_MAGIC 0xf995e849
|
|
||||||
#define ISOFS_SUPER_MAGIC 0x9660
|
|
||||||
#define MINIX_SUPER_MAGIC 0x137f
|
|
||||||
#define MINIX_SUPER_MAGIC2 0x138F
|
|
||||||
#define MINIX2_SUPER_MAGIC 0x2468
|
|
||||||
#define MINIX2_SUPER_MAGIC2 0x2478
|
|
||||||
#define MSDOS_SUPER_MAGIC 0x4d44
|
|
||||||
#define NCP_SUPER_MAGIC 0x564c
|
|
||||||
#define NFS_SUPER_MAGIC 0x6969
|
|
||||||
#define PROC_SUPER_MAGIC 0x9fa0
|
|
||||||
#define SMB_SUPER_MAGIC 0x517b
|
|
||||||
#define XENIX_SUPER_MAGIC 0x012ff7b4
|
|
||||||
#define SYSV4_SUPER_MAGIC 0x012ff7b5
|
|
||||||
#define SYSV2_SUPER_MAGIC 0x012ff7b6
|
|
||||||
#define COH_SUPER_MAGIC 0x012ff7b7
|
|
||||||
#define UFS_MAGIC 0x00011954
|
|
||||||
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/* Constants from kernel header for various FSes.
|
||||||
|
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#ifndef _LINUX_FSINFO_H
|
||||||
|
#define _LINUX_FSINFO_H 1
|
||||||
|
|
||||||
|
/* These definitions come from the kernel headers. But we cannot
|
||||||
|
include the headers here because of type clashes. If new
|
||||||
|
filesystem types will become available we have to add the
|
||||||
|
appropriate definitions here.*/
|
||||||
|
#define ADFS_SUPER_MAGIC 0xadf5
|
||||||
|
#define AFFS_SUPER_MAGIC 0xadff
|
||||||
|
#define CODA_SUPER_MAGIC 0x73757245
|
||||||
|
#define EXT2_SUPER_MAGIC 0xef53
|
||||||
|
#define HPFS_SUPER_MAGIC 0xf995e849
|
||||||
|
#define ISOFS_SUPER_MAGIC 0x9660
|
||||||
|
#define MINIX_SUPER_MAGIC 0x137f
|
||||||
|
#define MINIX_SUPER_MAGIC2 0x138F
|
||||||
|
#define MINIX2_SUPER_MAGIC 0x2468
|
||||||
|
#define MINIX2_SUPER_MAGIC2 0x2478
|
||||||
|
#define MSDOS_SUPER_MAGIC 0x4d44
|
||||||
|
#define NCP_SUPER_MAGIC 0x564c
|
||||||
|
#define NFS_SUPER_MAGIC 0x6969
|
||||||
|
#define PROC_SUPER_MAGIC 0x9fa0
|
||||||
|
#define SMB_SUPER_MAGIC 0x517b
|
||||||
|
#define XENIX_SUPER_MAGIC 0x012ff7b4
|
||||||
|
#define SYSV4_SUPER_MAGIC 0x012ff7b5
|
||||||
|
#define SYSV2_SUPER_MAGIC 0x012ff7b6
|
||||||
|
#define COH_SUPER_MAGIC 0x012ff7b7
|
||||||
|
#define UFS_MAGIC 0x00011954
|
||||||
|
#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
|
||||||
|
|
||||||
|
/* Maximum link counts. */
|
||||||
|
#define EXT2_LINK_MAX 32000
|
||||||
|
#define MINIX_LINK_MAX 250
|
||||||
|
#define MINIX2_LINK_MAX 65530
|
||||||
|
#define XENIX_LINK_MAX 126 /* ?? */
|
||||||
|
#define SYSV_LINK_MAX 126 /* 127? 251? */
|
||||||
|
#define COH_LINK_MAX 10000
|
||||||
|
#define UFS_LINK_MAX EXT2_LINK_MAX
|
||||||
|
|
||||||
|
#endif /* linux_fsinfo.h */
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* Linux specific extensions to pathconf.
|
||||||
|
Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <limits.h>
|
||||||
|
#include <sys/statfs.h>
|
||||||
|
|
||||||
|
#include "linux_fsinfo.h"
|
||||||
|
|
||||||
|
static long int posix_pathconf (const char *path, int name);
|
||||||
|
|
||||||
|
|
||||||
|
/* Get file-specific information about descriptor FD. */
|
||||||
|
long int
|
||||||
|
__pathconf (path, name)
|
||||||
|
const char *path;
|
||||||
|
int name;
|
||||||
|
{
|
||||||
|
if (name == _PC_LINK_MAX)
|
||||||
|
{
|
||||||
|
struct statfs fsbuf;
|
||||||
|
|
||||||
|
/* Determine the filesystem type. */
|
||||||
|
if (__statfs (path, &fsbuf) < 0)
|
||||||
|
/* not possible, return the default value. */
|
||||||
|
return LINK_MAX;
|
||||||
|
|
||||||
|
switch (fsbuf.f_type)
|
||||||
|
{
|
||||||
|
case EXT2_SUPER_MAGIC:
|
||||||
|
return EXT2_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX_SUPER_MAGIC:
|
||||||
|
case MINIX_SUPER_MAGIC2:
|
||||||
|
return MINIX_LINK_MAX;
|
||||||
|
|
||||||
|
case MINIX2_SUPER_MAGIC:
|
||||||
|
case MINIX2_SUPER_MAGIC2:
|
||||||
|
return MINIX2_LINK_MAX;
|
||||||
|
|
||||||
|
case XENIX_SUPER_MAGIC:
|
||||||
|
return XENIX_LINK_MAX;
|
||||||
|
|
||||||
|
case SYSV4_SUPER_MAGIC:
|
||||||
|
case SYSV2_SUPER_MAGIC:
|
||||||
|
return SYSV_LINK_MAX;
|
||||||
|
|
||||||
|
case COH_SUPER_MAGIC:
|
||||||
|
return COH_LINK_MAX;
|
||||||
|
|
||||||
|
case UFS_MAGIC:
|
||||||
|
case UFS_CIGAM:
|
||||||
|
return UFS_LINK_MAX;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return LINK_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return posix_pathconf (path, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define __pathconf static posix_pathconf
|
||||||
|
#include <sysdeps/posix/pathconf.c>
|
|
@ -99,7 +99,7 @@ enum __ptrace_request
|
||||||
#define PT_DETACH PTRACE_DETACH
|
#define PT_DETACH PTRACE_DETACH
|
||||||
|
|
||||||
/* Continue and stop at the next (return from) syscall. */
|
/* Continue and stop at the next (return from) syscall. */
|
||||||
PTRACE_SYSCALL = 24,
|
PTRACE_SYSCALL = 24
|
||||||
#define PTRACE_SYSCALL PTRACE_SYSCALL
|
#define PTRACE_SYSCALL PTRACE_SYSCALL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue