[PARPORT] PPUSR/PPDEV for Wine and possible uninterruptible hang

From: Uwe Bonnes (bon@elektron.ikp.physik.tu-darmstadt.de)
Date: Tue Jul 18 2000 - 04:33:02 EDT

  • Next message: Tim Waugh: "Re: [PARPORT] PPUSR/PPDEV for Wine and possible uninterruptible hang"

    Hallo,

    I try to make wine use ppuser/ppdev to implement a direct port acces
    in the user process with the ppuser/ppdev ioctls.

    The first problems is with the (not yet exiting) standard for the
    ppuser/ppdev header which makes it hard for the compile time detection
    of ppuser/ppdev capabilities. Wine is configured via './configure' and
    ideas for a portable detection of ppuser/ppdev capabilities via
    autoconf are welcome. Is ppuser/ppdev available on other system
    then linux?

    The second problem is a real showstopper. This is with run time
    detection of the capabilities of the parport devices given by the user
    in the wine configuration. As it is not know when the user process
    will access what port, I must open and PPCLAIM all user configured
    ports. I must expect this user configuration to be broken. This might
    result in a sequence like

    fd1=open("/dev/parport00",O_RDWR);
    ioctl(fd1,PPCLAIM,0);
    fd2=open("/dev/parport01",O_RDWR);
    ioctl(fd2,PPCLAIM,0);

    In this situation the second ioctl hangs _uninterruptible_ as the
    secon PPCLAIM will wait for a PPVIELD on the first device...

    Even shutting down the machine results in a file system check on reboot.

    Also Ideas to circumvent this situation are welcome!

    A possible timeout is not favorable as it will result in longer wine
    startup times.

    Here is what I tried so long:

    The Vmware vmppuser has an additional PPGETBASE ioctl. I could check
    before claiming a device if that claim would happen on the same base
    adress as of a device already claimed before. In that situation I could
    reject the offening configuration item. However the present
    implementation of vmppuser requires the device to be claimed before
    PPGETBASE is successfull.

    Will PPGETBASE get a standard ioctl? Any reason to disable PPGETBASE
    on a device not PPCLAIMed before?

    Thanks for any help.

    Bye

    Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

    Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
    --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

    -- To unsubscribe, send mail to: linux-parport-request@torque.net --
    -- with the single word "unsubscribe" in the body of the message. --



    This archive was generated by hypermail 2b29 : Tue Jul 18 2000 - 04:33:36 EDT