PCCARD - interruptible sleep
Warner Losh
imp at bsdimp.com
Wed Nov 8 17:00:07 UTC 2006
From: Jacqueline P <jackie7691 at yahoo.com.mx>
Subject: PCCARD - interruptible sleep
Date: Wed, 8 Nov 2006 04:34:29 -0600 (CST)
> Hi all
>
> how can I implement an interruptible sleep within my pccard smart card reader driver like ?
> For Linux I do this the following way
>
> // interruptible_pause()
> static inline void ipause(unsigned long amount) {
> set_current_state(TASK_INTERRUPTIBLE);
> schedule_timeout(amount);
> }
>
> and within my driver I use the function DELAY which does a busy wait.
Use msleep instead to do the busy waiting, or limit the amount you
spin.
Alternatively, you can do these things in a task.
> The problem is, that the driver does not recognize when the pccard is detached during a read / write operation.
>
> Does the kernel update the struct device_t, so that the driver can use the function device_is_attached() to determine that the device is detached ?
No, because the device is still attached, even if the hardware is
gone. However, you can ask "bus_child_present(your_devt)" and the
bridge will determine if the hardware is still there.
Warner
More information about the freebsd-drivers
mailing list