Changeset 1137 for trunk/src/ifd


Ignore:
Timestamp:
02/11/09 21:03:22 (3 years ago)
Author:
alonbl
Message:

Allow driver to specify events to poll

Location:
trunk/src/ifd
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ifd/device.c

    r1114 r1137  
    171171} 
    172172 
    173 int ifd_device_get_eventfd(ifd_device_t * dev) 
     173int ifd_device_get_eventfd(ifd_device_t * dev, short *events) 
    174174{ 
    175175        if (!dev || !dev->ops) 
     
    177177        if (!dev->ops->get_eventfd) 
    178178                return -1; 
    179         return dev->ops->get_eventfd(dev); 
     179        return dev->ops->get_eventfd(dev, events); 
    180180} 
    181181 
  • trunk/src/ifd/ifd-ccid.c

    r1136 r1137  
    14041404} 
    14051405 
    1406 static int ccid_get_eventfd(ifd_reader_t * reader) 
     1406static int ccid_get_eventfd(ifd_reader_t * reader, short *events) 
    14071407{ 
    14081408        ccid_status_t *st = (ccid_status_t *) reader->driver_data; 
     
    14151415        } 
    14161416 
    1417         fd = ifd_device_get_eventfd(reader->device); 
     1417        fd = ifd_device_get_eventfd(reader->device, events); 
    14181418 
    14191419        if (fd != -1) { 
  • trunk/src/ifd/ifd-etoken.c

    r1121 r1137  
    146146} 
    147147 
    148 static int et_get_eventfd(ifd_reader_t * reader) 
     148static int et_get_eventfd(ifd_reader_t * reader, short *events) 
    149149{ 
    150150        ifd_debug(1, "called."); 
    151151 
    152         return ifd_device_get_eventfd(reader->device); 
     152        return ifd_device_get_eventfd(reader->device, events); 
    153153} 
    154154 
  • trunk/src/ifd/ifd-etoken64.c

    r1121 r1137  
    129129} 
    130130 
    131 static int et64_get_eventfd(ifd_reader_t * reader) 
     131static int et64_get_eventfd(ifd_reader_t * reader, short *events) 
    132132{ 
    133133        ifd_debug(1, "called."); 
    134134 
    135         return ifd_device_get_eventfd(reader->device); 
     135        return ifd_device_get_eventfd(reader->device, events); 
    136136} 
    137137 
  • trunk/src/ifd/ifd-rutoken.c

    r1128 r1137  
    391391} 
    392392 
    393 static int rutoken_get_eventfd(ifd_reader_t * reader) 
     393static int rutoken_get_eventfd(ifd_reader_t * reader, short *events) 
    394394{ 
    395395        ifd_debug(1, "called."); 
    396396 
    397         return ifd_device_get_eventfd(reader->device); 
     397        return ifd_device_get_eventfd(reader->device, events); 
    398398} 
    399399 
  • trunk/src/ifd/ifdhandler.c

    r1114 r1137  
    237237        } 
    238238        else { 
    239                 sock->fd = ifd_get_eventfd(reader); 
     239                sock->fd = ifd_get_eventfd(reader, &sock->events); 
    240240        } 
    241241        if (sock->fd == -1) { 
     
    248248                sock->error = ifdhandler_error; 
    249249                sock->send = ifdhandler_event; 
    250                 sock->events = POLLOUT; 
    251250                ifd_before_command(reader); 
    252251                ifd_poll(reader); 
  • trunk/src/ifd/internal.h

    r1126 r1137  
    6767        void (*close) (ifd_device_t *); 
    6868 
    69         int (*get_eventfd) (ifd_device_t *); 
     69        int (*get_eventfd) (ifd_device_t *, short *events); 
    7070 
    7171        /* Poll for device presence. This function is called 
     
    165165/* Internal system dependent device functions */ 
    166166extern int ifd_sysdep_usb_poll_presence(ifd_device_t *, struct pollfd *); 
    167 extern int ifd_sysdep_usb_get_eventfd(ifd_device_t *); 
     167extern int ifd_sysdep_usb_get_eventfd(ifd_device_t *, short *events); 
    168168extern int ifd_sysdep_usb_control(ifd_device_t *, 
    169169                                  unsigned int, 
  • trunk/src/ifd/reader.c

    r1114 r1137  
    586586 * Get eventfd 
    587587 */ 
    588 int ifd_get_eventfd(ifd_reader_t *reader) 
     588int ifd_get_eventfd(ifd_reader_t *reader, short *events) 
    589589{ 
    590590        if (reader->driver->ops->get_eventfd) { 
    591                 return reader->driver->ops->get_eventfd(reader); 
     591                return reader->driver->ops->get_eventfd(reader, events); 
    592592        } 
    593593        else { 
  • trunk/src/ifd/sys-bsd.c

    r1114 r1137  
    148148} 
    149149 
    150 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
     150int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
    151151{ 
    152152        return -1; 
  • trunk/src/ifd/sys-linux.c

    r1114 r1137  
    163163 * Event fd to use. 
    164164 */ 
    165 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
    166 { 
     165int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
     166{ 
     167        *events = POLLOUT; 
    167168        return dev->fd; 
    168169} 
  • trunk/src/ifd/sys-null.c

    r1114 r1137  
    3030} 
    3131 
    32 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
     32int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
    3333{ 
    3434        return -1; 
  • trunk/src/ifd/sys-osx.c

    r1114 r1137  
    2020} 
    2121 
    22 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
     22int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
    2323{ 
    2424        return -1; 
  • trunk/src/ifd/sys-solaris.c

    r1114 r1137  
    254254 * Event fd 
    255255 */ 
    256 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
     256int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
    257257{ 
    258258        return -1; 
  • trunk/src/ifd/sys-sunray.c

    r1114 r1137  
    180180 * Event fd 
    181181 */ 
    182 int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev) 
     182int ifd_sysdep_usb_get_eventfd(ifd_device_t * dev, short *events) 
    183183{ 
    184184        return -1; 
  • trunk/src/ifd/usb.c

    r1114 r1137  
    200200} 
    201201 
    202 static int usb_get_eventfd(ifd_device_t * dev) 
    203 { 
    204         int rc; 
    205  
    206         rc = ifd_sysdep_usb_get_eventfd(dev); 
     202static int usb_get_eventfd(ifd_device_t * dev, short *events) 
     203{ 
     204        int rc; 
     205 
     206        rc = ifd_sysdep_usb_get_eventfd(dev, events); 
    207207 
    208208        return rc; 
Note: See TracChangeset for help on using the changeset viewer.