blob: c5a67a113ad164c37257f14e9d60f7d706226d78 [file] [log] [blame]
/*******************************************************************************
* Copyright 2001, GALILEO TECHNOLOGY, LTD.
*
* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL. NO RIGHTS ARE GRANTED
* HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT OF MARVELL OR ANY THIRD
* PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE DISCRETION TO REQUEST THAT THIS
* CODE BE IMMEDIATELY RETURNED TO MARVELL. THIS CODE IS PROVIDED "AS IS".
* MARVELL MAKES NO WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS
* ACCURACY, COMPLETENESS OR PERFORMANCE. MARVELL COMPRISES MARVELL TECHNOLOGY
* GROUP LTD. (MTGL) AND ITS SUBSIDIARIES, MARVELL INTERNATIONAL LTD. (MIL),
* MARVELL TECHNOLOGY, INC. (MTI), MARVELL SEMICONDUCTOR, INC. (MSI), MARVELL
* ASIA PTE LTD. (MAPL), MARVELL JAPAN K.K. (MJKK), GALILEO TECHNOLOGY LTD. (GTL)
* AND GALILEO TECHNOLOGY, INC. (GTI).
********************************************************************************
* Mem.h
*
* DESCRIPTION:
* Operating System wrapper. Memory manipulation facility.
*
* DEPENDENCIES:
* None.
*
* FILE REVISION NUMBER:
* $Revision: 1 $
*******************************************************************************/
#ifndef __Memh
#define __Memh
#ifdef __cplusplus
extern "C" {
#endif
/************* Includes *******************************************************/
#include "gtGenTypes.h"
/************* Functions ******************************************************/
/*******************************************************************************
* osBzero
*
* DESCRIPTION:
* Fills the first nbytes characters of the specified buffer with 0
*
* INPUTS:
* start - start address of memory block to be zeroed
* nbytes - size of block to be set
*
* OUTPUTS:
* None
*
* RETURNS:
* None
*
* COMMENTS:
* None
*
*******************************************************************************/
void osBzero
(
IN char * start,
IN GT_U32 nbytes
);
/*******************************************************************************
* osMemSet
*
* DESCRIPTION:
* Stores 'simbol' converted to an unsigned char in each of the elements
* of the array of unsigned char beginning at 'start', with size 'size'.
*
* INPUTS:
* start - start address of memory block for setting
* simbol - character to store, converted to an unsigned char
* size - size of block to be set
*
* OUTPUTS:
* None
*
* RETURNS:
* Pointer to set memory block
*
* COMMENTS:
* None
*
*******************************************************************************/
void * osMemSet
(
IN void * start,
IN int symbol,
IN GT_U32 size
);
/*******************************************************************************
* osMemCpy
*
* DESCRIPTION:
* Copies 'size' characters from the object pointed to by 'source' into
* the object pointed to by 'destination'. If copying takes place between
* objects that overlap, the behavior is undefined.
*
* INPUTS:
* destination - destination of copy
* source - source of copy
* size - size of memory to copy
*
* OUTPUTS:
* None
*
* RETURNS:
* Pointer to destination
*
* COMMENTS:
* None
*
*******************************************************************************/
void * osMemCpy
(
IN void * destination,
IN const void * source,
IN GT_U32 size
);
/*******************************************************************************
* osMemCmp
*
* DESCRIPTION:
* Compare 'size' characters from the object pointed to by 'str1' to
* the object pointed to by 'str2'.
*
* INPUTS:
* str1 - first memory area
* str2 - second memory area
* size - size of memory to compare
*
* OUTPUTS:
* None
*
* RETURNS:
* > 0 - if str1 is alfabetic bigger than str2
* == 0 - if str1 is equal to str2
* < 0 - if str1 is alfabetic smaller than str2
*
* COMMENTS:
* None
*
*******************************************************************************/
GT_32 osMemCmp
(
IN const void *str1,
IN const void *str2,
IN GT_U32 size
);
/*******************************************************************************
* osMalloc
*
* DESCRIPTION:
* Allocates memory block of specified size.
*
* INPUTS:
* size - bytes to allocate
*
* OUTPUTS:
* None
*
* RETURNS:
* Void pointer to the allocated space, or NULL if there is
* insufficient memory available
*
* COMMENTS:
* None
*
*******************************************************************************/
void *osMalloc
(
IN GT_U32 size
);
/*******************************************************************************
* osRealloc
*
* DESCRIPTION:
* Reallocate memory block of specified size.
*
* INPUTS:
* ptr - pointer to previously allocated buffer
* size - bytes to allocate
*
* OUTPUTS:
* None
*
* RETURNS:
* Void pointer to the allocated space, or NULL if there is
* insufficient memory available
*
* COMMENTS:
* None
*
*******************************************************************************/
void *osRealloc
(
IN void * ptr ,
IN GT_U32 size
);
/*******************************************************************************
* osFree
*
* DESCRIPTION:
* Deallocates or frees a specified memory block.
*
* INPUTS:
* memblock - previously allocated memory block to be freed
*
* OUTPUTS:
* None
*
* RETURNS:
* None
*
* COMMENTS:
* None
*
*******************************************************************************/
void osFree
(
IN void* const memblock
);
/*******************************************************************************
* osCacheDmaMalloc
*
* DESCRIPTION:
* Allocate a cache-safe buffer of specified size for DMA devices
* and drivers
*
* INPUTS:
* size - bytes to allocate
*
* OUTPUTS:
* None
*
* RETURNS:
* A pointer to the cache-safe buffer, or NULL
*
* COMMENTS:
* None
*
*******************************************************************************/
void *osCacheDmaMalloc
(
IN GT_U32 size
);
/*******************************************************************************
* osCacheDmaFree
*
* DESCRIPTION:
* Free the buffer acquired with osCacheDmaMalloc()
*
* INPUTS:
* ptr - pointer to malloc/free buffer
*
* OUTPUTS:
* None
*
* RETURNS:
* GT_OK - on success
* GT_FAIL - on error
*
* COMMENTS:
* None
*
*******************************************************************************/
GT_STATUS osCacheDmaFree
(
IN void *ptr
);
/*******************************************************************************
* osPhy2Virt
*
* DESCRIPTION:
* Converts physical address to virtual.
*
* INPUTS:
* phyAddr - physical address
*
* OUTPUTS:
* virtAddr - virtual address
*
* RETURNS:
* GT_OK - on success
* GT_FAIL - on error
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS osPhy2Virt
(
IN GT_U32 phyAddr,
OUT GT_U32 *virtAddr
);
/*******************************************************************************
* osVirt2Phy
*
* DESCRIPTION:
* Converts virtual address to physical.
*
* INPUTS:
* virtAddr - virtual address
*
* OUTPUTS:
* phyAddr - physical address
*
* RETURNS:
* GT_OK - on success
* GT_FAIL - on error
*
* COMMENTS:
*
*******************************************************************************/
GT_STATUS osVirt2Phy
(
IN GT_U32 virtAddr,
OUT GT_U32 *phyAddr
);
#ifdef __cplusplus
}
#endif
#endif /* __Memh */
/* Do Not Add Anything Below This Line */