HcommMemReg
Applicability
Product |
Supported |
|---|---|
Atlas 350 Accelerator Card |
√ |
x |
|
x |
|
x |
|
x |
|
x |
Function
Registers memory to a specified endpoint.
Prototype
1 | HcommResult HcommMemReg(EndpointHandle endpointHandle, const char *memTag, const CommMem *mem, HcommMemHandle *memHandle) |
Parameters
Parameter |
Input/Output |
Description |
|---|---|---|
endpointHandle |
Input |
Endpoint handle. For details, see EndpointHandle. |
memTag |
Input |
Memory string identifier. |
mem |
Input |
Memory description, including the physical location type, memory address, and memory size in bytes. For details, see CommMem. |
memHandle |
Output |
Registered memory handle. |
Returns
HcommResult: 0 on success; else, failure.
Restrictions
None
Example
const EndpointDesc endpointDesc = {
.protocol = COMM_PROTOCOL_ROCE,
.commAddr = {
.type = COMM_ADDR_TYPE_IP_V4,
.addr = {{192, 168, 1, 100}}
},
.loc = {
.locType = ENDPOINT_LOC_TYPE_DEVICE,
.device = {
.devPhyId = 0,
.superDevId = 0,
.serverIdx = 0,
.superPodIdx = 0
}
},
.raws = {0}
};
EndpointHandle endpointHandle = nullptr;
HcommResult result = HcommEndpointCreate(&endpointDesc, &endpointHandle);
const char *memTag = "HcclBuffer";
CommMem mem = {
.type = COMM_MEM_TYPE_DEVICE,
.addr = reinterpret_cast<void*>(0x1111),
.size = 100
};
HcommMemHandle memHandle;
result = HcommMemReg(endpointHandle, memTag, &mem, &memHandle);
Parent topic: Basic Resource Management