Lines Matching refs:buffer

49 	struct sclp_buffer *buffer;  in sclp_make_buffer()  local
57 buffer = ((struct sclp_buffer *) ((addr_t) sccb + PAGE_SIZE)) - 1; in sclp_make_buffer()
58 buffer->sccb = sccb; in sclp_make_buffer()
59 buffer->retry_count = 0; in sclp_make_buffer()
60 buffer->mto_number = 0; in sclp_make_buffer()
61 buffer->mto_char_sum = 0; in sclp_make_buffer()
62 buffer->current_line = NULL; in sclp_make_buffer()
63 buffer->current_length = 0; in sclp_make_buffer()
64 buffer->columns = columns; in sclp_make_buffer()
65 buffer->htab = htab; in sclp_make_buffer()
79 return buffer; in sclp_make_buffer()
87 sclp_unmake_buffer(struct sclp_buffer *buffer) in sclp_unmake_buffer() argument
89 return buffer->sccb; in sclp_unmake_buffer()
97 sclp_initialize_mto(struct sclp_buffer *buffer, int max_len) in sclp_initialize_mto() argument
107 sccb = buffer->sccb; in sclp_initialize_mto()
124 buffer->current_line = (char *) (mto + 1); in sclp_initialize_mto()
125 buffer->current_length = 0; in sclp_initialize_mto()
135 sclp_finalize_mto(struct sclp_buffer *buffer) in sclp_finalize_mto() argument
141 str_len = buffer->current_length; in sclp_finalize_mto()
142 buffer->current_line = NULL; in sclp_finalize_mto()
143 buffer->current_length = 0; in sclp_finalize_mto()
149 sccb = buffer->sccb; in sclp_finalize_mto()
168 buffer->mto_number++; in sclp_finalize_mto()
169 buffer->mto_char_sum += str_len; in sclp_finalize_mto()
180 sclp_write(struct sclp_buffer *buffer, const unsigned char *msg, int count) in sclp_write() argument
212 if (buffer->current_line == NULL) { in sclp_write()
213 rc = sclp_initialize_mto(buffer, 0); in sclp_write()
217 sclp_finalize_mto(buffer); in sclp_write()
221 buffer->sccb->msg_buf.mdb.go.general_msg_flags |= in sclp_write()
226 if (buffer->current_line == NULL) { in sclp_write()
227 rc = sclp_initialize_mto(buffer, in sclp_write()
228 buffer->columns); in sclp_write()
234 if (buffer->current_length >= buffer->columns) in sclp_write()
237 *buffer->current_line++ = 0x40; in sclp_write()
238 buffer->current_length++; in sclp_write()
239 } while (buffer->current_length % buffer->htab); in sclp_write()
245 if (buffer->current_line != NULL) { in sclp_write()
246 spaces = buffer->current_length; in sclp_write()
247 sclp_finalize_mto(buffer); in sclp_write()
248 rc = sclp_initialize_mto(buffer, in sclp_write()
249 buffer->columns); in sclp_write()
252 memset(buffer->current_line, 0x40, spaces); in sclp_write()
253 buffer->current_line += spaces; in sclp_write()
254 buffer->current_length = spaces; in sclp_write()
257 rc = sclp_initialize_mto(buffer, in sclp_write()
258 buffer->columns); in sclp_write()
261 sclp_finalize_mto(buffer); in sclp_write()
268 if (buffer->current_line != NULL && in sclp_write()
269 buffer->current_length > 0) { in sclp_write()
270 buffer->current_length--; in sclp_write()
271 buffer->current_line--; in sclp_write()
276 if (buffer->current_line != NULL) in sclp_write()
277 sclp_finalize_mto(buffer); in sclp_write()
286 if (buffer->current_line == NULL) { in sclp_write()
287 rc = sclp_initialize_mto(buffer, in sclp_write()
288 buffer->columns); in sclp_write()
292 *buffer->current_line++ = sclp_ascebc(msg[i_msg]); in sclp_write()
293 buffer->current_length++; in sclp_write()
297 if (buffer->current_line != NULL && in sclp_write()
298 buffer->current_length >= buffer->columns) in sclp_write()
299 sclp_finalize_mto(buffer); in sclp_write()
310 sclp_buffer_space(struct sclp_buffer *buffer) in sclp_buffer_space() argument
314 count = MAX_SCCB_ROOM - buffer->sccb->header.length; in sclp_buffer_space()
315 if (buffer->current_line != NULL) in sclp_buffer_space()
316 count -= sizeof(struct mto) + buffer->current_length; in sclp_buffer_space()
324 sclp_chars_in_buffer(struct sclp_buffer *buffer) in sclp_chars_in_buffer() argument
328 count = buffer->mto_char_sum; in sclp_chars_in_buffer()
329 if (buffer->current_line != NULL) in sclp_chars_in_buffer()
330 count += buffer->current_length; in sclp_chars_in_buffer()
338 sclp_set_columns(struct sclp_buffer *buffer, unsigned short columns) in sclp_set_columns() argument
340 buffer->columns = columns; in sclp_set_columns()
341 if (buffer->current_line != NULL && in sclp_set_columns()
342 buffer->current_length > buffer->columns) in sclp_set_columns()
343 sclp_finalize_mto(buffer); in sclp_set_columns()
347 sclp_set_htab(struct sclp_buffer *buffer, unsigned short htab) in sclp_set_htab() argument
349 buffer->htab = htab; in sclp_set_htab()
380 struct sclp_buffer *buffer; in sclp_writedata_callback() local
383 buffer = (struct sclp_buffer *) data; in sclp_writedata_callback()
384 sccb = buffer->sccb; in sclp_writedata_callback()
387 if (buffer->callback != NULL) in sclp_writedata_callback()
388 buffer->callback(buffer, -EIO); in sclp_writedata_callback()
399 if (++buffer->retry_count > SCLP_BUFFER_MAX_RETRY) { in sclp_writedata_callback()
407 buffer->request.status = SCLP_REQ_FILLED; in sclp_writedata_callback()
417 if (++buffer->retry_count > SCLP_BUFFER_MAX_RETRY) { in sclp_writedata_callback()
423 buffer->request.status = SCLP_REQ_FILLED; in sclp_writedata_callback()
435 if (buffer->callback != NULL) in sclp_writedata_callback()
436 buffer->callback(buffer, rc); in sclp_writedata_callback()
445 sclp_emit_buffer(struct sclp_buffer *buffer, in sclp_emit_buffer() argument
451 if (buffer->current_line != NULL) in sclp_emit_buffer()
452 sclp_finalize_mto(buffer); in sclp_emit_buffer()
455 if (buffer->mto_number == 0) in sclp_emit_buffer()
458 sccb = buffer->sccb; in sclp_emit_buffer()
462 buffer->request.command = SCLP_CMDW_WRITE_EVENT_DATA; in sclp_emit_buffer()
463 buffer->request.status = SCLP_REQ_FILLED; in sclp_emit_buffer()
464 buffer->request.callback = sclp_writedata_callback; in sclp_emit_buffer()
465 buffer->request.callback_data = buffer; in sclp_emit_buffer()
466 buffer->request.sccb = sccb; in sclp_emit_buffer()
467 buffer->callback = callback; in sclp_emit_buffer()
468 return sclp_add_request(&buffer->request); in sclp_emit_buffer()