diff options
Diffstat (limited to 'arch/arm/plat-omap/include/dspbridge/dmm.h')
-rw-r--r-- | arch/arm/plat-omap/include/dspbridge/dmm.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/dspbridge/dmm.h b/arch/arm/plat-omap/include/dspbridge/dmm.h new file mode 100644 index 000000000000..ef37668f1cad --- /dev/null +++ b/arch/arm/plat-omap/include/dspbridge/dmm.h @@ -0,0 +1,85 @@ +/* + * dmm.h + * + * DSP-BIOS Bridge driver support functions for TI OMAP processors. + * + * Copyright (C) 2005-2006 Texas Instruments, Inc. + * + * This package is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + + +/* + * ======== dmm.h ======== + * Purpose: + * The Dynamic Memory Mapping(DMM) module manages the DSP Virtual address + * space that can be directly mapped to any MPU buffer or memory region + * + * Public Functions: + * + *! Revision History: + *! ================ + *! 20-Feb-2004 sb: Created. + *! + */ + +#ifndef DMM_ +#define DMM_ + +#include <dspbridge/dbdefs.h> + + struct DMM_OBJECT; + +/* DMM attributes used in DMM_Create() */ + struct DMM_MGRATTRS { + u32 reserved; + } ; + +#define DMMPOOLSIZE 0x4000000 + +/* + * ======== DMM_GetHandle ======== + * Purpose: + * Return the dynamic memory manager object for this device. + * This is typically called from the client process. + */ + + extern DSP_STATUS DMM_GetHandle(DSP_HPROCESSOR hProcessor, + OUT struct DMM_OBJECT **phDmmMgr); + + extern DSP_STATUS DMM_ReserveMemory(struct DMM_OBJECT *hDmmMgr, + u32 size, + u32 *pRsvAddr); + + extern DSP_STATUS DMM_UnReserveMemory(struct DMM_OBJECT *hDmmMgr, + u32 rsvAddr); + + extern DSP_STATUS DMM_MapMemory(struct DMM_OBJECT *hDmmMgr, u32 addr, + u32 size); + + extern DSP_STATUS DMM_UnMapMemory(struct DMM_OBJECT *hDmmMgr, + u32 addr, + u32 *pSize); + + extern DSP_STATUS DMM_Destroy(struct DMM_OBJECT *hDmmMgr); + + extern DSP_STATUS DMM_DeleteTables(struct DMM_OBJECT *hDmmMgr); + + extern DSP_STATUS DMM_Create(OUT struct DMM_OBJECT **phDmmMgr, + struct DEV_OBJECT *hDevObject, + IN CONST struct DMM_MGRATTRS *pMgrAttrs); + + extern bool DMM_Init(void); + + extern void DMM_Exit(void); + + extern DSP_STATUS DMM_CreateTables(struct DMM_OBJECT *hDmmMgr, + u32 addr, u32 size); + extern u32 *DMM_GetPhysicalAddrTable(void); +#endif /* DMM_ */ |