Add memwrite word lengths
This commit is contained in:
21
src/device.c
21
src/device.c
@@ -30,6 +30,7 @@ void freeDevMem(device_mem_t* devMem)
|
|||||||
free(devMem->memwriteCellSegments);
|
free(devMem->memwriteCellSegments);
|
||||||
free(devMem->memwriteValues[0]);
|
free(devMem->memwriteValues[0]);
|
||||||
free(devMem->memwriteValues);
|
free(devMem->memwriteValues);
|
||||||
|
free(devMem->memwriteWordLengths);
|
||||||
free(devMem->cells);
|
free(devMem->cells);
|
||||||
free(devMem->smartAddrReadHandlers);
|
free(devMem->smartAddrReadHandlers);
|
||||||
free(devMem->smartAddrWriteHandlers);
|
free(devMem->smartAddrWriteHandlers);
|
||||||
@@ -207,6 +208,23 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
|
|||||||
memwriteValues[i] = &memwriteValuesContainers[i];
|
memwriteValues[i] = &memwriteValuesContainers[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t* memwriteWordLengths = calloc(MEM_ACCESS_INTERCEPT_BUF_SIZE, sizeof(uint8_t));
|
||||||
|
if(memwriteWordLengths == NULL)
|
||||||
|
{
|
||||||
|
sprintf(errbuf, "unable to allocate write interception addrs");
|
||||||
|
free(devMem->memsegShifts);
|
||||||
|
free(devMem);
|
||||||
|
free(rawCells);
|
||||||
|
free(memreadCellAddrs);
|
||||||
|
free(cells);
|
||||||
|
free(cellNames);
|
||||||
|
free(memwriteCellAddrs);
|
||||||
|
free(memwriteCellSegments);
|
||||||
|
free(memwriteValues);
|
||||||
|
free(memwriteValuesContainers);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t smartAddrReadMask = 0;
|
uint64_t smartAddrReadMask = 0;
|
||||||
uint64_t smartAddrWriteMask = 0;
|
uint64_t smartAddrWriteMask = 0;
|
||||||
mem_h_read_handler* smartAddrReadHandlers = calloc(memTotalSize, sizeof(mem_h_read_handler));
|
mem_h_read_handler* smartAddrReadHandlers = calloc(memTotalSize, sizeof(mem_h_read_handler));
|
||||||
@@ -225,6 +243,7 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
|
|||||||
free(memwriteCellSegments);
|
free(memwriteCellSegments);
|
||||||
free(memwriteValues);
|
free(memwriteValues);
|
||||||
free(memwriteValuesContainers);
|
free(memwriteValuesContainers);
|
||||||
|
free(memwriteWordLengths);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,6 +264,7 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
|
|||||||
free(memwriteCellSegments);
|
free(memwriteCellSegments);
|
||||||
free(memwriteValues);
|
free(memwriteValues);
|
||||||
free(memwriteValuesContainers);
|
free(memwriteValuesContainers);
|
||||||
|
free(memwriteWordLengths);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -316,6 +336,7 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
|
|||||||
devMem->memreadCellAddrs = memreadCellAddrs;
|
devMem->memreadCellAddrs = memreadCellAddrs;
|
||||||
devMem->memwriteCellAddrs = memwriteCellAddrs;
|
devMem->memwriteCellAddrs = memwriteCellAddrs;
|
||||||
devMem->memwriteCellSegments = memwriteCellSegments;
|
devMem->memwriteCellSegments = memwriteCellSegments;
|
||||||
|
devMem->memwriteWordLengths = memwriteWordLengths;
|
||||||
devMem->memwriteValues = memwriteValues;
|
devMem->memwriteValues = memwriteValues;
|
||||||
devMem->memreadLen = 0;
|
devMem->memreadLen = 0;
|
||||||
devMem->memwriteLen = 0;
|
devMem->memwriteLen = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user