Lines Matching defs:request
41 /* Representation of a single write request */
66 /* List of empty pages to be used as write request buffers */
82 /* Pointer to current request buffer which has been partially filled but not
86 /* Number of characters in current request buffer */
100 static int __sclp_vt220_emit(struct sclp_vt220_request *request);
117 * Put provided request buffer back into queue and check emit pending
121 sclp_vt220_process_queue(struct sclp_vt220_request *request)
128 page = request->sclp_req.sccb;
130 /* Move request from outqueue to empty queue */
131 list_del(&request->list);
134 request = NULL;
136 request = list_entry(sclp_vt220_outqueue.next,
138 if (!request || sclp_vt220_suspended) {
144 } while (__sclp_vt220_emit(request));
145 if (request == NULL && sclp_vt220_flush_later)
153 * Callback through which the result of a write request is reported by the
157 sclp_vt220_callback(struct sclp_req *request, void *data)
163 if (request->status == SCLP_REQ_FAILED) {
185 if (sclp_add_request(request) == 0)
195 if (sclp_add_request(request) == 0)
206 * Emit vt220 request buffer to SCLP. Return zero on success, non-zero
210 __sclp_vt220_emit(struct sclp_vt220_request *request)
212 request->sclp_req.command = SCLP_CMDW_WRITE_EVENT_DATA;
213 request->sclp_req.status = SCLP_REQ_FILLED;
214 request->sclp_req.callback = sclp_vt220_callback;
215 request->sclp_req.callback_data = (void *) request;
217 return sclp_add_request(&request->sclp_req);
221 * Queue and emit current request.
227 struct sclp_vt220_request *request;
248 request = list_first_entry(&sclp_vt220_outqueue,
253 if (__sclp_vt220_emit(request))
254 sclp_vt220_process_queue(request);
263 * Helper function to initialize a page with the sclp request structure.
268 struct sclp_vt220_request *request;
271 /* Place request structure at end of page */
272 request = ((struct sclp_vt220_request *)
274 request->retry_count = 0;
275 request->sclp_req.sccb = page;
285 return request;
289 sclp_vt220_space_left(struct sclp_vt220_request *request)
292 sccb = (struct sclp_vt220_sccb *) request->sclp_req.sccb;
298 sclp_vt220_chars_stored(struct sclp_vt220_request *request)
301 sccb = (struct sclp_vt220_sccb *) request->sclp_req.sccb;
306 * Add msg to buffer associated with request. Return the number of characters
310 sclp_vt220_add_msg(struct sclp_vt220_request *request,
319 if (count > sclp_vt220_space_left(request))
320 count = sclp_vt220_space_left(request);
324 sccb = (struct sclp_vt220_sccb *) request->sclp_req.sccb;
330 (from < count) && (to < sclp_vt220_space_left(request));
336 if (to + 1 < sclp_vt220_space_left(request)) {
374 struct sclp_vt220_request *request;
386 request = list_entry(list, struct sclp_vt220_request, list);
387 page = request->sclp_req.sccb;
437 /* Try to write the string to the current request buffer */
496 /* Handle magic sys request */