The code in oldconfig.c is called by process.c/__wine_kernel_init(), on server startup. The entries are volatile, and are dynamically created if you count scanning
wineprefix/dosdevices/
and doing a stat() on anything named com[1-9] it finds there every time wine starts up. I could just call get_dos_device and let it do the stat calls, but it would be less efficient,
and
you'd end up with registry entries for the successes of get_default_com_device, not just the
ones
symlinked in dosdevices
You don't want to depend on the symlinks, things should work without requiring the user to create any symlink. It should depend on what actual devices are present on the machine, and probably be done somewhere in the HAL support.
Would using get_dos_device() be better, since that does fall through to default behaviour when the symlink isn't there? I chose oldconfig.c since that's where the \DEVICEMAP\Scsi entries get built. Would the scsi stuff want moving over to HAL too?
A C Hurst A.Hurst@sheffield.ac.uk writes:
Would using get_dos_device() be better, since that does fall through to default behaviour when the symlink isn't there?
No, it doesn't take into account existing devices either.
I chose oldconfig.c since that's where the \DEVICEMAP\Scsi entries get built. Would the scsi stuff want moving over to HAL too?
Yes, and it should be synchronized with the fake disk devices we currently create.