Add bswap{16,32,64} functions to libutil. Because of this, bump minor.
This commit is contained in:
parent
9f50fca1fd
commit
50660fb787
@ -1,14 +1,14 @@
|
||||
# $NetBSD: Makefile,v 1.17 1997/11/16 22:15:54 christos Exp $
|
||||
# $NetBSD: Makefile,v 1.18 1998/03/18 16:40:45 bouyer Exp $
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/4/93
|
||||
|
||||
LIB= util
|
||||
CPPFLAGS+=-DLIBC_SCCS
|
||||
SRCS= fparseln.c getmaxpartitions.c getrawpartition.c login.c login_tty.c \
|
||||
logout.c logwtmp.c opendisk.c passwd.c pidlock.c pty.c ttyaction.c \
|
||||
ttymsg.c
|
||||
ttymsg.c bswap.c
|
||||
|
||||
MAN= fparseln.3 getmaxpartitions.3 getrawpartition.3 login.3 opendisk.3 \
|
||||
openpty.3 pidlock.3 pw_init.3 pw_lock.3 ttyaction.3 ttymsg.3
|
||||
openpty.3 pidlock.3 pw_init.3 pw_lock.3 ttyaction.3 ttymsg.3 bswap.3
|
||||
|
||||
MLINKS+=login.3 logout.3
|
||||
MLINKS+=login.3 logwtmp.3
|
||||
@ -23,5 +23,8 @@ MLINKS+=pw_lock.3 pw_mkdb.3
|
||||
MLINKS+=pw_lock.3 pw_abort.3
|
||||
MLINKS+=pidlock.3 ttylock.3
|
||||
MLINKS+=pidlock.3 ttyunlock.3
|
||||
MLINKS+=bswap.3 bswap16.3
|
||||
MLINKS+=bswap.3 bswap32.3
|
||||
MLINKS+=bswap.3 bswap64.3
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
|
64
lib/libutil/bswap.3
Normal file
64
lib/libutil/bswap.3
Normal file
@ -0,0 +1,64 @@
|
||||
.\" $NetBSD: bswap.3,v 1.1 1998/03/18 16:40:45 bouyer Exp $
|
||||
.\"
|
||||
.\"
|
||||
.\" Copyright (c) 1998 Manuel Bouyer.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
|
||||
.Dd March 17, 1998
|
||||
.Dt bswap 3
|
||||
.Os NetBSD 1.4
|
||||
.Sh NAME
|
||||
.Nm bswap16 ,
|
||||
.Nm bswap32 ,
|
||||
.Nm bswap64
|
||||
.Nd byte-order swapping functions
|
||||
.Sh LIBRARY
|
||||
.Lb libutil
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <sys/types.h>
|
||||
.Fd #include <machine/endian.h>
|
||||
.Ft u_int16_t
|
||||
.Fn bswap16 "u_int16_t"
|
||||
.Ft u_int32
|
||||
.Fn bswap32 "u_int16_t"
|
||||
.Ft u_int64
|
||||
.Fn bswap64 "u_int16_t"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn bswap16 ,
|
||||
.Fn bswap32 ,
|
||||
and
|
||||
.Fn bswap64
|
||||
function return the value of their argument with the bytes inverted.
|
||||
They can be used to convert 16, 32 or 64 bits intergers from little to big
|
||||
endian, or vice-versa.
|
||||
.Sh SEE ALSO
|
||||
.Xr byteorder 3
|
48
lib/libutil/bswap.c
Normal file
48
lib/libutil/bswap.c
Normal file
@ -0,0 +1,48 @@
|
||||
/* $NetBSD: bswap.c,v 1.1 1998/03/18 16:40:45 bouyer Exp $ */
|
||||
|
||||
/*
|
||||
* Written by Manuel Bouyer <bouyer@netbsd.org>.
|
||||
* Public domain.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(LIBC_SCCS) && !defined(lint)
|
||||
__RCSID("$NetBSD: bswap.c,v 1.1 1998/03/18 16:40:45 bouyer Exp $");
|
||||
#endif /* LIBC_SCCS and not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#undef bswap64
|
||||
|
||||
#ifndef bswap16
|
||||
u_int16_t
|
||||
bswap16(x)
|
||||
u_int16_t x;
|
||||
{
|
||||
return ((x << 8) & 0xff00) | ((x >> 8) & 0x00ff);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef bswap32
|
||||
u_int32_t
|
||||
bswap32(x)
|
||||
u_int32_t x;
|
||||
{
|
||||
return ((x << 24) & 0xff000000 ) |
|
||||
((x << 8) & 0x00ff0000 ) |
|
||||
((x >> 8) & 0x0000ff00 ) |
|
||||
((x >> 24) & 0x000000ff );
|
||||
}
|
||||
#endif
|
||||
|
||||
u_int64_t
|
||||
bswap64(x)
|
||||
u_int64_t x;
|
||||
{
|
||||
u_int32_t *p = (u_int32_t*)&x;
|
||||
u_int32_t t;
|
||||
t = bswap32(p[0]);
|
||||
p[0] = bswap32(p[1]);
|
||||
p[1] = t;
|
||||
return x;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
# $NetBSD: shlib_version,v 1.12 1998/01/05 07:41:20 perry Exp $
|
||||
# $NetBSD: shlib_version,v 1.13 1998/03/18 16:40:45 bouyer Exp $
|
||||
#
|
||||
major=4
|
||||
minor=3
|
||||
minor=4
|
||||
|
Loading…
Reference in New Issue
Block a user