/* $Id: rmlib.h,v 1.1 2002/12/13 12:17:23 hin Exp $ */ /********************************************************************************* * * * Copyright (C) 1993 - 2000 * * Dolphin Interconnect Solutions AS * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as published by * * the Free Software Foundation; either version 2.1 of the License, * * or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * * * *********************************************************************************/ /********************************************************************************/ /* This header file contains the declarations of the SCI Reflective Memory */ /* library rmlib. The implementation of the library functions is in rmlib.c. */ /* The library contains all the functions that operate on the reflective */ /* memory. */ /* */ /* NB! */ /* */ /* DOLPHIN'S SCI REFLECTIVE MEMORY FILES ARE UNDER DEVELOPMENT AND MAY CHANGE. */ /* PLEASE CONTACT DOLPHIN FOR FURTHER INFORMATION. */ /* */ /* */ /********************************************************************************/ #include "sisci_error.h" #include "sisci_api.h" #include "sisci_demolib.h" #include "sisci_types.h" unsigned int seqerr, syncseqerr; #ifndef _RMLIB_H #define _RMLIB_H #if defined(_REENTRANT) #define _RMLIB_EXPAND_NAME(name) _RMLIB_MT_ ## name #else #define _RMLIB_EXPAND_NAME(name) _RMLIB_ST_ ## name #endif #ifdef __sparc #define CACHE_SIZE 2097152 #else #define CACHE_SIZE 8192 #endif /*********************************************************************************/ /* FLAG VALUES */ /*********************************************************************************/ #define REFLECT_ERRCHECK 0x2 struct ReflectiveMemorySpace { unsigned int localAdapterNo; unsigned int localNodeId; unsigned int remoteNodeId; sci_desc_t sd; sci_desc_t syncsd; sci_map_t localMap; sci_map_t remoteMap; unsigned int localSegmentId; unsigned int remoteSegmentId; unsigned int syncSegmentId; unsigned int sync_rSegmentId; unsigned int segmentSize; unsigned int *localMapAddr; volatile unsigned int *remoteMapAddr; sci_local_segment_t localSegment; sci_remote_segment_t remoteSegment; sci_local_segment_t syncSegment; sci_remote_segment_t sync_rSegment; sci_map_t syncMap; sci_map_t sync_rMap; sci_sequence_t syncsequence; sci_sequence_t sequence; unsigned int protection; unsigned int retry_value; sci_sequence_status_t sequenceStatus, syncsequenceStatus; volatile unsigned int *syncMapAddr; volatile unsigned int *sync_rMapAddr; }; /*********************************************************************************/ /* P R I N T R E F L E C T I V E M E M O R Y S P A C E */ /* */ /*********************************************************************************/ #define ReflectPrintParameters _RMLIB_EXPAND_NAME(ReflectPrintParameters) void ReflectPrintParameters(FILE *stream, struct ReflectiveMemorySpace RM_space); /*********************************************************************************/ /* R E F L E C T D M A S E T U P */ /* */ /*********************************************************************************/ #define ReflectDmaSetup _RMLIB_EXPAND_NAME(ReflectDmaSetup) sci_error_t ReflectDmaSetup(struct ReflectiveMemorySpace RM_space, sci_dma_queue_t *dmaQueue); /*********************************************************************************/ /* R E F L E C T D M A R E M O V E */ /* */ /*********************************************************************************/ #define ReflectDmaRemove _RMLIB_EXPAND_NAME(ReflectDmaRemove) sci_error_t ReflectDmaRemove(sci_dma_queue_t dmaQueue); /*********************************************************************************/ /* R E F L E C T D M A R U N */ /* */ /*********************************************************************************/ #define ReflectDmaRun _RMLIB_EXPAND_NAME(ReflectDmaRun) sci_error_t ReflectDmaRun(struct ReflectiveMemorySpace RM_space, unsigned int* privateSrc, unsigned int size, unsigned int offset, sci_dma_queue_t dmaQueue); /*********************************************************************************/ /* C L O S E R E F L E C T I V E M E M O R Y S P A C E */ /* */ /*********************************************************************************/ #define ReflectClose _RMLIB_EXPAND_NAME(ReflectClose) sci_error_t ReflectClose(struct ReflectiveMemorySpace RM_space, unsigned int segment_no); /*********************************************************************************/ /* O P E N R E F L E C T I V E M E M O R Y S P A C E */ /* */ /*********************************************************************************/ #define ReflectOpen _RMLIB_EXPAND_NAME(ReflectOpen) sci_error_t ReflectOpen(struct ReflectiveMemorySpace *RM_space, unsigned int size, unsigned int segment_no, unsigned int localAdapterNo, unsigned int remoteNodeId, unsigned int protection, unsigned int retry_value); /*********************************************************************************/ /* R E F L E C T G E T A C C E S S */ /* */ /*********************************************************************************/ #define ReflectGetAccess _RMLIB_EXPAND_NAME(ReflectGetAccess) sci_error_t ReflectGetAccess(struct ReflectiveMemorySpace *RM_space); /*********************************************************************************/ /* R E F L E C T R E L E A S E A C C E S S */ /* */ /*********************************************************************************/ #define ReflectReleaseAccess _RMLIB_EXPAND_NAME(ReflectReleaseAccess) sci_error_t ReflectReleaseAccess(struct ReflectiveMemorySpace *RM_space); /*********************************************************************************/ /* R E F L E C T D M A */ /* */ /*********************************************************************************/ #define ReflectDma _RMLIB_EXPAND_NAME(ReflectDma) sci_error_t ReflectDma(struct ReflectiveMemorySpace RM_space, unsigned int* privateSrc, unsigned int size, unsigned int offset); /*********************************************************************************/ /* R E F L E C T M E M C O P Y */ /* */ /*********************************************************************************/ #define ReflectMemCopy _RMLIB_EXPAND_NAME(ReflectMemCopy) sci_error_t ReflectMemCopy(struct ReflectiveMemorySpace RM_space, unsigned int* privateSrc, unsigned int size, unsigned int offset, unsigned int flags); /*********************************************************************************/ /* R E F L E C T S E T */ /* */ /*********************************************************************************/ #define ReflectSet _RMLIB_EXPAND_NAME(ReflectSet) sci_error_t ReflectSet(struct ReflectiveMemorySpace RM_space, unsigned int value, unsigned int size, unsigned int offset, unsigned int flags ); /*********************************************************************************/ /* R E F L E C T P R I N T */ /* */ /*********************************************************************************/ #define ReflectPrint _RMLIB_EXPAND_NAME(ReflectPrint) sci_error_t ReflectPrint(FILE *stream, struct ReflectiveMemorySpace RM_space, unsigned int size, unsigned int offset ); #endif