Add memwrite word lengths

This commit is contained in:
2026-04-12 17:07:41 +03:00
parent ff84fcfbf1
commit 5794bbc5ff

View File

@@ -30,6 +30,7 @@ void freeDevMem(device_mem_t* devMem)
free(devMem->memwriteCellSegments);
free(devMem->memwriteValues[0]);
free(devMem->memwriteValues);
free(devMem->memwriteWordLengths);
free(devMem->cells);
free(devMem->smartAddrReadHandlers);
free(devMem->smartAddrWriteHandlers);
@@ -207,6 +208,23 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
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 smartAddrWriteMask = 0;
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(memwriteValues);
free(memwriteValuesContainers);
free(memwriteWordLengths);
return NULL;
}
@@ -245,6 +264,7 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
free(memwriteCellSegments);
free(memwriteValues);
free(memwriteValuesContainers);
free(memwriteWordLengths);
return NULL;
}
@@ -316,6 +336,7 @@ device_mem_t* genDevMem(device_specs_t* devSpec, char* errbuf)
devMem->memreadCellAddrs = memreadCellAddrs;
devMem->memwriteCellAddrs = memwriteCellAddrs;
devMem->memwriteCellSegments = memwriteCellSegments;
devMem->memwriteWordLengths = memwriteWordLengths;
devMem->memwriteValues = memwriteValues;
devMem->memreadLen = 0;
devMem->memwriteLen = 0;