Changeset 1811

Show
Ignore:
Timestamp:
04/17/10 12:15:54 (2 years ago)
Author:
arnonym
Message:

According to adi [*] this patch enables the 2.0-branch to run on the new stack. See #261.

Lets see when 2.0.1 gets released...

[*] I couldn't verify this yet, my kernel (2.6.31) is too old.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/libffado-2.0/src/libieee1394/IsoHandler.cpp

    r1722 r1811  
    8585   , m_speed( RAW1394_ISO_SPEED_400 ) 
    8686   , m_prebuffers( 0 ) 
    87    , m_dont_exit_iterate_loop( true ) 
    8887   , m_State( eHS_Stopped ) 
    8988   , m_NextState( eHS_Stopped ) 
     
    425424 
    426425    // iterate the client if required 
    427     if(m_Client) { 
    428         enum raw1394_iso_disposition retval = m_Client->putPacket(data, length, channel, tag, sy, pkt_ctr, dropped_cycles); 
    429         if (retval == RAW1394_ISO_OK) { 
    430             if (m_dont_exit_iterate_loop) { 
    431                 return RAW1394_ISO_OK; 
    432             } else { 
    433                 m_dont_exit_iterate_loop = true; 
    434                 debugOutput(DEBUG_LEVEL_VERBOSE, 
    435                                 "(%p) loop exit requested\n", 
    436                                 this); 
    437                 return RAW1394_ISO_DEFER; 
    438             } 
    439         } else { 
    440             return retval; 
    441         } 
    442     } 
     426    if(m_Client) 
     427        return m_Client->putPacket(data, length, channel, tag, sy, pkt_ctr, dropped_cycles); 
    443428 
    444429    return RAW1394_ISO_OK; 
     
    575560        } 
    576561        #endif 
    577         if (retval == RAW1394_ISO_OK) { 
    578             if (m_dont_exit_iterate_loop) { 
    579                 return RAW1394_ISO_OK; 
    580             } else { 
    581                 m_dont_exit_iterate_loop = true; 
    582                 debugOutput(DEBUG_LEVEL_VERBOSE, 
    583                                 "(%p) loop exit requested\n", 
    584                                 this); 
    585                 return RAW1394_ISO_DEFER; 
    586             } 
    587         } else { 
    588562            return retval; 
    589         } 
    590563    } 
    591564 
  • branches/libffado-2.0/src/libieee1394/IsoHandler.h

    r1526 r1811  
    143143    bool canIterateClient(); // FIXME: implement with functor 
    144144 
    145     /** 
    146      * @brief request that the handler exits the packet processing loop ASAP 
    147      * 
    148      * The raw1394 lib doesn't provide a means to stop the packet iteration loop 
    149      * except when the iterate callback returns a DEFER value. Calling this function 
    150      * will make the callback return DEFER ASAP. 
    151      */ 
    152     void requestIterateLoopExit() {m_dont_exit_iterate_loop = false;}; 
    153     /** 
    154      * @brief allow the handler to stay in the packet processing loop 
    155      * 
    156      * This resets the state set by requestIterateLoopExit() 
    157      */ 
    158     void allowIterateLoop() {m_dont_exit_iterate_loop = true;}; 
    159  
    160145 
    161146    /** 
     
    203188    enum raw1394_iso_speed m_speed; 
    204189    unsigned int m_prebuffers; 
    205     bool m_dont_exit_iterate_loop; 
    206190 
    207191    // the state machine 
  • branches/libffado-2.0/src/libieee1394/IsoHandlerManager.cpp

    r1722 r1811  
    259259                events = POLLIN | POLLPRI; 
    260260                no_one_to_poll = false; 
    261                 // if we are going to poll() it, let's ensure 
    262                 // it can run until someone wants it to exit 
    263                 h->allowIterateLoop(); 
    264261            } 
    265262            m_poll_fds_shadow[i].events = events;