Lines Matching refs:vc_sel
46 } vc_sel = {
47 .lock = __MUTEX_INITIALIZER(vc_sel.lock),
57 invert_screen(vc_sel.cons, s, e-s+2, true);
63 complement_pos(vc_sel.cons, where);
70 return screen_glyph_unicode(vc_sel.cons, n / 2);
71 return inverse_translate(vc_sel.cons, screen_glyph(vc_sel.cons, n),
84 if (vc_sel.start != -1) {
85 highlight(vc_sel.start, vc_sel.end);
86 vc_sel.start = -1;
93 return vc == vc_sel.cons;
196 bp = kmalloc_array((vc_sel.end - vc_sel.start) / 2 + 1, unicode ? 4 : 1,
203 kfree(vc_sel.buffer);
204 vc_sel.buffer = bp;
207 for (i = vc_sel.start; i <= vc_sel.end; i += 2) {
225 vc_sel.buf_len = bp - vc_sel.buffer;
288 if (vc_sel.start == -1) /* no current selection */
290 else if (new_sel_start == vc_sel.start)
292 if (new_sel_end == vc_sel.end) /* no action required */
294 else if (new_sel_end > vc_sel.end) /* extend to right */
295 highlight(vc_sel.end + 2, new_sel_end);
297 highlight(new_sel_end + 2, vc_sel.end);
299 else if (new_sel_end == vc_sel.end)
301 if (new_sel_start < vc_sel.start) /* extend to left */
302 highlight(new_sel_start, vc_sel.start - 2);
304 highlight(vc_sel.start, new_sel_start - 2);
311 vc_sel.start = new_sel_start;
312 vc_sel.end = new_sel_end;
343 if (ps > pe) /* make vc_sel.start <= vc_sel.end */
346 if (vc_sel.cons != vc) {
348 vc_sel.cons = vc;
358 mutex_lock(&vc_sel.lock);
362 mutex_unlock(&vc_sel.lock);
394 mutex_lock(&vc_sel.lock);
395 while (vc_sel.buffer && vc_sel.buf_len > pasted) {
402 mutex_unlock(&vc_sel.lock);
404 mutex_lock(&vc_sel.lock);
408 count = vc_sel.buf_len - pasted;
409 count = tty_ldisc_receive_buf(ld, vc_sel.buffer + pasted, NULL,
413 mutex_unlock(&vc_sel.lock);