00001
00002
00003
00004
00005
00006
00007
00008 #include "config.h"
00009
00010 #ifndef lint
00011 static const char revid[] = "$Id: db__byteorder_8c-source.html,v 1.1 2008/06/08 10:17:21 sebdiaz Exp $";
00012 #endif
00013
00014 #ifndef NO_SYSTEM_INCLUDES
00015 #include <sys/types.h>
00016
00017 #ifdef HAVE_ENDIAN_H
00018 #include <endian.h>
00019 #if BYTE_ORDER == BIG_ENDIAN
00020 #define WORDS_BIGENDIAN 1
00021 #endif
00022 #endif
00023
00024 #include <errno.h>
00025 #endif
00026
00027 #include "db_int.h"
00028 #include "common_ext.h"
00029
00030
00031
00032
00033
00034
00035
00036
00037 int
00038 CDB___db_byteorder(dbenv, lorder)
00039 DB_ENV *dbenv;
00040 int lorder;
00041 {
00042 switch (lorder) {
00043 case 0:
00044 break;
00045 case 1234:
00046 #if defined(WORDS_BIGENDIAN)
00047 return (DB_SWAPBYTES);
00048 #else
00049 break;
00050 #endif
00051 case 4321:
00052 #if defined(WORDS_BIGENDIAN)
00053 break;
00054 #else
00055 return (DB_SWAPBYTES);
00056 #endif
00057 default:
00058 CDB___db_err(dbenv,
00059 "unsupported byte order, only big and little-endian supported");
00060 return (EINVAL);
00061 }
00062 return (0);
00063 }