Home | History | Annotate | Download | only in include
History log of /src/sys/arch/i386/include/endian.h
RevisionDateAuthorComments
 1.29  17-Mar-2000  mycroft branches: 1.29.2;
In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.28  16-Mar-2000  mycroft Foolish consistency. Mainly, always use underscores and sys/endian.h.
 1.27  21-Aug-1999  simonb branches: 1.27.2;
Include <sys/endian.h> after defining whether where are little- or
big-endian. i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions. mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
 1.26  24-Jan-1999  mycroft Mark [hn]to[nh][ls]() with __const__, so they are subject to CSE.
 1.25  15-Jan-1999  bouyer Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
 1.24  16-Dec-1998  kleink Support for compound statements enclosed in parenthes to appear as
expressions is a GNU C extension; mark as such them with __extension__ to
suppress portability warnings. Addresses kern/3562 and misc/6185, as suggested
by Dave Sainty <dave@dtsp.co.nz>.
 1.23  15-Aug-1998  mycroft Assign my copyrights to TNF.
 1.22  15-Jan-1998  thorpej Generate dependencies on the CPU type options (I386_CPU, I486_CPU, ...)
 1.21  09-Oct-1997  bouyer Add byte-swapping functions (bswap16, bswap32, bswap64) to libkern.
Only assembly version for i386 bswap16 and bswap32 for now (bswap64 uses
bswap32). Contribution of assembly versions of these are welcome.
Add byte-swapping of ext2fs metadata for big-endian systems.
Tested on i386 and sparc.
 1.20  17-Jul-1997  thorpej branches: 1.20.2;
Give the __GNUC__ versions of ntohl() and friends the proper (in_addr_t
or in_port_t) signature.
 1.19  11-Oct-1996  christos add in_addr_t and in_port_t and use them.
 1.18  08-May-1996  jtc Revert last change.
Changing types from unsigned {long,short} to u_int{32,16}_t causes problems
in a lot of userlevel code because those types aren't defined when machine/
endian.h is included. And IMO including sys/types.h in machine/endian.h
is clearly wrong.

XPG4.2 defines new types in_addr_t and in_port_t for the {h,n}to{n,h}{l,s}
functions. But we don't have time to figure out the implementation issues
given the current release schedule.
 1.17  03-May-1996  christos use u_int32_t instead of unsigned long
and u_int16_t instead of short in the {h,n}to{n,h}{l,s} inline routines
and macros.
 1.16  01-Jun-1995  mycroft Allow [nh]to[hn][ls]() to do constant folding.
 1.15  28-Mar-1995  jtc KERNEL -> _KERNEL
 1.14  27-Oct-1994  cgd new RCS ID format.
 1.13  09-Oct-1994  mycroft Make multiple-inclusion protection consistent.
 1.12  10-Sep-1994  jtc asm -> __asm (PR #463).
 1.11  15-Jul-1994  mycroft Since we're no longer using xchg instructions, there's no reason to prefer
a q reg over and other. Also, fix some types in the case of _POSIX_SOURCE.
 1.10  16-Mar-1994  jtc branches: 1.10.2;
Inline assembly [hn]to[nh][sl] functions used xchgb %h1,%b1 instead of the
faster (on the i486 & i586) rorw $8, %w1. The inline assembly for GCC 1.X
already used rorw. Using rorw is one byte longer, but we wouldn't be
inlining at all if we weren't optimizing for speed.
 1.9  12-Feb-1994  cgd fix from Thomas Eberhardt <thomas@mathematik.uni-Bremen.de>:
byte swap macros used a variable "X" internally, which would get
screwed up if user programs #defined "X". change uses of X to __x.
 1.8  20-Dec-1993  mycroft branches: 1.8.2;
Cleanup and garbage collection; nothing significant. From magnum branch.
 1.7  17-Sep-1993  cgd get rid of the #ifndef KERNEL around the include of sys/cdefs.h,
a la 4.4, because it seriously breaks things otherwise, given
inclusion of endian.h in types.h
 1.6  16-Sep-1993  mycroft Add an #ifndef _POSIX_SOURCE...
 1.5  16-Sep-1993  mycroft Add _QUAD_HIGHWORD and _QUAD_LOWWORD for Torek's quad stuff.
 1.4  16-Aug-1993  jtc branches: 1.4.2;
Declare ntohl, ntohs, htonl, and htons functions.
Use GCC's inline assembly iff we are using GCC.
Use bswap instruction if using gcc and defined(KERNEL) &&
((defined(I486_CPU) || defined(I586_CPU)) && !defined(I386_CPU))
 1.3  22-May-1993  cgd add rcsids to everything and clean up headers
 1.2  21-Mar-1993  cgd after 0.2.2 "stable" patches applied
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.4.2.1  24-Sep-1993  mycroft Changes from trunk.
cpu.h: Add dummy (for now) CLKF_INTR(). #include psl.h.
endian.h: Add multiple-inclusion protection. #define _QUAD_{LOW,HIGH}WORD.
#include sys/cdefs for __P(). Don't define byte order stuff if _POSIX_SOURCE.
Remove big endian shit.
limits.h: Add {,U}QUAD_{MIN,MAX}.
psl.h: Get PSL_MB[ZO] right. Make cpl volatile just in case. Add alias for
spl0(). splnone() and splx() return int for now.
 1.8.2.2  20-Dec-1993  mycroft Cleanup and garbage collection; nothing significant. From magnum branch.
 1.8.2.1  20-Dec-1993  mycroft file endian.h was added on branch magnum on 1993-12-20 05:25:12 +0000
 1.10.2.3  11-Oct-1994  mycroft Update from trunk.
 1.10.2.2  12-Sep-1994  cgd from trunk
 1.10.2.1  15-Jul-1994  cgd from trunk
 1.20.2.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.27.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.29.2.2  17-Mar-2000  mycroft In the `MY THAT'S GROSS' department...
Eliminate the recursive include of machine/endian.h from sys/endian.h.
 1.29.2.1  17-Mar-2000  mycroft file endian.h was added on branch sommerfeld_i386mp_1 on 2000-03-17 00:09:21 +0000

RSS XML Feed