📄 library.c
字号:
/*
; ***********************************************************************
; * Intel Corporation *
; * Copyright (C) Intel Corporation 1994-97 *
; * All Rights Reserved. *
; ***********************************************************************
; ***********************************************************************
; INTEL OEM SOFTWARE LICENSE AGREEMENT
;
; BY USING THIS SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS
; AGREEMENT. DO NOT USE THE SOFTWARE UNTIL YOU HAVE CAREFULLY READ AND AGREED
; TO THE FOLLOWING TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THE TERMS OF
; THIS AGREEMENT, PROMPTLY RETURN THE SOFTWARE PACKAGE AND ANY ACCOMPANYING
; ITEMS. YOU MUST BE AN ORIGINAL EQUIPMENT MANUFACTURER ("OEM") SYSTEM
; DEVELOPER TO ACQUIRE ANY RIGHTS IN THE SOFTWARE UNDER THIS LICENSE AGREEMENT.
;
; LICENSE: Intel Corporation ("Intel") grants you the non-exclusive and
; royalty-free right to use the enclosed software program ("Software") in
; source code form on the terms set forth below. You will not use, copy,
; modify, rent, sell or transfer the Software or any portion thereof, except
; as provided in this Agreement.
;
; OEM System Developers may:
;
; 1. Copy the Software for support, backup or archival purposes;
; 2. Install or distribute the Software in object code form only;
; 3. Modify and/or use Software source code that Intel directly ships to you
; as an OEM;
; 4. Allow authorized contractors ("Subcontractors") engaged by You for the
; sole purpose of product development work to have access to the Software
; solely for that purpose. Subcontractors do NOT acquire any of the OEM
; rights to the Software provided in this Agreement;
; 5. Install, use, modify, distribute, and/or make or have made derivative
; works based on the Software ("Derivatives") subject to the terms and
; conditions in this Agreement.
;
; RESTRICTIONS:
; YOU WILL NOT:
;
; 1. Copy, disclose or distribute the Software, in whole or in part, except
; as provided for in this Agreement;
; 2. Remove or modify the "Compatibility" module, if any, in the Software or
; in any Derivative work,
; 3. Decompile or reverse engineer any Software delivered in object code form.
;
; TRANSFER: Except as provided above, you may not transfer or disclose the
; Software to another party .
;
; OWNERSHIP AND COPYRIGHT OF SOFTWARE: Title to the Software and all copies
; thereof remain with Intel. The Software is copyrighted and is protected by
; United States and international copyright laws. You will not remove the
; copyright notice from the Software. You agree to prevent any unauthorized
; copying of the Software.
;
; DERIVATIVE WORK: You will not be required to provide Intel with a copy of the
; source or object code for any Derivatives created by You. You are authorized
; to use, market, sell, and/or distribute Derivatives, other than any source
; code for the Software, at your own risk and expense. Title to Derivatives,
; other than the portion of the Derivative consisting of any of the Software,
; shall remain with you.
;
; CONFIDENTIALITY: You will maintain the confidentiality of the source code for
; the Software with at least the same degree of care that you use to protect
; your own confidential and proprietary information, but with no less than a
; reasonable degree under the circumstances. Disclosure will only be made to
; Your employees on a need-to-know basis. Subject to the licenses granted
; hereunder, You agree to maintain the Software source code and all other
; proprietary information relating to the Software in confidence and shall not
; disclose to others any such source code or other Intel proprietary information
; relating to the Software. Any Subcontractors to whom you disclose the source
; code for the Software must sign a written confidentiality agreement which
; contains terms regarding the Software no less restrictive than those set forth
; in this Agreement.
;
; DUAL MEDIA SOFTWARE: If the Software package contains multiple media, you
; may only use the medium appropriate for your system.
;
; WARRANTY: The Software is provided "AS IS". Intel warrants that the media on
; which the Software is furnished will be free from defects in material and
; workmanship for a period of one (1) year from the date of purchase. Upon
; return of such defective media, Intel's entire liability and your exclusive
; remedy shall be the replacement of the Software.
;
; THE ABOVE WARRANTIES ARE THE ONLY WARRANTIES OF ANY KIND GIVEN BY INTEL UNDER
; THIS AGREEMENT. INTEL SPECIFICALLY DISCLAIMS ANY OTHER WARRANTIES, EXPRESS OR
; IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT OR FITNESS
; FOR ANY PARTICULAR PURPOSE.
;
; LIMITATION OF LIABILITY: NEITHER INTEL NOR ITS VENDORS OR AGENTS SHALL BE
; LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA, INTERRUPTION OF
; BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF
; ANY KIND WHETHER UNDER THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE
; POSSIBILITY OF SUCH DAMAGES.
;
; TERMINATION OF THIS LICENSE: Intel reserves the right to conduct or have
; conducted audits to verify your compliance with this Agreement. Intel may
; terminate this Agreement at any time if you are in breach of any of its terms
; and conditions. Upon termination, you will immediately destroy, and certify
; in writing the destruction of, the Software or return all copies of the
; Software and documentation to Intel.
;
; U.S. GOVERNMENT RESTRICTED RIGHTS: The Software and documentation were
; developed at private expense and are provided with "RESTRICTED RIGHTS".
; Use, duplication or disclosure by the Government is subject to restrictions
; as set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
;
; EXPORT LAWS: You agree that the distribution and export/re-export of the
; Software is in compliance with the laws, regulations, orders or other
; restrictions of the U.S. Export Administration Regulations.
;
; APPLICABLE LAW: This Agreement is governed by the laws of the State of
; Delaware and the United States, including patent and copyright laws. Any
; claim arising out of this Agreement will be brought in Santa Clara County,
; California.
;*************************************************************************
*/
#include "type.h"
/* WARNING*/
/* if you are going to use a library for the memory functions
you will need to switch all memoryset and fmemoryset last
2 parameters */
void memoryCopy (VOID_PTR dest, VOID_PTR src, WORD bytes)
{
BYTE_PTR new_dest,new_src;
new_dest = (BYTE_PTR)dest;
new_src = (BYTE_PTR)src;
/* while bytes to modify is not complete */
while (bytes-- != 0)
{
/* update destination byte to equal src byte */
*new_dest = *new_src;
new_dest++;
new_src++;
}
}
void fmemoryCopy (FULL_VOID_PTR dest, FULL_VOID_PTR src, WORD bytes)
{
FULL_BYTE_PTR new_dest,new_src;
new_dest = (FULL_BYTE_PTR)dest;
new_src = (FULL_BYTE_PTR)src;
/* while bytes to modify is not complete */
while (bytes-- != 0)
{
/* update destination byte to equal src byte */
*new_dest = *new_src;
new_dest++;
new_src++;
}
}
void memorySet (VOID_PTR buff, WORD bytes, BYTE value)
{
BYTE_PTR new_buff;
new_buff = (BYTE_PTR)buff;
/* while not at end of modification */
while (bytes-- != 0)
{
/* set contents of buffer to value specified */
*new_buff = value;
/* increment to next byte */
new_buff++;
}
}
void fmemorySet (FULL_VOID_PTR buff, WORD bytes, BYTE value)
{
FULL_BYTE_PTR new_buff;
new_buff = (FULL_BYTE_PTR)buff;
/* while not at end of modification */
while (bytes-- != 0)
{
/* set contents of buffer to value specified */
*new_buff = value;
/* increment to next byte */
new_buff++;
}
}
/**************************************************************************
* MemoryCompare
*
* FUNCTION:
* Compares the given number of bytes from one source buffer to another
* source buffer.
*
* INPUTS:
* source1 : pointer to first buffer
* source2 : pointer to second buffer
* bytes : number of bytes to compare
*
* GLOBAL INPUTS:
*
*
* GLOBAL OUTPUTS:
*
* FORMAT:
* SWORD memoryCompare (void *source1, void *source2, DWORD bytes )
*
* RETURNS:
* 0 if identical, else ERROR_DETECT.
*
************************************************************************/
#if SEGMENTED
SWORD memoryCompare(void *source1, void *source2, WORD bytes)
{
/* while all bytes have not been compared */
while (bytes-- != 0)
{
/* compare a byte of source1 to source2 */
if (*(BYTE *)source1 != *(BYTE *)source2)
{
/* if different, return an error */
return (ERR_DETECT);
}
/* if identical, advance to the next byte */
((BYTE *)source1)++;
((BYTE *)source2)++;
}
/* if all bytes are identical, return ERR_NONE */
return (ERR_NONE);
}
#else
SWORD memoryCompare(void *v_source1, void *v_source2, WORD bytes)
{
DWORD source1;
DWORD source2;
source1 = (DWORD)v_source1;
source2 = (DWORD)v_source2;
/* while all bytes have not been compared */
while (bytes-- != 0)
{
/* compare a byte of source1 to source2 */
if (*(BYTE *)source1 != *(BYTE *)source2)
{
/* if different, return an error */
return (ERR_DETECT);
}
/* if identical, advance to the next byte */
(source1)++;
(source2)++;
}
/* if all bytes are identical, return ERR_NONE */
return (ERR_NONE);
}
#endif
/**************************************************************************
* StringCompare
*
* FUNCTION:
* Compares the strings from one source buffer to another
* source buffer.
*
* INPUTS:
* source1 : pointer to first buffer
* source2 : pointer to second buffer
* bytes : maximum number of bytes to compare
*
* GLOBAL INPUTS:
*
*
* GLOBAL OUTPUTS:
*
* FORMAT:
* SWORD stringCompare (void *source1, void *source2, DWORD bytes )
*
* RETURNS:
* 0 if identical, else ERROR_DETECT.
*
************************************************************************/
#if SEGMENTED
SWORD StringCompare(void *source1, void *source2, WORD bytes)
{
/* while all bytes have not been compared */
while (bytes-- != 0)
{
/* compare a byte of source1 to source2 */
if (*(BYTE *)source1 != *(BYTE *)source2)
{
/* if different, return an error */
return (ERR_DETECT);
}
if (*(BYTE *)source1 == 0)
{
break;
}
/* if identical, advance to the next byte */
((BYTE *)source1)++;
((BYTE *)source2)++;
}
/* if all bytes are identical, return ERR_NONE */
return (ERR_NONE);
}
#else
SWORD StringCompare(void *v_source1, void *v_source2, WORD bytes)
{
DWORD source1;
DWORD source2;
source1 = (DWORD)v_source1;
source2 = (DWORD)v_source2;
/* while all bytes have not been compared */
while (bytes-- != 0)
{
/* compare a byte of source1 to source2 */
if (*(BYTE *)source1 != *(BYTE *)source2)
{
/* if different, return an error */
return (ERR_DETECT);
}
if (*(BYTE *)source1 == 0)
{
break;
}
/* if identical, advance to the next byte */
(source1)++;
(source2)++;
}
/* if all bytes are identical, return ERR_NONE */
return (ERR_NONE);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -