Switch bga(4) to the new PCI API.

This commit is contained in:
Jonas 'Sortie' Termansen 2022-10-31 22:45:47 +01:00
parent aefec2f7cd
commit a8c05711aa
1 changed files with 17 additions and 16 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2014, 2016, 2017 Jonas 'Sortie' Termansen. * Copyright (c) 2012, 2014, 2016, 2017, 2022 Jonas 'Sortie' Termansen.
* *
* Permission to use, copy, modify, and distribute this software for any * Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@ -238,6 +238,7 @@ bool BGADevice::Initialize()
Video::ConfigureDevice(this); Video::ConfigureDevice(this);
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
if ( guest_additions ) if ( guest_additions )
guest_additions->ReadyVideoDevice(device_index); guest_additions->ReadyVideoDevice(device_index);
#endif #endif
@ -609,24 +610,24 @@ static void TryInitializeDevice(uint32_t devaddr)
} }
} }
static bool OnDevice(uint32_t devaddr, const pciid_t*, const pcitype_t*, void*,
void*)
{
TryInitializeDevice(devaddr);
return true;
}
void Init() void Init()
{ {
pcifind_t bga_pcifind; pcifind_t patterns[2];
memset(&bga_pcifind, 255, sizeof(bga_pcifind)); memset(&patterns[0], 255, sizeof(patterns[0]));
bga_pcifind.vendorid = 0x1234; patterns[0].vendorid = 0x1234;
bga_pcifind.deviceid = 0x1111; patterns[0].deviceid = 0x1111;
memset(&patterns[1], 255, sizeof(patterns[1]));
patterns[1].vendorid = 0x80EE;
patterns[1].deviceid = 0xBEEF;
uint32_t devaddr = 0; PCI::Search(OnDevice, NULL, patterns, 2);
while ( (devaddr = PCI::SearchForDevices(bga_pcifind, devaddr)) )
TryInitializeDevice(devaddr);
memset(&bga_pcifind, 255, sizeof(bga_pcifind));
bga_pcifind.vendorid = 0x80EE;
bga_pcifind.deviceid = 0xBEEF;
devaddr = 0;
while ( (devaddr = PCI::SearchForDevices(bga_pcifind, devaddr)) )
TryInitializeDevice(devaddr);
} }
} // namespace BGA } // namespace BGA