Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

gm_register.c File Reference

#include "gm_call_trace.h"
#include "gm_compiler.h"
#include "gm_debug.h"
#include "gm_internal.h"
#include "gm_io.h"
#include "gm_debug_mem_register.h"
#include "gm_lanai_command.h"

Functions

GM_ENTRY_POINT gm_status_t gm_register_memory_ex (gm_port_t *p, void *_ptr, gm_size_t length, void *_pvma)
GM_ENTRY_POINT gm_status_t gm_register_memory (gm_port_t *p, void *ptr, gm_size_t length)

Detailed Description

This file contains the GM API function gm_register_memory().


Function Documentation

GM_ENTRY_POINT gm_status_t gm_register_memory_ex gm_port_t *    p,
void *    _ptr,
gm_size_t    length,
void *    _pvma
 

gm_register_memory_ex() registers length bytes of user virtual memory starting at ptr for DMA transfers, associating the memory with port virtual address pvma. The memory is locked down (made nonpageable) and DMAs on the region of memory are enabled. Memory may be registered multiple times. Memory may be deregistered using matching calls to gm_deregister_memory(). Note that memory registration is an expensive operation relative to sending and receiving packets, so you should use persistent memory registrations wherever possible. Also note that memory registration is not supported on Solaris 2.7 and earlier due to operating system limitations.

Note that pvma must be used in all subsequent GM API calls to refer to the registered memory region.

gm_register_memory(p,ptr,len) is equivalent to gm_register_memory_ex(p,ptr,len,ptr).

Return values:
GM_SUCCESS  Operation completed successfully.
GM_FAILURE 
GM_PERMISSION_DENIED 
GM_INVALID_PARAMETER 
GM_OUT_OF_MEMORY 
Parameters:
p  (IN) Handle to the GM port.
ptr  (IN) The address of the memory region to be registered.
length  (IN) The length in bytes of the memory region to be registered.
pvma  (IN) The port virtual memory address with which to associate this region.
See also:
gm_register_memory , gm_deregister_memory
Author:
Glenn Brown
Version:
GM_API_VERSION_2_0_6

GM_ENTRY_POINT gm_status_t gm_register_memory gm_port_t *    p,
void *    ptr,
gm_size_t    length
 

gm_register_memory() registers length bytes of user virtual memory starting at ptr for DMA transfers. The memory is locked down (made nonpageable) and DMAs on the region of memory are enabled. Memory may be registered multiple times. Memory may be deregistered using matching calls to gm_deregister_memory(). Note that memory registration is an expensive operation relative to sending and receiving packets, so you should use persistent memory registrations wherever possible. Also note that memory registration is not supported on Solaris 2.7 and earlier due to operating system limitations.

Return values:
GM_SUCCESS  Operation completed successfully.
GM_FAILURE 
GM_PERMISSION_DENIED 
GM_INVALID_PARAMETER 
GM_OUT_OF_MEMORY 
Parameters:
p  (IN) Handle to the GM port.
ptr  (OUT) The address of the memory location to be registered.
length  (IN) The length in bytes of the memory location to be registered.
See also:
gm_deregister_memory , gm_register_memory_ex
Author:
Glenn Brown
Version:
GM_API_VERSION (as defined in gm.h)


Generated on Mon Nov 3 15:39:26 2003 for GM by doxygen1.2.15