* Added missing cast in isonum_712().

* Added const-qualifiers.
 * Removed unnecessary duplicate prototypes.
 * Use the endian conversion functions from <sys/endian.h>.
This commit is contained in:
cbiere 2007-01-27 07:20:31 +00:00
parent 0108d79ceb
commit b70ba117e6
1 changed files with 29 additions and 64 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: iso.h,v 1.8 2006/02/16 20:17:19 perry Exp $ */ /* $NetBSD: iso.h,v 1.9 2007/01/27 07:20:31 cbiere Exp $ */
/*- /*-
* Copyright (c) 1994 * Copyright (c) 1994
@ -171,102 +171,67 @@ struct iso_extended_attributes {
u_char len_au [ISODCL (247, 250)]; /* 723 */ u_char len_au [ISODCL (247, 250)]; /* 723 */
}; };
static __inline int isonum_711(u_char *) __attribute__ ((unused));
static __inline int isonum_712(char *) __attribute__ ((unused));
static __inline uint16_t isonum_721(u_char *) __attribute__ ((unused));
static __inline uint16_t isonum_722(u_char *) __attribute__ ((unused));
static __inline uint16_t isonum_723(u_char *) __attribute__ ((unused));
static __inline uint32_t isonum_731(u_char *) __attribute__ ((unused));
static __inline uint32_t isonum_732(u_char *) __attribute__ ((unused));
static __inline uint32_t isonum_733(u_char *) __attribute__ ((unused));
/* 7.1.1: unsigned char */ /* 7.1.1: unsigned char */
static __inline int static __inline __unused int
isonum_711(u_char *p) isonum_711(const u_char *p)
{ {
return *p; return *p;
} }
/* 7.1.2: signed(?) char */ /* 7.1.2: signed char */
static __inline int static __inline __unused int
isonum_712(char *p) isonum_712(const u_char *p)
{ {
return *p; return (signed char) *p;
} }
/* 7.2.1: unsigned little-endian 16-bit value. NOT USED IN KERNEL. */ /* 7.2.1: unsigned little-endian 16-bit value. NOT USED IN KERNEL. */
static __inline uint16_t static __inline __unused uint16_t
isonum_721(u_char *p) isonum_721(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && (BYTE_ORDER == LITTLE_ENDIAN) return le16dec(p);
return *(uint16_t *)p;
#else
return *p|((char)p[1] << 8);
#endif
} }
/* 7.2.2: unsigned big-endian 16-bit value. NOT USED IN KERNEL. */ /* 7.2.2: unsigned big-endian 16-bit value. NOT USED IN KERNEL. */
static __inline uint16_t static __inline __unused uint16_t
isonum_722(u_char *p) isonum_722(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && (BYTE_ORDER == BIG_ENDIAN) return be16dec(p);
return *(uint16_t *)p;
#else
return ((char)*p << 8)|p[1];
#endif
} }
/* 7.2.3: unsigned both-endian (little, then big) 16-bit value */ /* 7.2.3: unsigned both-endian (little, then big) 16-bit value */
static __inline uint16_t static __inline __unused uint16_t
isonum_723(u_char *p) isonum_723(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && \ #if BYTE_ORDER == BIG_ENDIAN
((BYTE_ORDER == LITTLE_ENDIAN) || (BYTE_ORDER == BIG_ENDIAN)) return be16dec(p + 2);
#if BYTE_ORDER == LITTLE_ENDIAN
return *(uint16_t *)p;
#else #else
return *(uint16_t *)(p + 2); return le16dec(p);
#endif
#else /* !UNALIGNED_ACCESS or weird byte order */
return *p|(p[1] << 8);
#endif #endif
} }
/* 7.3.1: unsigned little-endian 32-bit value. NOT USED IN KERNEL. */ /* 7.3.1: unsigned little-endian 32-bit value. NOT USED IN KERNEL. */
static __inline uint32_t static __inline __unused uint32_t
isonum_731(u_char *p) isonum_731(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && (BYTE_ORDER == LITTLE_ENDIAN) return le32dec(p);
return *(uint32_t *)p;
#else
return *p|(p[1] << 8)|(p[2] << 16)|(p[3] << 24);
#endif
} }
/* 7.3.2: unsigned big-endian 32-bit value. NOT USED IN KERNEL. */ /* 7.3.2: unsigned big-endian 32-bit value. NOT USED IN KERNEL. */
static __inline uint32_t static __inline __unused uint32_t
isonum_732(u_char *p) isonum_732(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && (BYTE_ORDER == BIG_ENDIAN) return be32dec(p);
return *(uint32_t *)p;
#else
return (*p << 24)|(p[1] << 16)|(p[2] << 8)|p[3];
#endif
} }
/* 7.3.3: unsigned both-endian (little, then big) 32-bit value */ /* 7.3.3: unsigned both-endian (little, then big) 32-bit value */
static __inline uint32_t static __inline __unused uint32_t
isonum_733(u_char *p) isonum_733(const u_char *p)
{ {
#if defined(UNALIGNED_ACCESS) && \ #if BYTE_ORDER == BIG_ENDIAN
((BYTE_ORDER == LITTLE_ENDIAN) || (BYTE_ORDER == BIG_ENDIAN)) return be32dec(p + 4);
#if BYTE_ORDER == LITTLE_ENDIAN
return *(uint32_t *)p;
#else #else
return *(uint32_t *)(p + 4); return le32dec(p);
#endif
#else /* !UNALIGNED_ACCESS or weird byte order */
return *p|(p[1] << 8)|(p[2] << 16)|(p[3] << 24);
#endif #endif
} }