[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.118.138.121: ~ $
/* Macros to swap the order of bytes in integer values.
   Copyright (C) 1997-2012   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 Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 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
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */

#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
#endif

#ifndef _BITS_BYTESWAP_H
#define _BITS_BYTESWAP_H 1

#include <features.h>
#include <bits/types.h>
#include <bits/wordsize.h>

/* Swap bytes in 16 bit value.  */
#define __bswap_constant_16(x) \
     ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))

/* Get __bswap_16.  */
#include <bits/byteswap-16.h>

/* Swap bytes in 32 bit value.  */
#define __bswap_constant_32(x) \
     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) |		      \
      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))

#ifdef __GNUC__
# if __GNUC_PREREQ (4, 3)
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
  return __builtin_bswap32 (__bsx);
}
# elif __GNUC__ >= 2
#  if __WORDSIZE == 64 || (defined __i486__ || defined __pentium__	      \
			   || defined __pentiumpro__ || defined __pentium4__  \
			   || defined __k8__ || defined __athlon__	      \
			   || defined __k6__ || defined __nocona__	      \
			   || defined __core2__ || defined __geode__	      \
			   || defined __amdfam10__)
/* To swap the bytes in a word the i486 processors and up provide the
   `bswap' opcode.  On i386 we have to use three instructions.  */
#   define __bswap_32(x) \
      (__extension__							      \
       ({ unsigned int __v, __x = (x);					      \
	  if (__builtin_constant_p (__x))				      \
	    __v = __bswap_constant_32 (__x);				      \
	  else								      \
	    __asm__ ("bswap %0" : "=r" (__v) : "0" (__x));		      \
	  __v; }))
#  else
#   define __bswap_32(x)						      \
      (__extension__							      \
       ({ unsigned int __v, __x = (x);					      \
	  if (__builtin_constant_p (__x))				      \
	    __v = __bswap_constant_32 (__x);				      \
	  else								      \
	    __asm__ ("rorw $8, %w0;"					      \
		     "rorl $16, %0;"					      \
		     "rorw $8, %w0"					      \
		     : "=r" (__v)					      \
		     : "0" (__x)					      \
		     : "cc");						      \
	  __v; }))
#  endif
# else
#  define __bswap_32(x) \
     (__extension__							      \
      ({ unsigned int __x = (x); __bswap_constant_32 (__x); }))
# endif
#else
static __inline unsigned int
__bswap_32 (unsigned int __bsx)
{
  return __bswap_constant_32 (__bsx);
}
#endif


#if __GNUC_PREREQ (2, 0)
/* Swap bytes in 64 bit value.  */
# define __bswap_constant_64(x) \
     (__extension__ ((((x) & 0xff00000000000000ull) >> 56)		      \
		     | (((x) & 0x00ff000000000000ull) >> 40)		      \
		     | (((x) & 0x0000ff0000000000ull) >> 24)		      \
		     | (((x) & 0x000000ff00000000ull) >> 8)		      \
		     | (((x) & 0x00000000ff000000ull) << 8)		      \
		     | (((x) & 0x0000000000ff0000ull) << 24)		      \
		     | (((x) & 0x000000000000ff00ull) << 40)		      \
		     | (((x) & 0x00000000000000ffull) << 56)))

# if __GNUC_PREREQ (4, 3)
static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{
  return __builtin_bswap64 (__bsx);
}
# elif __WORDSIZE == 64
#  define __bswap_64(x) \
     (__extension__							      \
      ({ __uint64_t __v, __x = (x);					      \
	 if (__builtin_constant_p (__x))				      \
	   __v = __bswap_constant_64 (__x);				      \
	 else								      \
	   __asm__ ("bswap %q0" : "=r" (__v) : "0" (__x));		      \
	 __v; }))
# else
#  define __bswap_64(x) \
     (__extension__                                                           \
      ({ union { __extension__ __uint64_t __ll;		                      \
		 unsigned int __l[2]; } __w, __r;                             \
	 if (__builtin_constant_p (x))                                        \
	   __r.__ll = __bswap_constant_64 (x);                                \
	 else                                                                 \
	   {                                                                  \
	     __w.__ll = (x);                                                  \
	     __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
	     __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
	   }                                                                  \
	 __r.__ll; }))
# endif
#elif __GLIBC_HAVE_LONG_LONG
# define __bswap_constant_64(x) \
     ((((x) & 0xff00000000000000ull) >> 56)				      \
      | (((x) & 0x00ff000000000000ull) >> 40)				      \
      | (((x) & 0x0000ff0000000000ull) >> 24)				      \
      | (((x) & 0x000000ff00000000ull) >> 8)				      \
      | (((x) & 0x00000000ff000000ull) << 8)				      \
      | (((x) & 0x0000000000ff0000ull) << 24)				      \
      | (((x) & 0x000000000000ff00ull) << 40)				      \
      | (((x) & 0x00000000000000ffull) << 56))

static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{
  return __bswap_constant_64 (__bsx);
}
#endif

#endif /* _BITS_BYTESWAP_H */

Filemanager

Name Type Size Permission Actions
a.out.h File 268 B 0644
byteswap-16.h File 1.69 KB 0644
byteswap.h File 5.56 KB 0644
cmathcalls.h File 4.7 KB 0644
confname.h File 23.19 KB 0644
dirent.h File 1.69 KB 0644
dlfcn.h File 2.47 KB 0644
elfclass.h File 426 B 0644
endian.h File 176 B 0644
environments.h File 3.5 KB 0644
epoll.h File 1.11 KB 0644
errno.h File 2.11 KB 0644
error.h File 2.62 KB 0644
eventfd.h File 1.1 KB 0644
fcntl-linux.h File 12.55 KB 0644
fcntl.h File 2.19 KB 0644
fcntl2.h File 5.44 KB 0644
fenv.h File 3.94 KB 0644
fenvinline.h File 190 B 0644
huge_val.h File 1.83 KB 0644
huge_valf.h File 1.79 KB 0644
huge_vall.h File 1.57 KB 0644
hwcap.h File 966 B 0644
in.h File 9.01 KB 0644
inf.h File 1.03 KB 0644
initspin.h File 25 B 0644
inotify.h File 1.05 KB 0644
ioctl-types.h File 2.41 KB 0644
ioctls.h File 4.38 KB 0644
ipc.h File 2.01 KB 0644
ipctypes.h File 1.14 KB 0644
libc-lock.h File 12.54 KB 0644
libio-ldbl.h File 1014 B 0644
link.h File 4.2 KB 0644
local_lim.h File 3.13 KB 0644
locale.h File 1.33 KB 0644
math-finite.h File 14.24 KB 0644
mathcalls.h File 11.3 KB 0644
mathdef.h File 2.14 KB 0644
mathinline.h File 30.86 KB 0644
mman.h File 4.78 KB 0644
monetary-ldbl.h File 1.02 KB 0644
mqueue.h File 1.22 KB 0644
mqueue2.h File 2.11 KB 0644
msq.h File 2.47 KB 0644
nan.h File 1.54 KB 0644
netdb.h File 1.25 KB 0644
param.h File 1.4 KB 0644
poll.h File 2.04 KB 0644
poll2.h File 2.86 KB 0644
posix1_lim.h File 4.81 KB 0644
posix2_lim.h File 2.82 KB 0644
posix_opt.h File 5.65 KB 0644
printf-ldbl.h File 986 B 0644
pthreadtypes.h File 6.33 KB 0644
resource.h File 9.21 KB 0644
sched.h File 7.37 KB 0644
select.h File 2.08 KB 0644
select2.h File 1.4 KB 0644
sem.h File 2.53 KB 0644
semaphore.h File 1.21 KB 0644
setjmp.h File 1.26 KB 0644
setjmp2.h File 1.67 KB 0644
shm.h File 3.44 KB 0644
sigaction.h File 2.79 KB 0644
sigcontext.h File 4.08 KB 0644
siginfo.h File 9.81 KB 0644
signalfd.h File 1.04 KB 0644
signum.h File 3.34 KB 0644
sigset.h File 4.48 KB 0644
sigstack.h File 1.49 KB 0644
sigthread.h File 1.64 KB 0644
sockaddr.h File 1.5 KB 0644
socket.h File 12.6 KB 0644
socket2.h File 2.95 KB 0644
socket_type.h File 2.16 KB 0644
stab.def File 8.82 KB 0644
stat.h File 7.46 KB 0644
statfs.h File 1.89 KB 0644
statvfs.h File 3.34 KB 0644
stdio-ldbl.h File 3.11 KB 0644
stdio-lock.h File 2.14 KB 0644
stdio.h File 5.45 KB 0644
stdio2.h File 12.36 KB 0644
stdio_lim.h File 1.34 KB 0644
stdlib-float.h File 1.12 KB 0644
stdlib-ldbl.h File 1.36 KB 0644
stdlib.h File 5.53 KB 0644
string.h File 56.48 KB 0644
string2.h File 46.08 KB 0644
string3.h File 4.38 KB 0644
sys_errlist.h File 1.19 KB 0644
syscall.h File 43.03 KB 0644
sysctl.h File 893 B 0644
syslog-ldbl.h File 1.17 KB 0644
syslog-path.h File 1.03 KB 0644
syslog.h File 1.66 KB 0644
termios.h File 5.23 KB 0644
time.h File 3.35 KB 0644
timerfd.h File 1.08 KB 0644
timex.h File 4.36 KB 0644
types.h File 7.55 KB 0644
typesizes.h File 3.15 KB 0644
uio.h File 2.42 KB 0644
unistd.h File 13.07 KB 0644
ustat.h File 1.06 KB 0644
utmp.h File 3.87 KB 0644
utmpx.h File 3.38 KB 0644
utsname.h File 1.19 KB 0644
waitflags.h File 1.61 KB 0644
waitstatus.h File 3.49 KB 0644
wchar-ldbl.h File 2.45 KB 0644
wchar.h File 1.11 KB 0644
wchar2.h File 20.04 KB 0644
wordsize.h File 327 B 0644
xopen_lim.h File 3.68 KB 0644