Lines Matching refs:req
67 static int macio_send_request(struct adb_request *req, int sync);
170 static int macio_send_request(struct adb_request *req, int sync)
175 if (req->data[0] != ADB_PACKET)
178 for (i = 0; i < req->nbytes - 1; ++i)
179 req->data[i] = req->data[i+1];
180 --req->nbytes;
182 req->next = NULL;
183 req->sent = 0;
184 req->complete = 0;
185 req->reply_len = 0;
189 last_req->next = req;
190 last_req = req;
192 current_req = last_req = req;
198 while (!req->complete)
208 struct adb_request *req = NULL;
218 if ((req = current_req) != 0) {
220 for (i = 0; i < req->nbytes; ++i)
221 out_8(&adb->data[i].r, req->data[i]);
222 out_8(&adb->dcount.r, req->nbytes & HMB);
223 req->sent = 1;
224 if (req->reply_expected) {
228 current_req = req->next;
242 req = current_req;
244 req->reply_len = in_8(&adb->dcount.r) & HMB;
245 for (i = 0; i < req->reply_len; ++i)
246 req->reply[i] = in_8(&adb->data[i].r);
248 current_req = req->next;
264 if (complete && req) {
265 void (*done)(struct adb_request *) = req->done;
267 req->complete = 1;
269 * struct request will survive to setting req->complete to 1
272 (*done)(req);