gNumKeyTableEntries_c = 100 * 2
gNumKeyIdLookupListEntries_c = 1
gNumKeyDeviceListEntries_c = 1... Accordinging to the MacGlobals.h comment this should be = # of devices but this creates a 100*100 array size for gPIBKeyDeviceDescriptorTable.
gNumKeyUsageListEntries_c =1 x
gNumDeviceTableEntries_c = 100 x
gNumSecurityLevelTableEntries_c = 1 x
Array sizes
gPIBKeyTable[1][200]
gPIBKeyIdLookupDescriptorTable[1][200]
gPIBKeyDeviceDescriptorTable[1][200]
gPIBKeyUsageDescriptorTable[1][200]
gPIBDeviceAddrTable[1][3]
gPIBDeviceTable[1][100]
gPIBSecurityLevelTable[1][1]
To me the gPIBDeviceAddrTable sizing looks strange. By setting gNumKeyDeviceListEntries_c to 1, the check at line 95 in MacGlobals.h changes the sizing to gNumKeyDeviceListEntries_c + 2 instead of gNumDeviceTableEntries_c.