Tesseract
3.02
|
00001 /********************************************************************** 00002 * File: serialis.h (Formerly serialmac.h) 00003 * Description: Inline routines and macros for serialisation functions 00004 * Author: Phil Cheatle 00005 * Created: Tue Oct 08 08:33:12 BST 1991 00006 * 00007 * (C) Copyright 1990, Hewlett-Packard Ltd. 00008 ** Licensed under the Apache License, Version 2.0 (the "License"); 00009 ** you may not use this file except in compliance with the License. 00010 ** You may obtain a copy of the License at 00011 ** http://www.apache.org/licenses/LICENSE-2.0 00012 ** Unless required by applicable law or agreed to in writing, software 00013 ** distributed under the License is distributed on an "AS IS" BASIS, 00014 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 ** See the License for the specific language governing permissions and 00016 ** limitations under the License. 00017 * 00018 **********************************************************************/ 00019 00020 #include "mfcpch.h" //precompiled headers 00021 #include "serialis.h" 00022 #include "scanutils.h" 00023 00024 // Byte swap an inT64 or uinT64. 00025 DLLSYM uinT64 reverse64(uinT64 num) { 00026 return ((uinT64)reverse32((uinT32)(num & 0xffffffff)) << 32) 00027 | reverse32((uinT32)((num >> 32) & 0xffffffff)); 00028 } 00029 00030 /********************************************************************** 00031 * reverse32 00032 * 00033 * Byte swap an inT32 or uinT32. 00034 **********************************************************************/ 00035 00036 DLLSYM uinT32 reverse32( //switch endian 00037 uinT32 num //number to fix 00038 ) { 00039 return (reverse16 ((uinT16) (num & 0xffff)) << 16) 00040 | reverse16 ((uinT16) ((num >> 16) & 0xffff)); 00041 } 00042 00043 00044 /********************************************************************** 00045 * reverse16 00046 * 00047 * Byte swap an inT16 or uinT16. 00048 **********************************************************************/ 00049 00050 DLLSYM uinT16 reverse16( //switch endian 00051 uinT16 num //number to fix 00052 ) { 00053 return ((num & 0xff) << 8) | ((num >> 8) & 0xff); 00054 }