diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-22 19:54:53 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-22 20:01:40 (GMT) |
commit | ae19ffbadc1b2100285a5b5b3d0a4e0a11390904 (patch) | |
tree | 3c2086ab67398a019089a47ca3f362a4bc6db74f /drivers/staging/epl/amix86.c | |
parent | 34e84f39a27d059a3e6ec6e8b94aafa702e6f220 (diff) | |
parent | 9173a8ef24a6b1b8031507b35b8ffe5f85a87692 (diff) | |
download | linux-fsl-qoriq-ae19ffbadc1b2100285a5b5b3d0a4e0a11390904.tar.xz |
Merge branch 'master' into for-linus
Diffstat (limited to 'drivers/staging/epl/amix86.c')
-rw-r--r-- | drivers/staging/epl/amix86.c | 861 |
1 files changed, 0 insertions, 861 deletions
diff --git a/drivers/staging/epl/amix86.c b/drivers/staging/epl/amix86.c deleted file mode 100644 index d40ad91..0000000 --- a/drivers/staging/epl/amix86.c +++ /dev/null @@ -1,861 +0,0 @@ -/**************************************************************************** - - (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29 - www.systec-electronic.com - - Project: openPOWERLINK - - Description: Abstract Memory Interface for x86 compatible - - License: - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. Neither the name of SYSTEC electronic GmbH nor the names of its - contributors may be used to endorse or promote products derived - from this software without prior written permission. For written - permission, please contact info@systec-electronic.com. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - Severability Clause: - - If a provision of this License is or becomes illegal, invalid or - unenforceable in any jurisdiction, that shall not affect: - 1. the validity or enforceability in that jurisdiction of any other - provision of this License; or - 2. the validity or enforceability in other jurisdictions of that or - any other provision of this License. - - ------------------------------------------------------------------------- - - $RCSfile: amix86.c,v $ - - $Author: D.Krueger $ - - $Revision: 1.3 $ $Date: 2008/04/17 21:36:32 $ - - $State: Exp $ - - Build Environment: - ... - - ------------------------------------------------------------------------- - - Revision History: - - r.s.: first implemetation - - 2006-06-13 d.k.: duplicate functions for little endian and big endian - -****************************************************************************/ - -//#include "global.h" -//#include "EplAmi.h" -#include "EplInc.h" - -//--------------------------------------------------------------------------- -// typedef -//--------------------------------------------------------------------------- - -typedef struct { - u16 m_wWord; - -} twStruct; - -typedef struct { - u32 m_dwDword; - -} tdwStruct; - -typedef struct { - u64 m_qwQword; - -} tqwStruct; - -//=========================================================================// -// // -// P U B L I C F U N C T I O N S // -// // -//=========================================================================// - -//--------------------------------------------------------------------------- -// -// Function: AmiSetXXXToBe() -// -// Description: writes the specified value to the absolute address in -// big endian -// -// Parameters: pAddr_p = absolute address -// xXXXVal_p = value -// -// Returns: (none) -// -// State: -// -//--------------------------------------------------------------------------- - -//------------< write u8 in big endian >-------------------------- -/* -void AmiSetByteToBe (void *pAddr_p, u8 bByteVal_p) -{ - - *(u8 *)pAddr_p = bByteVal_p; - -} -*/ - -//------------< write u16 in big endian >-------------------------- - -void AmiSetWordToBe(void * pAddr_p, u16 wWordVal_p) -{ - twStruct *pwStruct; - twStruct wValue; - - wValue.m_wWord = (u16) ((wWordVal_p & 0x00FF) << 8); //LSB to MSB - wValue.m_wWord |= (u16) ((wWordVal_p & 0xFF00) >> 8); //MSB to LSB - - pwStruct = (twStruct *) pAddr_p; - pwStruct->m_wWord = wValue.m_wWord; - -} - -//------------< write u32 in big endian >------------------------- - -void AmiSetDwordToBe(void *pAddr_p, u32 dwDwordVal_p) -{ - tdwStruct *pdwStruct; - tdwStruct dwValue; - - dwValue.m_dwDword = ((dwDwordVal_p & 0x000000FF) << 24); //LSB to MSB - dwValue.m_dwDword |= ((dwDwordVal_p & 0x0000FF00) << 8); - dwValue.m_dwDword |= ((dwDwordVal_p & 0x00FF0000) >> 8); - dwValue.m_dwDword |= ((dwDwordVal_p & 0xFF000000) >> 24); //MSB to LSB - - pdwStruct = (tdwStruct *) pAddr_p; - pdwStruct->m_dwDword = dwValue.m_dwDword; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetXXXToLe() -// -// Description: writes the specified value to the absolute address in -// little endian -// -// Parameters: pAddr_p = absolute address -// xXXXVal_p = value -// -// Returns: (none) -// -// State: -// -//--------------------------------------------------------------------------- - -//------------< write u8 in little endian >-------------------------- -/* -void AmiSetByteToLe (void *pAddr_p, u8 bByteVal_p) -{ - - *(u8 *)pAddr_p = bByteVal_p; - -} -*/ - -//------------< write u16 in little endian >-------------------------- - -void AmiSetWordToLe(void *pAddr_p, u16 wWordVal_p) -{ - twStruct *pwStruct; - - pwStruct = (twStruct *) pAddr_p; - pwStruct->m_wWord = wWordVal_p; - -} - -//------------< write u32 in little endian >------------------------- - -void AmiSetDwordToLe(void *pAddr_p, u32 dwDwordVal_p) -{ - tdwStruct *pdwStruct; - - pdwStruct = (tdwStruct *) pAddr_p; - pdwStruct->m_dwDword = dwDwordVal_p; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetXXXFromBe() -// -// Description: reads the specified value from the absolute address in -// big endian -// -// Parameters: pAddr_p = absolute address -// -// Returns: XXX = value -// -// State: -// -//--------------------------------------------------------------------------- - -//------------< read u8 in big endian >--------------------------- -/* -u8 AmiGetByteFromBe (void *pAddr_p) -{ - - return ( *(u8 *)pAddr_p ); - -} -*/ - -//------------< read u16 in big endian >--------------------------- - -u16 AmiGetWordFromBe(void *pAddr_p) -{ - twStruct *pwStruct; - twStruct wValue; - - pwStruct = (twStruct *) pAddr_p; - - wValue.m_wWord = (u16) ((pwStruct->m_wWord & 0x00FF) << 8); //LSB to MSB - wValue.m_wWord |= (u16) ((pwStruct->m_wWord & 0xFF00) >> 8); //MSB to LSB - - return (wValue.m_wWord); - -} - -//------------< read u32 in big endian >-------------------------- - -u32 AmiGetDwordFromBe(void *pAddr_p) -{ - tdwStruct *pdwStruct; - tdwStruct dwValue; - - pdwStruct = (tdwStruct *) pAddr_p; - - dwValue.m_dwDword = ((pdwStruct->m_dwDword & 0x000000FF) << 24); //LSB to MSB - dwValue.m_dwDword |= ((pdwStruct->m_dwDword & 0x0000FF00) << 8); - dwValue.m_dwDword |= ((pdwStruct->m_dwDword & 0x00FF0000) >> 8); - dwValue.m_dwDword |= ((pdwStruct->m_dwDword & 0xFF000000) >> 24); //MSB to LSB - - return (dwValue.m_dwDword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetXXXFromLe() -// -// Description: reads the specified value from the absolute address in -// little endian -// -// Parameters: pAddr_p = absolute address -// -// Returns: XXX = value -// -// State: -// -//--------------------------------------------------------------------------- - -//------------< read u8 in little endian >--------------------------- -/* -u8 AmiGetByteFromLe (void *pAddr_p) -{ - - return ( *(u8 *)pAddr_p ); - -} -*/ - -//------------< read u16 in little endian >--------------------------- - -u16 AmiGetWordFromLe(void *pAddr_p) -{ - twStruct *pwStruct; - - pwStruct = (twStruct *) pAddr_p; - return (pwStruct->m_wWord); -} - -//------------< read u32 in little endian >-------------------------- - -u32 AmiGetDwordFromLe(void *pAddr_p) -{ - tdwStruct *pdwStruct; - - pdwStruct = (tdwStruct *) pAddr_p; - return (pdwStruct->m_dwDword); -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetDword24ToBe() -// -// Description: sets a 24 bit value to a buffer in big endian -// -// Parameters: pAddr_p = pointer to destination buffer -// dwDwordVal_p = value to set -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetDword24ToBe(void *pAddr_p, u32 dwDwordVal_p) -{ - ((u8 *) pAddr_p)[0] = ((u8 *) & dwDwordVal_p)[2]; - ((u8 *) pAddr_p)[1] = ((u8 *) & dwDwordVal_p)[1]; - ((u8 *) pAddr_p)[2] = ((u8 *) & dwDwordVal_p)[0]; -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetDword24ToLe() -// -// Description: sets a 24 bit value to a buffer in little endian -// -// Parameters: pAddr_p = pointer to destination buffer -// dwDwordVal_p = value to set -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetDword24ToLe(void *pAddr_p, u32 dwDwordVal_p) -{ - ((u8 *) pAddr_p)[0] = ((u8 *) & dwDwordVal_p)[0]; - ((u8 *) pAddr_p)[1] = ((u8 *) & dwDwordVal_p)[1]; - ((u8 *) pAddr_p)[2] = ((u8 *) & dwDwordVal_p)[2]; -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetDword24FromBe() -// -// Description: reads a 24 bit value from a buffer in big endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u32 = read value -// -// State: not tested -// -//--------------------------------------------------------------------------- -u32 AmiGetDword24FromBe(void *pAddr_p) -{ - tdwStruct dwStruct; - - dwStruct.m_dwDword = AmiGetDwordFromBe(pAddr_p); - dwStruct.m_dwDword >>= 8; - - return (dwStruct.m_dwDword); -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetDword24FromLe() -// -// Description: reads a 24 bit value from a buffer in little endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u32 = read value -// -// State: not tested -// -//--------------------------------------------------------------------------- -u32 AmiGetDword24FromLe(void *pAddr_p) -{ - tdwStruct dwStruct; - - dwStruct.m_dwDword = AmiGetDwordFromLe(pAddr_p); - dwStruct.m_dwDword &= 0x00FFFFFF; - - return (dwStruct.m_dwDword); -} - -//#ifdef USE_VAR64 - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword64ToBe() -// -// Description: sets a 64 bit value to a buffer in big endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- -void AmiSetQword64ToBe(void *pAddr_p, u64 qwQwordVal_p) -{ - ((u8 *) pAddr_p)[0] = ((u8 *) & qwQwordVal_p)[7]; - ((u8 *) pAddr_p)[1] = ((u8 *) & qwQwordVal_p)[6]; - ((u8 *) pAddr_p)[2] = ((u8 *) & qwQwordVal_p)[5]; - ((u8 *) pAddr_p)[3] = ((u8 *) & qwQwordVal_p)[4]; - ((u8 *) pAddr_p)[4] = ((u8 *) & qwQwordVal_p)[3]; - ((u8 *) pAddr_p)[5] = ((u8 *) & qwQwordVal_p)[2]; - ((u8 *) pAddr_p)[6] = ((u8 *) & qwQwordVal_p)[1]; - ((u8 *) pAddr_p)[7] = ((u8 *) & qwQwordVal_p)[0]; -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword64ToLe() -// -// Description: sets a 64 bit value to a buffer in little endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- -void AmiSetQword64ToLe(void *pAddr_p, u64 qwQwordVal_p) -{ - u64 *pqwDst; - - pqwDst = (u64 *) pAddr_p; - *pqwDst = qwQwordVal_p; -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword64FromBe() -// -// Description: reads a 64 bit value from a buffer in big endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- -u64 AmiGetQword64FromBe(void *pAddr_p) -{ - tqwStruct qwStruct; - - ((u8 *) & qwStruct.m_qwQword)[0] = ((u8 *) pAddr_p)[7]; - ((u8 *) & qwStruct.m_qwQword)[1] = ((u8 *) pAddr_p)[6]; - ((u8 *) & qwStruct.m_qwQword)[2] = ((u8 *) pAddr_p)[5]; - ((u8 *) & qwStruct.m_qwQword)[3] = ((u8 *) pAddr_p)[4]; - ((u8 *) & qwStruct.m_qwQword)[4] = ((u8 *) pAddr_p)[3]; - ((u8 *) & qwStruct.m_qwQword)[5] = ((u8 *) pAddr_p)[2]; - ((u8 *) & qwStruct.m_qwQword)[6] = ((u8 *) pAddr_p)[1]; - ((u8 *) & qwStruct.m_qwQword)[7] = ((u8 *) pAddr_p)[0]; - - return (qwStruct.m_qwQword); -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword64FromLe() -// -// Description: reads a 64 bit value from a buffer in little endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- -u64 AmiGetQword64FromLe(void *pAddr_p) -{ - tqwStruct *pqwStruct; - tqwStruct qwStruct; - - pqwStruct = (tqwStruct *) pAddr_p; - qwStruct.m_qwQword = pqwStruct->m_qwQword; - - return (qwStruct.m_qwQword); -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword40ToBe() -// -// Description: sets a 40 bit value to a buffer in big endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword40ToBe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u8 *) pAddr_p)[0] = ((u8 *) & qwQwordVal_p)[4]; - ((u8 *) pAddr_p)[1] = ((u8 *) & qwQwordVal_p)[3]; - ((u8 *) pAddr_p)[2] = ((u8 *) & qwQwordVal_p)[2]; - ((u8 *) pAddr_p)[3] = ((u8 *) & qwQwordVal_p)[1]; - ((u8 *) pAddr_p)[4] = ((u8 *) & qwQwordVal_p)[0]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword40ToLe() -// -// Description: sets a 40 bit value to a buffer in little endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword40ToLe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u32 *) pAddr_p)[0] = ((u32 *) & qwQwordVal_p)[0]; - ((u8 *) pAddr_p)[4] = ((u8 *) & qwQwordVal_p)[4]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword40FromBe() -// -// Description: reads a 40 bit value from a buffer in big endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword40FromBe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromBe(pAddr_p); - qwStruct.m_qwQword >>= 24; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword40FromLe() -// -// Description: reads a 40 bit value from a buffer in little endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword40FromLe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromLe(pAddr_p); - qwStruct.m_qwQword &= 0x000000FFFFFFFFFFLL; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword48ToBe() -// -// Description: sets a 48 bit value to a buffer in big endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword48ToBe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u8 *) pAddr_p)[0] = ((u8 *) & qwQwordVal_p)[5]; - ((u8 *) pAddr_p)[1] = ((u8 *) & qwQwordVal_p)[4]; - ((u8 *) pAddr_p)[2] = ((u8 *) & qwQwordVal_p)[3]; - ((u8 *) pAddr_p)[3] = ((u8 *) & qwQwordVal_p)[2]; - ((u8 *) pAddr_p)[4] = ((u8 *) & qwQwordVal_p)[1]; - ((u8 *) pAddr_p)[5] = ((u8 *) & qwQwordVal_p)[0]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword48ToLe() -// -// Description: sets a 48 bit value to a buffer in little endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword48ToLe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u32 *) pAddr_p)[0] = ((u32 *) & qwQwordVal_p)[0]; - ((u16 *) pAddr_p)[2] = ((u16 *) & qwQwordVal_p)[2]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword48FromBe() -// -// Description: reads a 48 bit value from a buffer in big endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword48FromBe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromBe(pAddr_p); - qwStruct.m_qwQword >>= 16; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword48FromLe() -// -// Description: reads a 48 bit value from a buffer in little endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword48FromLe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromLe(pAddr_p); - qwStruct.m_qwQword &= 0x0000FFFFFFFFFFFFLL; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword56ToBe() -// -// Description: sets a 56 bit value to a buffer in big endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword56ToBe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u8 *) pAddr_p)[0] = ((u8 *) & qwQwordVal_p)[6]; - ((u8 *) pAddr_p)[1] = ((u8 *) & qwQwordVal_p)[5]; - ((u8 *) pAddr_p)[2] = ((u8 *) & qwQwordVal_p)[4]; - ((u8 *) pAddr_p)[3] = ((u8 *) & qwQwordVal_p)[3]; - ((u8 *) pAddr_p)[4] = ((u8 *) & qwQwordVal_p)[2]; - ((u8 *) pAddr_p)[5] = ((u8 *) & qwQwordVal_p)[1]; - ((u8 *) pAddr_p)[6] = ((u8 *) & qwQwordVal_p)[0]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetQword56ToLe() -// -// Description: sets a 56 bit value to a buffer in little endian -// -// Parameters: pAddr_p = pointer to destination buffer -// qwQwordVal_p = quadruple word value -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetQword56ToLe(void *pAddr_p, u64 qwQwordVal_p) -{ - - ((u32 *) pAddr_p)[0] = ((u32 *) & qwQwordVal_p)[0]; - ((u16 *) pAddr_p)[2] = ((u16 *) & qwQwordVal_p)[2]; - ((u8 *) pAddr_p)[6] = ((u8 *) & qwQwordVal_p)[6]; - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword56FromBe() -// -// Description: reads a 56 bit value from a buffer in big endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword56FromBe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromBe(pAddr_p); - qwStruct.m_qwQword >>= 8; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetQword56FromLe() -// -// Description: reads a 56 bit value from a buffer in little endian -// -// Parameters: pAddr_p = pointer to source buffer -// -// Return: u64 -// -// State: not tested -// -//--------------------------------------------------------------------------- - -u64 AmiGetQword56FromLe(void *pAddr_p) -{ - - tqwStruct qwStruct; - - qwStruct.m_qwQword = AmiGetQword64FromLe(pAddr_p); - qwStruct.m_qwQword &= 0x00FFFFFFFFFFFFFFLL; - - return (qwStruct.m_qwQword); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiSetTimeOfDay() -// -// Description: sets a TIME_OF_DAY (CANopen) value to a buffer -// -// Parameters: pAddr_p = pointer to destination buffer -// pTimeOfDay_p = pointer to struct TIME_OF_DAY -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiSetTimeOfDay(void *pAddr_p, tTimeOfDay *pTimeOfDay_p) -{ - - AmiSetDwordToLe(((u8 *) pAddr_p), pTimeOfDay_p->m_dwMs & 0x0FFFFFFF); - AmiSetWordToLe(((u8 *) pAddr_p) + 4, pTimeOfDay_p->m_wDays); - -} - -//--------------------------------------------------------------------------- -// -// Function: AmiGetTimeOfDay() -// -// Description: reads a TIME_OF_DAY (CANopen) value from a buffer -// -// Parameters: pAddr_p = pointer to source buffer -// pTimeOfDay_p = pointer to struct TIME_OF_DAY -// -// Return: void -// -// State: not tested -// -//--------------------------------------------------------------------------- - -void AmiGetTimeOfDay(void *pAddr_p, tTimeOfDay *pTimeOfDay_p) -{ - - pTimeOfDay_p->m_dwMs = AmiGetDwordFromLe(((u8 *) pAddr_p)) & 0x0FFFFFFF; - pTimeOfDay_p->m_wDays = AmiGetWordFromLe(((u8 *) pAddr_p) + 4); - -} - -// EOF - -// Die letzte Zeile muß unbedingt eine leere Zeile sein, weil manche Compiler -// damit ein Problem haben, wenn das nicht so ist (z.B. GNU oder Borland C++ Builder). |