int CmiRegisterMemory(void *addr, unsigned int size);
This function takes an allocated memory at starting address addr
of length size and registers it with the hardware NIC,
thus making this memory DMAable. This is also called pinning memory on the
NIC hardware, making remote DMA operations on this memory possible.
This directly calls the hardware driver function for registering the memory
region and is usually an expensive operation, so should be used sparingly.
int CmiUnRegisterMemory(void *addr, unsigned int size);
This function unregisters the memory at starting address addr
of length size, making it no longer DMAable. This operation corresponds
to unpinning memory from the NIC hardware. This is also an expensive operation
and should be sparingly used.
For certain machine layers which support a DMA, we support the function
void *CmiDMAAlloc(int size);
This operation allocates a memory region of length size from the
DMAable region on the NIC hardware. The memory region returned is pinned to the
NIC hardware. This is an alternative to CmiRegisterMemory and is implemented
only for hardwares that support this.
November 23, 2009
Converse Homepage
Charm Homepage