/** * MIL-STD 1553B Library - Carlo Gavazzi Space * * Filename : \file Milmem.h * * Purposes : \brief MIL-STD 1553B Library - Carlo Gavazzi Space * * Logical Task : N/A * * Author : CGSpace * * Last Developer : $Author: lorenzo $ * * Revision : $Revision: 1.3 * * Checkout Tag : $Name: $ * * Last Modification : $Date: 2006/10/20 09:22:14 $ * * Location : $RCSfile: Milmem.h,v $ * * \version : $Header: /home/local/cvsrep/OBS_FM/1553_Lib/Milmem.h,v 1.10 2006/10/20 09:22:14 lorenzo Exp $ */ /* * Commitments History : * As reported in Main cvs Documentation * ( https://www.cvshome.org/docs/manual/cvs-1.11.18/cvs_12.html#SEC102 ) * The Modification Log has been posted at End Of File. */ // ---------------------------------------------------------------------------// /* Milmem.h - */ /* Purpose: The module contains the routine for the dynamic allocation of ACE memory Content: The module contains the following functions: - SUBHEADINGS Project : HSO/FIRST BASIC S/W Component : HSO/FIRST DRIVERS S/W Filename : $RCSfile: Milmem.h,v $ CI Number : Revision : Revision: 1.3 Company : Carlo Gavazzi Space S.P.A. Author : Andrea Bertoli Creation Date : 2000/05/15 SEE ALSO: ADD Ref: Inserted here reference with Architectural Design and Detail Document. Other Ref: Notes: */ /* ACEMEM CONSTANTS ------------------------------------------------------*/ /* memory block conditions */ #define UNUSED 0x00 #define PROTECTED 0x01 #define USED 0x02 #define ACTIVE 0x04 #define OFFBOARD 0x08 #define CMDSTACK 0x10 #define PERMANENT 0x20 /* ACEMEM TYPE DEFINITIONS AND STRUCTURES --------------------------------*/ /* memory block handle structure */ /* typedef struct MemBlockStruct { unsigned long m_AbsAddr; unsigned char d_Status; unsigned int j_Size; unsigned int j_Gp; unsigned int j_Condition; struct MemBlockStruct *pw_Next,*pw_Prev; } *MemBlockHandle, MemBlockType; */ /* ACEMEM FUNCTION PROTOTYPES ---------------------------------------------*/ /* get block absolute address from memory block handle */ #define MilGetBlkAddress(pw_MilConf, pw_Blk) (pw_Blk->m_AbsAddr) /* get block absolute size from memory block handle */ #define MilGetBlkSize(pw_MilConf, pw_Blk) (pw_Blk->j_Size) /* closes memory block list and frees all structures */ MilError_t MilCloseBlockList(MilConf_p pw_MilConf); /* clears memory block list of everyting Milt protected blocks */ MilError_t MilClearBlockList(MilConf_p pw_MilConf); /* initializes the memory block list */ MilError_t MilInitBlockList(MilConf_p pw_MilConf); /* creates the handle for a memory block */ MemBlockHandle CreateMemBlockHandle(MilConf_p pw_MilConf); /* removes memory block from list */ MilError_t MemBlockRemove(MilConf_p pw_MilConf, MemBlockHandle pw_Tp); /* inserts memory block before (at) */ MilError_t MemBlockInsert(MilConf_p pw_MilConf, MemBlockHandle pw_Tp,MemBlockHandle pw_Tq); /* swaps one memory block with another */ MilError_t SwapMemBlocks( MilConf_p pw_MilConf, MemBlockHandle pw_Tp, MemBlockHandle pw_Tq); /* creates protected memory block at specific address and size */ MemBlockHandle CreateProtectedMemBlock( MilConf_p pw_MilConf, MemBlockHandle pw_Blk, unsigned long m_Addr, unsigned int j_Size); /* creates permanent memory block at specific address and size */ MemBlockHandle CreatePermanentMemBlock( MilConf_p pw_MilConf, MemBlockHandle pw_Blk, unsigned long m_Addr, unsigned int j_Size); /* allocates memory block within unused memory block (area) */ MemBlockHandle AllocateOnBoard( MilConf_p pw_MilConf, MemBlockHandle pw_Area, unsigned int j_Size); /* allocates an off board memory block (host memory) */ MemBlockHandle AllocOffBoard( MilConf_p pw_MilConf, unsigned int j_Size); /* allocates memory block handle on boundary condition */ MemBlockHandle MilAllocHandleBoundary( MilConf_p pw_MilConf, unsigned int j_Size, unsigned int j_Boundary); /* allocates a memory block and returns the handle */ MemBlockHandle MilAllocHandle( MilConf_p pw_MilConf, unsigned int j_Size); /* frees an allocated memory block */ MilError_t MilReleaseHandle( MilConf_p pw_MilConf, MemBlockHandle pw_Tp); /* finds an unused memory block of >=size with boundry condition and * returns a handle [01-JUN-1995 added boundary parameter] */ MemBlockHandle MilFindSpace( MilConf_p pw_MilConf, unsigned int j_Size, unsigned int j_Boundary); /* write data Milffer to memory block */ MilError_t MilWriteBlk( MilConf_p pw_MilConf, MemBlockHandle pw_BlockHdl, unsigned int *pj_DataPtr,unsigned int j_Size); /* reads memory block contents into data Milffer */ MilError_t MilReadBlk( MilConf_p pw_MilConf, MemBlockHandle pw_BlockHdl, unsigned int *pj_DataPtr, unsigned int j_Size); /* * END * ACEMEM.H (ACE MEMORY MANAGMENT MODULE) */ // ---------------------------------------------------------------------------// /* * modification history * -------------------- * $Log: Milmem.h,v $ * Revision 1.10 2006/10/20 09:22:14 lorenzo * 1553 library updated * * Revision 1.8 2006/10/16 14:19:53 scige * Some More Comments * * Revision 1.7 2006/06/07 11:44:56 scige * Some More Comment * by Scige John Liu IFSI * * Revision 1.6 2006/04/27 10:21:44 scige * Some more Comment alignement before STRONG COMMENTING * * Revision 1.5 2006/02/15 14:56:57 scige * Abstract comment reformatted * History log replaced or moved at end of file * * Revision 1.4 2006/02/15 14:34:03 scige * Some more comments restored * * Revision 1.3 2005/09/16 13:09:40 scige * *** empty log message *** * * Revision 1.1 2005/08/10 12:53:39 scige * Communication Library: 1553 * com1553 * Base Common Version of Spire/Pacs OBS * */