mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
(abmon): Remove spaces.
1998-11-12 Ulrich Drepper <drepper@cygnus.com> * locales/el_GR (abmon): Remove spaces at end of strings.
This commit is contained in:
parent
055778f396
commit
085320f505
@ -81,9 +81,9 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
|
||||
not happen we do something more optimal. */
|
||||
|
||||
#ifdef ELF_MACHINE_PLTREL_OVERLAP
|
||||
#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, lazy) \
|
||||
#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \
|
||||
do { \
|
||||
struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \
|
||||
struct { ElfW(Addr) start, size; int lazy; } ranges[3]; \
|
||||
int ranges_index; \
|
||||
\
|
||||
ranges[0].lazy = ranges[2].lazy = 0; \
|
||||
@ -96,7 +96,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
|
||||
ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val; \
|
||||
} \
|
||||
\
|
||||
if ((lazy) \
|
||||
if ((do_lazy) \
|
||||
&& (map)->l_info[DT_PLTREL] \
|
||||
&& (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC) \
|
||||
{ \
|
||||
@ -114,9 +114,9 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
|
||||
ranges[ranges_index].lazy); \
|
||||
} while (0)
|
||||
#else
|
||||
#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, lazy) \
|
||||
#define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy) \
|
||||
do { \
|
||||
struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \
|
||||
struct { ElfW(Addr) start, size; int lazy; } ranges[2]; \
|
||||
int ranges_index; \
|
||||
ranges[0].lazy = 0; \
|
||||
ranges[0].size = ranges[1].size = 0; \
|
||||
@ -132,7 +132,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
|
||||
{ \
|
||||
ElfW(Addr) start = (map)->l_info[DT_JMPREL]->d_un.d_ptr; \
|
||||
\
|
||||
if (lazy \
|
||||
if ((do_lazy) \
|
||||
/* This test does not only detect whether the relocation \
|
||||
sections are in the right order, it also checks whether \
|
||||
there is a DT_REL/DT_RELA section. */ \
|
||||
@ -140,7 +140,7 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
|
||||
{ \
|
||||
ranges[1].start = start; \
|
||||
ranges[1].size = (map)->l_info[DT_PLTRELSZ]->d_un.d_val; \
|
||||
ranges[1].lazy = lazy; \
|
||||
ranges[1].lazy = (do_lazy); \
|
||||
} \
|
||||
else \
|
||||
/* Combine processing the sections. */ \
|
||||
|
@ -1 +1 @@
|
||||
#include <protocols/routed.h>
|
||||
#include <inet/protocols/routed.h>
|
||||
|
@ -1 +1 @@
|
||||
#include <protocols/rwhod.h>
|
||||
#include <inet/protocols/rwhod.h>
|
||||
|
@ -1 +1 @@
|
||||
#include <protocols/talkd.h>
|
||||
#include <inet/protocols/talkd.h>
|
||||
|
@ -1 +1 @@
|
||||
#include <protocols/timed.h>
|
||||
#include <inet/protocols/timed.h>
|
||||
|
@ -41,14 +41,20 @@ enum
|
||||
IPPROTO_PUP = 12, /* PUP protocol. */
|
||||
IPPROTO_UDP = 17, /* User Datagram Protocol. */
|
||||
IPPROTO_IDP = 22, /* XNS IDP protocol. */
|
||||
IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */
|
||||
IPPROTO_IPV6 = 41, /* IPv6 header. */
|
||||
IPPROTO_ROUTING = 43, /* IPv6 routing header. */
|
||||
IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */
|
||||
IPPROTO_RSVP = 46, /* Reservation Protocol. */
|
||||
IPPROTO_GRE = 47, /* General Routing Encapsulation. */
|
||||
IPPROTO_ESP = 50, /* encapsulating security payload. */
|
||||
IPPROTO_AH = 51, /* authentication header. */
|
||||
IPPROTO_ICMPV6 = 58, /* ICMPv6. */
|
||||
IPPROTO_NONE = 59, /* IPv6 no next header. */
|
||||
IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */
|
||||
IPPROTO_MTP = 92, /* Multicast Transport Protocol. */
|
||||
IPPROTO_ENCAP = 98, /* Encapsulation Header. */
|
||||
IPPROTO_PIM = 103, /* Protocol Independent Multicast. */
|
||||
IPPROTO_RAW = 255, /* Raw IP packets. */
|
||||
IPPROTO_MAX
|
||||
};
|
||||
|
@ -21,7 +21,7 @@
|
||||
#
|
||||
subdir := libio
|
||||
|
||||
headers := stdio.h libio.h _G_config.h
|
||||
headers := stdio.h libio.h _G_config.h bits/stdio.h
|
||||
|
||||
routines := \
|
||||
filedoalloc iofclose iofdopen iofflush iofgetpos iofgets iofopen \
|
||||
|
160
libio/bits/stdio.h
Normal file
160
libio/bits/stdio.h
Normal file
@ -0,0 +1,160 @@
|
||||
/* Optimizing macros and inline functions for stdio functions.
|
||||
Copyright (C) 198 Free Software Foundation, Inc.
|
||||
|
||||
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 _STDIO_H
|
||||
# error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define __STDIO_INLINE inline
|
||||
#else
|
||||
# define __STDIO_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
/* Write formatted output to stdout from argument list ARG. */
|
||||
__STDIO_INLINE int
|
||||
vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
|
||||
{
|
||||
return vfprintf (stdout, __fmt, __arg);
|
||||
}
|
||||
|
||||
/* Read a character from stdin. */
|
||||
__STDIO_INLINE int
|
||||
getchar (void) __THROW
|
||||
{
|
||||
return _IO_getc (stdin);
|
||||
}
|
||||
|
||||
|
||||
# if defined __USE_POSIX || defined __USE_MISC
|
||||
/* This is defined in POSIX.1:1996. */
|
||||
__STDIO_INLINE int
|
||||
getc_unlocked (FILE *__fp) __THROW
|
||||
{
|
||||
return _IO_getc_unlocked (__fp);
|
||||
}
|
||||
|
||||
/* This is defined in POSIX.1:1996. */
|
||||
__STDIO_INLINE int
|
||||
getchar_unlocked (void) __THROW
|
||||
{
|
||||
return _IO_getc_unlocked (stdin);
|
||||
}
|
||||
# endif /* POSIX || misc */
|
||||
|
||||
|
||||
/* Write a character to stdout. */
|
||||
__STDIO_INLINE int
|
||||
putchar (int __c) __THROW
|
||||
{
|
||||
return _IO_putc (__c, stdout);
|
||||
}
|
||||
|
||||
|
||||
# ifdef __USE_MISC
|
||||
/* Faster version when locking is not necessary. */
|
||||
__STDIO_INLINE int
|
||||
fputc_unlocked (int __c, FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, __stream);
|
||||
}
|
||||
# endif /* misc */
|
||||
|
||||
|
||||
# if defined __USE_POSIX || defined __USE_MISC
|
||||
/* This is defined in POSIX.1:1996. */
|
||||
__STDIO_INLINE int
|
||||
putc_unlocked (int __c, FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, __stream);
|
||||
}
|
||||
|
||||
/* This is defined in POSIX.1:1996. */
|
||||
__STDIO_INLINE int
|
||||
putchar_unlocked (int __c) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, stdout);
|
||||
}
|
||||
# endif /* POSIX || misc */
|
||||
|
||||
|
||||
# ifdef __USE_GNU
|
||||
/* Like `getdelim', but reads up to a newline. */
|
||||
__STDIO_INLINE _IO_ssize_t
|
||||
getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
|
||||
{
|
||||
return __getdelim (__lineptr, __n, '\n', __stream);
|
||||
}
|
||||
# endif /* GNU */
|
||||
|
||||
|
||||
# ifdef __USE_MISC
|
||||
/* Faster versions when locking is not required. */
|
||||
__STDIO_INLINE int
|
||||
feof_unlocked (FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_feof_unlocked (__stream);
|
||||
}
|
||||
|
||||
/* Faster versions when locking is not required. */
|
||||
__STDIO_INLINE int
|
||||
ferror_unlocked (FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_ferror_unlocked (__stream);
|
||||
}
|
||||
# endif /* misc */
|
||||
|
||||
#endif /* Use extern inlines. */
|
||||
|
||||
|
||||
#if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__
|
||||
/* Perform some simple optimizations. */
|
||||
# define fread_unlocked(ptr, size, n, stream) \
|
||||
(__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \
|
||||
&& (size_t) ((size) * (n)) <= 8) \
|
||||
? ({ char *__ptr = (char *) (ptr); \
|
||||
FILE *__stream = (stream); \
|
||||
int __c; \
|
||||
size_t __cnt = (size) * (n); \
|
||||
while (__cnt-- > 0) \
|
||||
{ \
|
||||
__c = _IO_getc_unlocked (__stream); \
|
||||
if (__c == EOF) \
|
||||
break; \
|
||||
*__ptr++ = __c; \
|
||||
} \
|
||||
((size_t) ((size) * (n)) - __cnt) / (size); }) \
|
||||
: fread_unlocked (ptr, size, n, stream)))
|
||||
|
||||
# define fwrite_unlocked(ptr, size, n, stream) \
|
||||
(__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \
|
||||
&& (size_t) ((size) * (n)) <= 8) \
|
||||
? ({ const char *__ptr = (const char *) (ptr); \
|
||||
FILE *__stream = (stream); \
|
||||
size_t __cnt = (size) * (n); \
|
||||
while (__cnt-- > 0) \
|
||||
if (_IO_putc_unlocked (*__ptr++, __stream) == EOF) \
|
||||
break; \
|
||||
((size_t) ((size) * (n)) - __cnt) / (size); }) \
|
||||
: fwrite_unlocked (ptr, size, n, stream)))
|
||||
#endif
|
||||
|
||||
/* Define helper macro. */
|
||||
#undef __STDIO_INLINE
|
@ -32,7 +32,7 @@ _IO_fread (buf, size, count, fp)
|
||||
_IO_size_t count;
|
||||
_IO_FILE *fp;
|
||||
{
|
||||
_IO_size_t bytes_requested = size*count;
|
||||
_IO_size_t bytes_requested = size * count;
|
||||
_IO_size_t bytes_read;
|
||||
CHECK_FILE (fp, 0);
|
||||
if (bytes_requested == 0)
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "libioP.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#undef fread_unlocked
|
||||
|
||||
_IO_size_t
|
||||
fread_unlocked (buf, size, count, fp)
|
||||
void *buf;
|
||||
@ -33,7 +35,7 @@ fread_unlocked (buf, size, count, fp)
|
||||
_IO_size_t count;
|
||||
_IO_FILE *fp;
|
||||
{
|
||||
_IO_size_t bytes_requested = size*count;
|
||||
_IO_size_t bytes_requested = size * count;
|
||||
_IO_size_t bytes_read;
|
||||
CHECK_FILE (fp, 0);
|
||||
if (bytes_requested == 0)
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "libioP.h"
|
||||
#include <stdio.h>
|
||||
|
||||
#undef fwrite_unlocked
|
||||
|
||||
_IO_size_t
|
||||
fwrite_unlocked (buf, size, count, fp)
|
||||
const void *buf;
|
||||
|
@ -56,12 +56,6 @@ typedef struct _IO_FILE FILE;
|
||||
|
||||
#include <libio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define __STDIO_INLINE inline
|
||||
#else
|
||||
# define __STDIO_INLINE extern __inline
|
||||
#endif
|
||||
|
||||
/* The type of the second argument to `fgetpos' and `fsetpos'. */
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
typedef _G_fpos_t fpos_t;
|
||||
@ -267,14 +261,6 @@ extern int vsprintf __P ((char *__restrict __s,
|
||||
__const char *__restrict __format,
|
||||
_G_va_list __arg));
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
|
||||
{
|
||||
return vfprintf (stdout, __fmt, __arg);
|
||||
}
|
||||
#endif /* Use extern inlines. */
|
||||
|
||||
#if defined __USE_BSD || defined __USE_ISOC9X || defined __USE_UNIX98
|
||||
/* Maximum chars of output to write in MAXLEN. */
|
||||
extern int snprintf __P ((char *__restrict __s, size_t __maxlen,
|
||||
@ -352,32 +338,10 @@ extern int getchar __P ((void));
|
||||
optimization for it. */
|
||||
#define getc(_fp) _IO_getc (_fp)
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
getchar (void) __THROW
|
||||
{
|
||||
return _IO_getc (stdin);
|
||||
}
|
||||
#endif /* Use extern inlines. */
|
||||
|
||||
#if defined __USE_POSIX || defined __USE_MISC
|
||||
/* These are defined in POSIX.1:1996. */
|
||||
extern int getc_unlocked __P ((FILE *__stream));
|
||||
extern int getchar_unlocked __P ((void));
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
getc_unlocked (FILE *__fp) __THROW
|
||||
{
|
||||
return _IO_getc_unlocked (__fp);
|
||||
}
|
||||
|
||||
__STDIO_INLINE int
|
||||
getchar_unlocked (void) __THROW
|
||||
{
|
||||
return _IO_getc_unlocked (stdin);
|
||||
}
|
||||
# endif /* Use extern inlines. */
|
||||
#endif /* Use POSIX or MISC. */
|
||||
|
||||
|
||||
@ -392,45 +356,15 @@ extern int putchar __P ((int __c));
|
||||
so we always do the optimization for it. */
|
||||
#define putc(_ch, _fp) _IO_putc (_ch, _fp)
|
||||
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
putchar (int __c) __THROW
|
||||
{
|
||||
return _IO_putc (__c, stdout);
|
||||
}
|
||||
#endif /* Use extern inlines. */
|
||||
|
||||
#ifdef __USE_MISC
|
||||
/* Faster version when locking is not necessary. */
|
||||
extern int fputc_unlocked __P ((int __c, FILE *__stream));
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
fputc_unlocked (int __c, FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, __stream);
|
||||
}
|
||||
# endif /* Use extern inlines. */
|
||||
#endif /* Use MISC. */
|
||||
|
||||
#if defined __USE_POSIX || defined __USE_MISC
|
||||
/* These are defined in POSIX.1:1996. */
|
||||
extern int putc_unlocked __P ((int __c, FILE *__stream));
|
||||
extern int putchar_unlocked __P ((int __c));
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
putc_unlocked (int __c, FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, __stream);
|
||||
}
|
||||
|
||||
__STDIO_INLINE int
|
||||
putchar_unlocked (int __c) __THROW
|
||||
{
|
||||
return _IO_putc_unlocked (__c, stdout);
|
||||
}
|
||||
# endif /* Use extern inlines. */
|
||||
#endif /* Use POSIX or MISC. */
|
||||
|
||||
|
||||
@ -472,14 +406,6 @@ extern _IO_ssize_t getdelim __P ((char **__lineptr, size_t *__n,
|
||||
/* Like `getdelim', but reads up to a newline. */
|
||||
extern _IO_ssize_t getline __P ((char **__lineptr, size_t *__n,
|
||||
FILE *__stream));
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE _IO_ssize_t
|
||||
getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
|
||||
{
|
||||
return __getdelim (__lineptr, __n, '\n', __stream);
|
||||
}
|
||||
# endif /* Use extern inlines. */
|
||||
#endif
|
||||
|
||||
|
||||
@ -603,20 +529,6 @@ extern int ferror __P ((FILE *__stream));
|
||||
extern void clearerr_unlocked __P ((FILE *__stream));
|
||||
extern int feof_unlocked __P ((FILE *__stream));
|
||||
extern int ferror_unlocked __P ((FILE *__stream));
|
||||
|
||||
# ifdef __USE_EXTERN_INLINES
|
||||
__STDIO_INLINE int
|
||||
feof_unlocked (FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_feof_unlocked (__stream);
|
||||
}
|
||||
|
||||
__STDIO_INLINE int
|
||||
ferror_unlocked (FILE *__stream) __THROW
|
||||
{
|
||||
return _IO_ferror_unlocked (__stream);
|
||||
}
|
||||
# endif /* Use extern inlines. */
|
||||
#endif
|
||||
|
||||
|
||||
@ -702,10 +614,13 @@ extern void funlockfile __P ((FILE *__stream));
|
||||
# include <getopt.h>
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
/* If we are compiling with optimizing read this file. It contains
|
||||
several optizing inline functions and macros. */
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
# include <bits/stdio.h>
|
||||
#endif
|
||||
|
||||
/* Define helper macro. */
|
||||
#undef __STDIO_INLINE
|
||||
__END_DECLS
|
||||
|
||||
#endif /* <stdio.h> included. */
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
1998-11-12 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* locales/el_GR (abmon): Remove spaces at end of strings.
|
||||
|
||||
1998-10-20 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* tests/test1.cm: Add missing character definitions to read POSIX
|
||||
|
@ -3097,12 +3097,12 @@ day "<K*><u*><r*><i*><a*><k*><y*>";/
|
||||
"<P*><e%><m*><p*><t*><y*>";/
|
||||
"<P*><a*><r*><a*><s*><k*><e*><u*><y%>";/
|
||||
"<S*><a*><b*><b*><a%><t*><o*>"
|
||||
abmon "<I*><a*><n*><SP>";"<F*><e*><b*><SP>";/
|
||||
"<M*><a%><r*><SP>";"<A*><p*><r*><SP>";/
|
||||
"<M*><a%><i*><SP>";"<I*><o*><u%><n*>";/
|
||||
"<I*><o*><u%><l*>";"<A*><u%><g*><SP>";/
|
||||
"<S*><e*><p*><SP>";"<O*><k*><t*><SP>";/
|
||||
"<N*><o*><e%><SP>";"<D*><e*><k*><SP>"
|
||||
abmon "<I*><a*><n*>";"<F*><e*><b*>";/
|
||||
"<M*><a%><r*>";"<A*><p*><r*>";/
|
||||
"<M*><a%><i*>";"<I*><o*><u%><n*>";/
|
||||
"<I*><o*><u%><l*>";"<A*><u%><g*>";/
|
||||
"<S*><e*><p*>";"<O*><k*><t*>";/
|
||||
"<N*><o*><e%>";"<D*><e*><k*>"
|
||||
mon "<I*><a*><n*><o*><a%><r*><i*><o*><*s>";/
|
||||
"<F*><e*><b*><r*><o*><a%><r*><i*><o*><*s>";/
|
||||
"<M*><a%><r*><t*><i*><o*><*s>";/
|
||||
|
@ -29,14 +29,14 @@ Canada, you must get @code{crypt} support from a site outside the US,
|
||||
such as @samp{ftp.ifi.uio.no}.
|
||||
@c Check this please someone:
|
||||
(Most non-US mirrors of @samp{ftp.gnu.org} will have it too.) The file
|
||||
you need is @file{glibc-crypt-@var{VERSION}.tar.gz}.
|
||||
you need is @file{glibc-crypt-@var{VERSION}.tar.gz}.
|
||||
|
||||
You will need recent versions of several GNU tools: definitely GCC and
|
||||
GNU Make, and possibly others. @xref{Tools for Compilation}, below.
|
||||
|
||||
@menu
|
||||
* Configuring and compiling:: How to compile and test GNU libc.
|
||||
* Installation:: How to install it once you've got it compiled.
|
||||
* Running make install:: How to install it once you've got it compiled.
|
||||
* Tools for Compilation:: You'll need these first.
|
||||
* Supported Configurations:: What it runs on, what it doesn't.
|
||||
* Linux:: Specific advice for Linux systems.
|
||||
@ -208,7 +208,7 @@ The distribution already includes the on-line formatted version of the
|
||||
manual, as Info files. You can regenerate those with @w{@code{make
|
||||
info}}, but it shouldn't be necessary.
|
||||
|
||||
@node Installation
|
||||
@node Running make install
|
||||
@appendixsec Installing the C Library
|
||||
@cindex installing
|
||||
|
||||
|
@ -90,7 +90,7 @@
|
||||
/* Operations for bsd flock(), also used by the kernel implementation */
|
||||
# define LOCK_SH 1 /* shared lock */
|
||||
# define LOCK_EX 2 /* exclusive lock */
|
||||
# define LOCK_NB 4 /* or'd with one of the above to prevent XXXXXXXXXXXXXXXXXX
|
||||
# define LOCK_NB 4 /* or'd with one of the above to prevent
|
||||
blocking */
|
||||
# define LOCK_UN 8 /* remove lock */
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user