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