On 21/2/21 9:21 pm, Samuel Thibault wrote:
> Mmm. I guess that's missing _hurd_init initialization. It would
> be tricky to separate out the really basic pieces from proc/auth
> initialization, I'd say it will be a lot less tricky to just make
> hurd_pci.c use the dir_readdir RPC directly on the root port instead of
> going through the readdir layer. dir_readdir is not that complex to use.
It seems to be getting stuck on dir_readdir RPC as well:
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
PCI device_open (irq)
PCI not pci, fallback to kernel
pciaccess: hurd got device master port
PCI device_open (pci)
PCI opening...
PCI open success
enum_devices
enum_devices: pci_port is not null
netfs_S_dir_lookup!
dir_lookup 1
dir_lookup 2
dir_lookup 3
dir_lookup 4
dir_lookup 5
dir_lookup 6
dir_lookup 7
dir_lookup 8
dir_lookup end
enum_devices: root is not null
enum_devices: got to while loop
dir_readdir...
static struct dirent *
simple_readdir(mach_port_t port, uint32_t *first_entry)
{
struct dirent *e;
char *data;
int nentries = 0;
vm_size_t size;
int err;
mach_print ("dir_readdir...");
err = dir_readdir (port, &data, &size, *first_entry, -1, 0, &nentries);
mach_print ("done\n");
if (err) {
mach_print("dir_readdir failed\n");
return NULL;
}
if (nentries) {
*first_entry = *first_entry + 1;
e = (struct dirent *)(data+4);
return e;
}
*first_entry = 0;
return NULL;
}
Damien