diff options
author | Gabe Black <gabeblack@google.com> | 2019-05-01 20:14:13 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-05-29 04:23:46 +0000 |
commit | 8666440499ef5b175b16efcf9d3a53f0583f0c45 (patch) | |
tree | 8fa4310dcd56908d5c8efbca3854c7444770c8e7 /src/arch/x86 | |
parent | d7c4cad240fd4f378d7362da5e9e44b9f0dd80d3 (diff) | |
download | gem5-8666440499ef5b175b16efcf9d3a53f0583f0c45.tar.xz |
arch, base, dev, sim: Remove now unnecessary casts from PortProxy methods.
Change-Id: Ia73b2d86a10d02fa09c924a4571477bb5f200eb7
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18572
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/arch/x86')
-rw-r--r-- | src/arch/x86/bios/e820.cc | 4 | ||||
-rw-r--r-- | src/arch/x86/bios/intelmp.cc | 16 | ||||
-rw-r--r-- | src/arch/x86/bios/smbios.cc | 67 | ||||
-rw-r--r-- | src/arch/x86/linux/system.cc | 4 | ||||
-rw-r--r-- | src/arch/x86/process.cc | 21 | ||||
-rw-r--r-- | src/arch/x86/pseudo_inst.cc | 4 | ||||
-rw-r--r-- | src/arch/x86/system.cc | 28 |
7 files changed, 64 insertions, 80 deletions
diff --git a/src/arch/x86/bios/e820.cc b/src/arch/x86/bios/e820.cc index a1daf0a04..6cb16c995 100644 --- a/src/arch/x86/bios/e820.cc +++ b/src/arch/x86/bios/e820.cc @@ -50,7 +50,7 @@ template<class T> void writeVal(T val, PortProxy& proxy, Addr &addr) { T guestVal = htog(val); - proxy.writeBlob(addr, (uint8_t *)&guestVal, sizeof(T)); + proxy.writeBlob(addr, &guestVal, sizeof(T)); addr += sizeof(T); } @@ -64,7 +64,7 @@ void X86ISA::E820Table::writeTo(PortProxy& proxy, Addr countAddr, Addr addr) uint8_t guestE820Nr = htog(e820Nr); - proxy.writeBlob(countAddr, (uint8_t *)&guestE820Nr, sizeof(guestE820Nr)); + proxy.writeBlob(countAddr, &guestE820Nr, sizeof(guestE820Nr)); for (int i = 0; i < e820Nr; i++) { writeVal(entries[i]->addr, proxy, addr); diff --git a/src/arch/x86/bios/intelmp.cc b/src/arch/x86/bios/intelmp.cc index 07d2f1333..a9da25a8a 100644 --- a/src/arch/x86/bios/intelmp.cc +++ b/src/arch/x86/bios/intelmp.cc @@ -74,7 +74,7 @@ uint8_t writeOutField(PortProxy& proxy, Addr addr, T val) { uint64_t guestVal = X86ISA::htog(val); - proxy.writeBlob(addr, (uint8_t *)(&guestVal), sizeof(T)); + proxy.writeBlob(addr, &guestVal, sizeof(T)); uint8_t checkSum = 0; while (guestVal) { @@ -98,7 +98,7 @@ writeOutString(PortProxy& proxy, Addr addr, string str, int length) memcpy(cleanedString, str.c_str(), str.length()); memset(cleanedString + str.length(), 0, length - str.length()); } - proxy.writeBlob(addr, (uint8_t *)(&cleanedString), length); + proxy.writeBlob(addr, &cleanedString, length); uint8_t checkSum = 0; for (int i = 0; i < length; i++) @@ -121,7 +121,7 @@ X86ISA::IntelMP::FloatingPointer::writeOut(PortProxy& proxy, Addr addr) uint8_t checkSum = 0; - proxy.writeBlob(addr, (uint8_t *)signature, 4); + proxy.writeBlob(addr, signature, 4); for (int i = 0; i < 4; i++) checkSum += signature[i]; @@ -194,13 +194,13 @@ X86ISA::IntelMP::ConfigTable::writeOut(PortProxy& proxy, Addr addr) { uint8_t checkSum = 0; - proxy.writeBlob(addr, (uint8_t *)signature, 4); + proxy.writeBlob(addr, signature, 4); for (int i = 0; i < 4; i++) checkSum += signature[i]; // Base table length goes here but will be calculated later. - proxy.writeBlob(addr + 6, (uint8_t *)(&specRev), 1); + proxy.writeBlob(addr + 6, &specRev, 1); checkSum += specRev; // The checksum goes here but is still being calculated. @@ -272,8 +272,8 @@ X86ISA::IntelMP::Processor::writeOut( checkSum += writeOutField(proxy, addr + 8, featureFlags); uint32_t reserved = 0; - proxy.writeBlob(addr + 12, (uint8_t *)(&reserved), 4); - proxy.writeBlob(addr + 16, (uint8_t *)(&reserved), 4); + proxy.writeBlob(addr + 12, &reserved, 4); + proxy.writeBlob(addr + 16, &reserved, 4); return 20; } @@ -414,7 +414,7 @@ X86ISA::IntelMP::BusHierarchy::writeOut( checkSum += writeOutField(proxy, addr + 4, parentBus); uint32_t reserved = 0; - proxy.writeBlob(addr + 5, (uint8_t *)(&reserved), 3); + proxy.writeBlob(addr + 5, &reserved, 3); return length; } diff --git a/src/arch/x86/bios/smbios.cc b/src/arch/x86/bios/smbios.cc index 26785f5a8..cd91d2d02 100644 --- a/src/arch/x86/bios/smbios.cc +++ b/src/arch/x86/bios/smbios.cc @@ -77,13 +77,13 @@ composeBitVector(T vec) uint16_t X86ISA::SMBios::SMBiosStructure::writeOut(PortProxy& proxy, Addr addr) { - proxy.writeBlob(addr, (uint8_t *)(&type), 1); + proxy.writeBlob(addr, &type, 1); uint8_t length = getLength(); - proxy.writeBlob(addr + 1, (uint8_t *)(&length), 1); + proxy.writeBlob(addr + 1, &length, 1); uint16_t handleGuest = X86ISA::htog(handle); - proxy.writeBlob(addr + 2, (uint8_t *)(&handleGuest), 2); + proxy.writeBlob(addr + 2, &handleGuest, 2); return length + getStringLength(); } @@ -104,16 +104,15 @@ X86ISA::SMBios::SMBiosStructure::writeOutStrings( // If there are string fields but none of them are used, that's a // special case which is handled by this if. if (strings.size() == 0 && stringFields) { - proxy.writeBlob(addr + offset, (uint8_t *)(&nullTerminator), 1); + proxy.writeBlob(addr + offset, &nullTerminator, 1); offset++; } else { for (it = strings.begin(); it != strings.end(); it++) { - proxy.writeBlob(addr + offset, - (uint8_t *)it->c_str(), it->length() + 1); + proxy.writeBlob(addr + offset, it->c_str(), it->length() + 1); offset += it->length() + 1; } } - proxy.writeBlob(addr + offset, (uint8_t *)(&nullTerminator), 1); + proxy.writeBlob(addr + offset, &nullTerminator, 1); } int @@ -177,26 +176,26 @@ X86ISA::SMBios::BiosInformation::writeOut(PortProxy& proxy, Addr addr) { uint8_t size = SMBiosStructure::writeOut(proxy, addr); - proxy.writeBlob(addr + 0x4, (uint8_t *)(&vendor), 1); - proxy.writeBlob(addr + 0x5, (uint8_t *)(&version), 1); + proxy.writeBlob(addr + 0x4, &vendor, 1); + proxy.writeBlob(addr + 0x5, &version, 1); uint16_t startingAddrSegmentGuest = X86ISA::htog(startingAddrSegment); - proxy.writeBlob(addr + 0x6, (uint8_t *)(&startingAddrSegmentGuest), 2); + proxy.writeBlob(addr + 0x6, &startingAddrSegmentGuest, 2); - proxy.writeBlob(addr + 0x8, (uint8_t *)(&releaseDate), 1); - proxy.writeBlob(addr + 0x9, (uint8_t *)(&romSize), 1); + proxy.writeBlob(addr + 0x8, &releaseDate, 1); + proxy.writeBlob(addr + 0x9, &romSize, 1); uint64_t characteristicsGuest = X86ISA::htog(characteristics); - proxy.writeBlob(addr + 0xA, (uint8_t *)(&characteristicsGuest), 8); + proxy.writeBlob(addr + 0xA, &characteristicsGuest, 8); uint16_t characteristicExtBytesGuest = X86ISA::htog(characteristicExtBytes); - proxy.writeBlob(addr + 0x12, (uint8_t *)(&characteristicExtBytesGuest), 2); + proxy.writeBlob(addr + 0x12, &characteristicExtBytesGuest, 2); - proxy.writeBlob(addr + 0x14, (uint8_t *)(&majorVer), 1); - proxy.writeBlob(addr + 0x15, (uint8_t *)(&minorVer), 1); - proxy.writeBlob(addr + 0x16, (uint8_t *)(&embContFirmwareMajor), 1); - proxy.writeBlob(addr + 0x17, (uint8_t *)(&embContFirmwareMinor), 1); + proxy.writeBlob(addr + 0x14, &majorVer, 1); + proxy.writeBlob(addr + 0x15, &minorVer, 1); + proxy.writeBlob(addr + 0x16, &embContFirmwareMajor, 1); + proxy.writeBlob(addr + 0x17, &embContFirmwareMinor, 1); writeOutStrings(proxy, addr + getLength()); @@ -231,21 +230,16 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, // The checksum goes here, but we're figuring it out as we go. - proxy.writeBlob(addr + 0x5, - (uint8_t *)(&smbiosHeader.entryPointLength), 1); + proxy.writeBlob(addr + 0x5, &smbiosHeader.entryPointLength, 1); mainChecksum += smbiosHeader.entryPointLength; - proxy.writeBlob(addr + 0x6, - (uint8_t *)(&smbiosHeader.majorVersion), 1); + proxy.writeBlob(addr + 0x6, &smbiosHeader.majorVersion, 1); mainChecksum += smbiosHeader.majorVersion; - proxy.writeBlob(addr + 0x7, - (uint8_t *)(&smbiosHeader.minorVersion), 1); + proxy.writeBlob(addr + 0x7, &smbiosHeader.minorVersion, 1); mainChecksum += smbiosHeader.minorVersion; // Maximum structure size goes here, but we'll figure it out later. - proxy.writeBlob(addr + 0xA, - (uint8_t *)(&smbiosHeader.entryPointRevision), 1); + proxy.writeBlob(addr + 0xA, &smbiosHeader.entryPointRevision, 1); mainChecksum += smbiosHeader.entryPointRevision; - proxy.writeBlob(addr + 0xB, - (uint8_t *)(&smbiosHeader.formattedArea), 5); + proxy.writeBlob(addr + 0xB, &smbiosHeader.formattedArea, 5); for (int i = 0; i < 5; i++) mainChecksum += smbiosHeader.formattedArea[i]; @@ -255,7 +249,7 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, uint8_t intChecksum = 0; proxy.writeBlob(addr + 0x10, - (uint8_t *)smbiosHeader.intermediateHeader.anchorString, 5); + smbiosHeader.intermediateHeader.anchorString, 5); for (int i = 0; i < 5; i++) intChecksum += smbiosHeader.intermediateHeader.anchorString[i]; @@ -264,22 +258,21 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, uint32_t tableAddrGuest = X86ISA::htog(smbiosHeader.intermediateHeader.tableAddr); - proxy.writeBlob(addr + 0x18, (uint8_t *)(&tableAddrGuest), 4); + proxy.writeBlob(addr + 0x18, &tableAddrGuest, 4); for (int i = 0; i < 4; i++) { intChecksum += tableAddrGuest; tableAddrGuest >>= 8; } uint16_t numStructs = X86ISA::gtoh(structures.size()); - proxy.writeBlob(addr + 0x1C, (uint8_t *)(&numStructs), 2); + proxy.writeBlob(addr + 0x1C, &numStructs, 2); for (int i = 0; i < 2; i++) { intChecksum += numStructs; numStructs >>= 8; } proxy.writeBlob(addr + 0x1E, - (uint8_t *)(&smbiosHeader.intermediateHeader.smbiosBCDRevision), - 1); + &smbiosHeader.intermediateHeader.smbiosBCDRevision, 1); intChecksum += smbiosHeader.intermediateHeader.smbiosBCDRevision; /* @@ -304,7 +297,7 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, */ maxSize = X86ISA::htog(maxSize); - proxy.writeBlob(addr + 0x8, (uint8_t *)(&maxSize), 2); + proxy.writeBlob(addr + 0x8, &maxSize, 2); for (int i = 0; i < 2; i++) { mainChecksum += maxSize; maxSize >>= 8; @@ -312,7 +305,7 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, // Set the checksum mainChecksum = -mainChecksum; - proxy.writeBlob(addr + 0x4, (uint8_t *)(&mainChecksum), 1); + proxy.writeBlob(addr + 0x4, &mainChecksum, 1); /* * Intermediate header @@ -320,14 +313,14 @@ X86ISA::SMBios::SMBiosTable::writeOut(PortProxy& proxy, Addr addr, uint16_t tableSize = offset; tableSize = X86ISA::htog(tableSize); - proxy.writeBlob(addr + 0x16, (uint8_t *)(&tableSize), 2); + proxy.writeBlob(addr + 0x16, &tableSize, 2); for (int i = 0; i < 2; i++) { intChecksum += tableSize; tableSize >>= 8; } intChecksum = -intChecksum; - proxy.writeBlob(addr + 0x15, (uint8_t *)(&intChecksum), 1); + proxy.writeBlob(addr + 0x15, &intChecksum, 1); } X86ISA::SMBios::BiosInformation * diff --git a/src/arch/x86/linux/system.cc b/src/arch/x86/linux/system.cc index fc5bc2d25..04ab023b8 100644 --- a/src/arch/x86/linux/system.cc +++ b/src/arch/x86/linux/system.cc @@ -80,14 +80,14 @@ LinuxX86System::initState() if (commandLine.length() + 1 > realModeData - commandLineBuff) panic("Command line \"%s\" is longer than %d characters.\n", commandLine, realModeData - commandLineBuff - 1); - physProxy.writeBlob(commandLineBuff, (uint8_t *)commandLine.c_str(), + physProxy.writeBlob(commandLineBuff, commandLine.c_str(), commandLine.length() + 1); // Generate a pointer of the right size and endianness to put into // commandLinePointer. uint32_t guestCommandLineBuff = X86ISA::htog((uint32_t)commandLineBuff); - physProxy.writeBlob(commandLinePointer, (uint8_t *)&guestCommandLineBuff, + physProxy.writeBlob(commandLinePointer, &guestCommandLineBuff, sizeof(guestCommandLineBuff)); /* diff --git a/src/arch/x86/process.cc b/src/arch/x86/process.cc index f4469bd02..0765adea5 100644 --- a/src/arch/x86/process.cc +++ b/src/arch/x86/process.cc @@ -239,7 +239,7 @@ X86_64Process::initState() uint8_t numGDTEntries = 0; uint64_t nullDescriptor = 0; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&nullDescriptor), 8); + &nullDescriptor, 8); numGDTEntries++; SegDescriptor initDesc = 0; @@ -260,7 +260,7 @@ X86_64Process::initState() csLowPLDesc.dpl = 0; uint64_t csLowPLDescVal = csLowPLDesc; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&csLowPLDescVal), 8); + &csLowPLDescVal, 8); numGDTEntries++; @@ -274,7 +274,7 @@ X86_64Process::initState() dsLowPLDesc.dpl = 0; uint64_t dsLowPLDescVal = dsLowPLDesc; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&dsLowPLDescVal), 8); + &dsLowPLDescVal, 8); numGDTEntries++; @@ -288,7 +288,7 @@ X86_64Process::initState() dsDesc.dpl = 3; uint64_t dsDescVal = dsDesc; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&dsDescVal), 8); + &dsDescVal, 8); numGDTEntries++; @@ -302,7 +302,7 @@ X86_64Process::initState() csDesc.dpl = 3; uint64_t csDescVal = csDesc; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&csDescVal), 8); + &csDescVal, 8); numGDTEntries++; @@ -335,7 +335,7 @@ X86_64Process::initState() } tssDescVal = {TSSDescLow, TSSDescHigh}; physProxy.writeBlob(gdtPhysAddr + numGDTEntries * 8, - (uint8_t *)(&tssDescVal), sizeof(tssDescVal)); + &tssDescVal, sizeof(tssDescVal)); numGDTEntries++; @@ -500,7 +500,7 @@ X86_64Process::initState() tss.RSP1_high = tss.IST1_high; tss.RSP2_low = tss.IST1_low; tss.RSP2_high = tss.IST1_high; - physProxy.writeBlob(tssPhysAddr, (uint8_t *)(&tss), sizeof(tss)); + physProxy.writeBlob(tssPhysAddr, &tss, sizeof(tss)); /* Setting IDT gates */ GateDescriptorLow PFGateLow = 0; @@ -520,8 +520,7 @@ X86_64Process::initState() uint64_t high; } PFGate = {PFGateLow, PFGateHigh}; - physProxy.writeBlob(idtPhysAddr + 0xE0, - (uint8_t *)(&PFGate), sizeof(PFGate)); + physProxy.writeBlob(idtPhysAddr + 0xE0, &PFGate, sizeof(PFGate)); /* System call handler */ uint8_t syscallBlob[] = { @@ -999,7 +998,7 @@ X86Process::argsInit(int pageSize, // Write out the sentry void * IntType sentry_NULL = 0; - initVirtMem.writeBlob(sentry_base, (uint8_t*)&sentry_NULL, sentry_size); + initVirtMem.writeBlob(sentry_base, &sentry_NULL, sentry_size); // Write the file name initVirtMem.writeString(file_name_base, filename.c_str()); @@ -1029,7 +1028,7 @@ X86Process::argsInit(int pageSize, copyStringArray(envp, envp_array_base, env_data_base, initVirtMem); copyStringArray(argv, argv_array_base, arg_data_base, initVirtMem); - initVirtMem.writeBlob(argc_base, (uint8_t*)&guestArgc, intSize); + initVirtMem.writeBlob(argc_base, &guestArgc, intSize); ThreadContext *tc = system->getThreadContext(contextIds[0]); // Set the stack pointer register diff --git a/src/arch/x86/pseudo_inst.cc b/src/arch/x86/pseudo_inst.cc index 90000b808..fc71af118 100644 --- a/src/arch/x86/pseudo_inst.cc +++ b/src/arch/x86/pseudo_inst.cc @@ -73,8 +73,8 @@ m5PageFault(ThreadContext *tc) int size = 6; uint64_t is[size]; // reading the interrupt handler stack - proxy.readBlob(ISTVirtAddr + PageBytes - size*sizeof(uint64_t), - (uint8_t *)&is, sizeof(is)); + proxy.readBlob(ISTVirtAddr + PageBytes - size * sizeof(uint64_t), + &is, sizeof(is)); panic("Page fault at addr %#x\n\tInterrupt handler stack:\n" "\tss: %#x\n" "\trsp: %#x\n" diff --git a/src/arch/x86/system.cc b/src/arch/x86/system.cc index 3f44ece3a..2af9ff53c 100644 --- a/src/arch/x86/system.cc +++ b/src/arch/x86/system.cc @@ -141,8 +141,7 @@ X86System::initState() uint8_t numGDTEntries = 0; // Place holder at selector 0 uint64_t nullDescriptor = 0; - physProxy.writeBlob(GDTBase + numGDTEntries * 8, - (uint8_t *)(&nullDescriptor), 8); + physProxy.writeBlob(GDTBase + numGDTEntries * 8, &nullDescriptor, 8); numGDTEntries++; SegDescriptor initDesc = 0; @@ -167,8 +166,7 @@ X86System::initState() // it's beginning in memory and it's actual data, we'll use an // intermediary. uint64_t csDescVal = csDesc; - physProxy.writeBlob(GDTBase + numGDTEntries * 8, - (uint8_t *)(&csDescVal), 8); + physProxy.writeBlob(GDTBase + numGDTEntries * 8, (&csDescVal), 8); numGDTEntries++; @@ -180,8 +178,7 @@ X86System::initState() // 32 bit data segment SegDescriptor dsDesc = initDesc; uint64_t dsDescVal = dsDesc; - physProxy.writeBlob(GDTBase + numGDTEntries * 8, - (uint8_t *)(&dsDescVal), 8); + physProxy.writeBlob(GDTBase + numGDTEntries * 8, (&dsDescVal), 8); numGDTEntries++; @@ -200,8 +197,7 @@ X86System::initState() SegDescriptor tssDesc = initDesc; uint64_t tssDescVal = tssDesc; - physProxy.writeBlob(GDTBase + numGDTEntries * 8, - (uint8_t *)(&tssDescVal), 8); + physProxy.writeBlob(GDTBase + numGDTEntries * 8, (&tssDescVal), 8); numGDTEntries++; @@ -230,25 +226,22 @@ X86System::initState() // read/write, user, not present uint64_t pml4e = X86ISA::htog(0x6); for (int offset = 0; offset < (1 << PML4Bits) * 8; offset += 8) { - physProxy.writeBlob(PageMapLevel4 + offset, (uint8_t *)(&pml4e), 8); + physProxy.writeBlob(PageMapLevel4 + offset, (&pml4e), 8); } // Point to the only PDPT pml4e = X86ISA::htog(0x7 | PageDirPtrTable); - physProxy.writeBlob(PageMapLevel4, (uint8_t *)(&pml4e), 8); + physProxy.writeBlob(PageMapLevel4, (&pml4e), 8); // Page Directory Pointer Table // read/write, user, not present uint64_t pdpe = X86ISA::htog(0x6); - for (int offset = 0; offset < (1 << PDPTBits) * 8; offset += 8) { - physProxy.writeBlob(PageDirPtrTable + offset, - (uint8_t *)(&pdpe), 8); - } + for (int offset = 0; offset < (1 << PDPTBits) * 8; offset += 8) + physProxy.writeBlob(PageDirPtrTable + offset, &pdpe, 8); // Point to the PDTs for (int table = 0; table < NumPDTs; table++) { pdpe = X86ISA::htog(0x7 | PageDirTable[table]); - physProxy.writeBlob(PageDirPtrTable + table * 8, - (uint8_t *)(&pdpe), 8); + physProxy.writeBlob(PageDirPtrTable + table * 8, &pdpe, 8); } // Page Directory Tables @@ -259,8 +252,7 @@ X86System::initState() for (int offset = 0; offset < (1 << PDTBits) * 8; offset += 8) { // read/write, user, present, 4MB uint64_t pdte = X86ISA::htog(0x87 | base); - physProxy.writeBlob(PageDirTable[table] + offset, - (uint8_t *)(&pdte), 8); + physProxy.writeBlob(PageDirTable[table] + offset, &pdte, 8); base += pageSize; } } |