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