Elan Programming Manual
Quadrics Ltd.
© Quadrics Ltd. 1998-2003
Edition 5.1 - November 2003
Contents
Chapter 1 - Introduction
Scope of Manual
Audience
Using this Manual
Related Information
Location of Online Documentation
Reader's Comments
Conventions
Chapter 2 - An Overview of the Libraries
Introduction
Programming Model
Direct Memory Access
Process Protection
DMA
Transfers
Events
Elan Threads
Overview of the Elan
Chapter 3 - The Elan Library
Introduction
Compiling
Using the Elan Library
Library Function Categories
Initialisation
ELAN_BASE
ELAN_RAIL
ELAN_GROUP
ELAN_STATE
elan_baseInit
elan_enable_network
elan_disable_network
elan_init
elan_attach
Event Operations
elan_link
elan_wait
elan_poll
elan_done
Tagged Message Passing
ELAN_TPORTSTATS
elan_tportBufFree
elan_tportGetStats
elan_tportInit
elan_tportRxCancel
elan_tportRxDone
elan_tportRxPoll
elan_tportRxStart
elan_tportRxWait
elan_tportTxDone
elan_tportTxStart
elan_tportTxWait
Collective Operations
ELAN_GROUPSTATS
elan_groupGetStats
elan_bcast
elan_hbcast
elan_groupElanMemSize
elan_groupMainMemSize
elan_groupShmMemSize
elan_groupFn_All
elan_groupInit
elan_groupMember
elan_groupMemberVp
elan_createSubGroup
elan_destroySubGroup
elan_gsync
elan_hgsync
elan_reduce
elan_gather
elan_alltoall
Queue Operations
elan_queueTxInit
elan_queueTx
elan_queueRxFnInit
elan_queueRxInit
elan_queueRxPoll
elan_queueRxWait
elan_queueRxComplete
elan_queueMaxSlotSize
elan_mainQueueInit
elan_queueReq
elan_queueWait
elan_queueHaveReq
PutGet Operations
elan_putgetInit
elan_pgvGlobalMemSize
elan_getv
elan_putv
elan_put
elan_doput
elan_get
elan_doget
Locking Operations
elan_lockCtrlInit
elan_lockAlloc
elan_lockUnAlloc
elan_lockInit
elan_lockDestroy
elan_lockLock
elan_lockLockAttempt
elan_lockUnLock
elan_dolockAlloc
elan_dolockUnAlloc
elan_dolockInit
elan_dolockDestroy
elan_dolockLock
elan_dolockLockAttempt
elan_dolockUnLock
Memory Allocation
elan_allocElan
elan_allocMain
elan_allocVaddr
elan_allocQueue
elan_free
elan_createShm
elan_elan2main
elan_main2elan
elan_elan2sdram
elan_sdram2elan
Global Memory Allocation
elan_gallocMain
elan_gallocElan
elan_gallocVaddr
elan_gallocElanVaddr
elan_gallocFree
elan_gallocElanFree
elan_gallocVaddrFree
elan_gallocElanVaddrFree
elan_gallocQueue
Miscellaneous
elan_nRails
elan_checkVersion
elan_version
elan_clock
elan_exception
elan_exceptionStr
elan_eventStr
elan_load_so
elan_find_sym
elan_local_cookie
elan_remote_cookie
elan_runthread
elan_addressable
Chapter 4 - The Elan3 Library
Introduction
Compiling
Using the Elan3 Library
Library Function Categories
Initialisation
_elan3_init
_elan3_fini
elan3_init
elan3_fini
Communication
elan3_addvp
elan3_addbcastvp
elan3_allocatebcastvp
elan3_removevp
elan3_attach
elan3_detach
elan3_block_inputter
elan3_process
DMA
Operations
elan3_local_cookie
elan3_remote_cookie
E3_DMA
E3_DMA_TYPE
_elan3_getdma
_elan3_putdma
elan3_getdma
elan3_putdma
elan3_getdma_main
elan3_putdma_main
Events
elan3_primeevent
E3_RESET_BCOPY_EVENT
_elan3_setevent
_elan3_waitevent
elan3_initevent
elan3_setevent
elan3_waitevent
elan3_initevent_blk
elan3_initevent_word
elan3_initevent_main
elan3_pollevent_blk
elan3_pollevent_word
elan3_waitevent_blk
elan3_waitevent_word
elan3_waitdmaevent
elan3_waitdmaevent0
elan3_waitdmaevent_blk
_elan3_waitevent0
elan3_waitevent0
elan3_waiteventevent
elan3_waiteventevent0
Statistics
elan3_getFlagStats
elan3_getInstCount
elan3_getStatsControl
elan3_setStatsControl
elan3_getStatsCounts
Memory Mapping
elan3_elan2main
elan3_main2elan
elan3_setperm
Accessing Elan
SDRAM
elan3_elan2sdram
elan3_sdram2elan
elan3_read8_sdram
elan3_write8_sdram
elan3_read16_sdram
elan3_write16_sdram
elan3_read32_sdram
elan3_write32_sdram
elan3_read64_sdram
elan3_write64_sdram
elan3_zero16_sdram
elan3_zero32_sdram
elan3_zero64_sdram
elan3_blkclr64_sdram
elan3_zero_byte_sdram
elan3_zero_word_sdram
elan3_zero_dword_sdram
elan3_copy16_to_sdram
elan3_copy32_to_sdram
elan3_copy64_to_sdram
elan3_blkcopy64_to_sdram
elan3_copy_byte_to_sdram
elan3_copy_word_to_sdram
elan3_copy_dword_to_sdram
elan3_copy16_from_sdram
elan3_copy32_from_sdram
elan3_copy64_from_sdram
elan3_blkcopy64_from_sdram
elan3_copy_byte_from_sdram
elan3_copy_word_from_sdram
elan3_copy_dword_from_sdram
elan3_open_sdram
elan3_close_sdram
elan3_setperm_sdram
elan3_map_sdram
Memory Allocation
elan3_allocElan
elan3_allocMain
elan3_free
elan3_freeElan
elan3_createAllocator
elan3_createElanAllocator
Thread Processes
elan3_load_so
elan3_find_sym
_elan3_run
elan3_initthread
elan3_run
elan3_runthread
elan3_runthread_va
Utility
elan3_blkcopy64
elan3_clock
elan3_copy32
elan3_copy64
elan3_copy64clobber
elan3_load64
elan3_store64
elan3_usecspin
elan3_addressable
Chapter 5 - The Elan Control Library
Introduction
Compiling
Using the Elan Control Library
Elan Control Functions
ELAN_CAPABILITY
elanctrl_open
elanctrl_close
elanctrl_create_cap
elanctrl_destroy_cap
elanctrl_create_vp
elanctrl_destroy_vp
Chapter 6 - Statistics Collection
Introduction
RMS Integration
Description of Statistics
Chapter 7 - Elan RTE
Introduction
Overview
Compiling and Linking
elanrte_initialise
elanrte_finalise
elanrte_open
elanrte_close
elanrte_read
elanrte_write
elanrte_printf
elanrte_vp2hostname
Examples
Chapter 8 - Programming Examples
Introduction
Using the Tagged Message Passing Functions
Using the PutGet Functions (basic)
Using the PutGet Functions (advanced)
Chapter 9 - Elan Exceptions
Introduction
Description of Exceptions
Glossary
Index
© Quadrics Ltd. 1998-2003