Lines Matching refs:bus

7 	Part of Open SCSI bus manager
9 Handling of bus/device blocking. Inline functions defined
10 here don't wake service thread if required and don't lock bus, so
61 ADD_CDL_LIST_HEAD( device, scsi_device_info, device->bus->waiting_devices, waiting_ );
74 ADD_CDL_LIST_TAIL( device, scsi_device_info, device->bus->waiting_devices, waiting_ );
87 REMOVE_CDL_LIST( device, device->bus->waiting_devices, waiting_ );
93 // set overflow bit of device; this will not remove device from bus queue!
101 // set overflow bit of bus
103 static inline void scsi_set_bus_overflow( scsi_bus_info *bus )
105 bus->lock_count += bus->sim_overflow ^ 1;
106 bus->sim_overflow = 1;
109 // clear overflow bit of device; this will not add device to bus queue!
117 // clear overflow bit of bus
119 static inline void scsi_clear_bus_overflow( scsi_bus_info *bus )
121 bus->lock_count -= bus->sim_overflow;
122 bus->sim_overflow = 0;
125 // check whether bus has some pending requests it can process now
126 static inline bool scsi_can_service_bus( scsi_bus_info *bus )
128 // bus must not be blocked and requests pending
129 return (bus->lock_count == 0) & (bus->waiting_devices != NULL);
132 // unblock bus
134 static inline void scsi_unblock_bus_noresume( scsi_bus_info *bus, bool by_SIM )
136 if( bus->blocked[by_SIM] > 0 ) {
137 --bus->blocked[by_SIM];
138 --bus->lock_count;
140 panic( "Tried to unblock bus %d which wasn't blocked",
141 bus->path_id );
155 device->bus->path_id, device->target_id, device->target_lun );
160 // block bus
162 static inline void scsi_block_bus_nolock( scsi_bus_info *bus, bool by_SIM )
164 ++bus->blocked[by_SIM];
165 ++bus->lock_count;
176 // remove device from bus queue as it cannot be processed anymore
181 void scsi_block_bus( scsi_bus_info *bus );
182 void scsi_unblock_bus( scsi_bus_info *bus );
186 void scsi_cont_send_bus( scsi_bus_info *bus );