⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flbase.c

📁 M-System DOC(Disk on a Chip) Flash芯片映像读写工具, 可以进行二片Flash芯片的内容互相拷贝, 提高烧录程序的效率.
💻 C
字号:
/***********************************************************************************/
/*                        M-Systems Confidential                                   */
/*           Copyright (C) M-Systems Flash Disk Pioneers Ltd. 1995-2003            */
/*                         All Rights Reserved                                     */
/***********************************************************************************/
/*                            NOTICE OF M-SYSTEMS OEM                              */
/*                           SOFTWARE LICENSE AGREEMENT                            */
/*                                                                                 */
/*      THE USE OF THIS SOFTWARE IS GOVERNED BY A SEPARATE LICENSE                 */
/*      AGREEMENT BETWEEN THE OEM AND M-SYSTEMS. REFER TO THAT AGREEMENT           */
/*      FOR THE SPECIFIC TERMS AND CONDITIONS OF USE,                              */
/*      OR CONTACT M-SYSTEMS FOR LICENSE ASSISTANCE:                               */
/*      E-MAIL = info@m-sys.com                                                    */
/***********************************************************************************/

/*
 * $Log:   V:/PVCSDB/DiskOnChip/archives/general storage/TrueFFS/src/core/flbase.c-arc  $
 * 
 *    Rev 1.0   Apr 09 2003 12:16:04   OriS
 * Initial revision.
 * 
 */

#include "flbase.h"

#ifdef FL_BIG_ENDIAN

/*----------------------------------------------------------------------*/
/*         Little / Big - Endian Conversion Routines			*/
/*----------------------------------------------------------------------*/

void toLEushort(FLByte FAR0 *le, FLWord n)
{
  le[1] = (FLByte)(n >> 8);
  le[0] = (FLByte)n;
}


FLWord fromLEushort(FLByte const FAR0 *le)
{
  return ((FLWord)le[1] << 8) + le[0];
}


void toLEulong(FLByte FAR0 *le, FLDword n)
{
  le[3] = (FLByte)(n >> 24);
  le[2] = (FLByte)(n >> 16);
  le[1] = (FLByte)(n >> 8);
  le[0] = (FLByte)n;
}

FLDword fromLEulong(FLByte const FAR0 *le)
{
  return ((FLDword)le[3] << 24) +
	 ((FLDword)le[2] << 16) +
	 ((FLDword)le[1] << 8) +
	 le[0];
}

extern void copyShort(FLByte FAR0 *to, FLByte const FAR0 *from)
{
  to[0] = from[0];
  to[1] = from[1];
}

extern void copyLong(FLByte FAR0 *to, FLByte const FAR0 *from)
{
  to[0] = from[0];
  to[1] = from[1];
  to[2] = from[2];
  to[3] = from[3];
}


#else

void toUNAL(FLByte FAR0 *unal, FLWord n)
{
  unal[1] = (FLByte)(n >> 8);
  unal[0] = (FLByte)n;
}


FLWord fromUNAL(FLByte const FAR0 *unal)
{
  return ((FLWord)unal[1] << 8) + unal[0];
}


void toUNALLONG(Unaligned FAR0 *unal, FLDword n)
{
  toUNAL(unal[0],(FLWord)n);
  toUNAL(unal[1],(FLWord)(n >> 16));
}


FLDword fromUNALLONG(Unaligned const FAR0 *unal)
{
  return fromUNAL(unal[0]) +
	 ((FLDword)fromUNAL(unal[1]) << 16);
}

#endif /* FL_BIG_ENDIAN */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -