mirror of /home/gitosis/repositories/libowfat.git
add uint32_read interface.
This commit is contained in:
parent
c9a75975dc
commit
3f95e1de00
|
@ -0,0 +1,9 @@
|
|||
#define NO_UINT32_MACROS
|
||||
#include "uint32.h"
|
||||
|
||||
uint32 uint32_read(const char *in) {
|
||||
return (((uint32)(unsigned char)in[3])<<24) |
|
||||
(((uint32)(unsigned char)in[2])<<16) |
|
||||
(((uint32)(unsigned char)in[1])<<8) |
|
||||
(uint32)(unsigned char)in[0];
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
#define NO_UINT32_MACROS
|
||||
#include "uint32.h"
|
||||
|
||||
uint32 uint32_read_big(const char *in) {
|
||||
return (((uint32)(unsigned char)in[0])<<24) |
|
||||
(((uint32)(unsigned char)in[1])<<16) |
|
||||
(((uint32)(unsigned char)in[2])<<8) |
|
||||
(uint32)(unsigned char)in[3];
|
||||
}
|
35
uint32.h
35
uint32.h
|
@ -3,40 +3,21 @@
|
|||
|
||||
typedef unsigned int uint32;
|
||||
|
||||
#ifndef __linux__
|
||||
#define NO_UINT32_MACROS
|
||||
#endif
|
||||
|
||||
#ifdef NO_UINT32_MACROS
|
||||
extern void uint32_pack(char *out,uint32 in);
|
||||
extern void uint32_pack_big(char *out,uint32 in);
|
||||
extern void uint32_unpack(const char *in,uint32* out);
|
||||
extern void uint32_unpack_big(const char *in,uint32* out);
|
||||
#else
|
||||
|
||||
#include <endian.h>
|
||||
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
|
||||
#if defined(__i386__) && !defined(NO_UINT32_MACROS)
|
||||
#define uint32_pack(out,in) (*(uint32*)(out)=(in))
|
||||
|
||||
extern void uint32_pack_big(char *out,uint32 in);
|
||||
|
||||
#define uint32_unpack(in,out) (*(out)=*(uint32*)(in))
|
||||
|
||||
#define uint32_read(in) (*(uint32*)in)
|
||||
extern void uint32_pack_big(char *out,uint32 in);
|
||||
extern void uint32_unpack_big(const char *in,uint32* out);
|
||||
|
||||
extern uint32 uint32_read_big(const char *in);
|
||||
#else
|
||||
|
||||
extern void uint32_pack(char *out,uint32 in);
|
||||
|
||||
#define uint32_pack_big(out,in) (*(uint32*)(out)=(in))
|
||||
|
||||
extern void uint32_pack_big(char *out,uint32 in);
|
||||
extern void uint32_unpack(const char *in,uint32* out);
|
||||
|
||||
#define uint32_unpack_big(in,out) (*(out)=*(uint32*)(in))
|
||||
|
||||
#endif
|
||||
extern void uint32_unpack_big(const char *in,uint32* out);
|
||||
extern uint32 uint32_read(const char *in);
|
||||
extern uint32 uint32_read_big(const char *in);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue