Lines Matching refs:ms
122 ms_3b_delay(struct ms_softc *ms) in ms_3b_delay() argument
136 struct ms_softc *ms = &ms_softc[0]; in mouse_soft() local
144 if (ms->ms_events.ev_io == NULL) in mouse_soft()
152 if (ms->ms_emul3b) in mouse_soft()
164 (ms->ms_buttons & 0x03); in mouse_soft()
174 fake_mouse.id = ms->ms_buttons; in mouse_soft()
184 rel_ms->id = (ms->ms_buttons & 0x04) | (rel_ms->id & 0x03); in mouse_soft()
185 flush_buttons = ms->ms_emul3b ? 0 : 1; in mouse_soft()
192 get = ms->ms_events.ev_get; in mouse_soft()
193 put = ms->ms_events.ev_put; in mouse_soft()
194 fe = &ms->ms_events.ev_q[put]; in mouse_soft()
196 if ((type != KBD_TIMEO_PKG) && ms->ms_emul3b && ms->ms_bq_idx != 0) in mouse_soft()
197 callout_stop(&ms->ms_delay_ch); in mouse_soft()
202 if ((mbut = (rel_ms->id ^ ms->ms_buttons)) == 0 && (put != get)) { in mouse_soft()
207 ms->ms_dx += rel_ms->dx; in mouse_soft()
208 ms->ms_dy += rel_ms->dy; in mouse_soft()
211 rel_ms->dx += ms->ms_dx; in mouse_soft()
212 rel_ms->dy += ms->ms_dy; in mouse_soft()
213 ms->ms_dx = ms->ms_dy = 0; in mouse_soft()
229 fe = &ms->ms_events.ev_q[0]; in mouse_soft()
244 fe = &ms->ms_events.ev_q[0]; in mouse_soft()
253 fe2 = &ms->ms_bq[ms->ms_bq_idx++]; in mouse_soft()
269 if (ms->ms_emul3b && ms->ms_bq_idx != 0 && (type != KBD_TIMEO_PKG)) { in mouse_soft()
274 if ((ms->ms_buttons & 0x04) != 0 && (mbut & 0x03) != 0) { in mouse_soft()
275 ms->ms_bq[0].id = MS_MIDDLE; in mouse_soft()
276 ms->ms_bq_idx = 1; in mouse_soft()
281 if (ms->ms_bq_idx == 2) { in mouse_soft()
282 if (ms->ms_bq[0].value == ms->ms_bq[1].value) { in mouse_soft()
284 ms->ms_bq[0].id = MS_MIDDLE; in mouse_soft()
285 ms->ms_bq_idx = 1; in mouse_soft()
289 else if (ms->ms_bq[0].value == VKEY_DOWN) { in mouse_soft()
290 callout_reset(&ms->ms_delay_ch, 10, in mouse_soft()
291 (FPV)ms_3b_delay, (void *)ms); in mouse_soft()
300 for (i = 0; i < ms->ms_bq_idx; i++) { in mouse_soft()
302 ms->ms_bq_idx = 0; in mouse_soft()
306 *fe = ms->ms_bq[i]; in mouse_soft()
309 fe = &ms->ms_events.ev_q[0]; in mouse_soft()
314 ms->ms_bq_idx = 0; in mouse_soft()
316 ms->ms_events.ev_put = put; in mouse_soft()
317 ms->ms_buttons = rel_ms->id; in mouse_soft()
319 EV_WAKEUP(&ms->ms_events); in mouse_soft()
326 struct ms_softc *ms; in msopen() local
330 ms = &ms_softc[unit]; in msopen()
335 if (ms->ms_events.ev_io) in msopen()
338 ms->ms_events.ev_io = l->l_proc; in msopen()
339 ms->ms_dx = ms->ms_dy = 0; in msopen()
340 ms->ms_buttons = 0; in msopen()
341 ms->ms_bq[0].id = ms->ms_bq[1].id = 0; in msopen()
342 ms->ms_bq_idx = 0; in msopen()
343 ev_init(&ms->ms_events); /* may cause sleep */ in msopen()
357 struct ms_softc *ms; in msclose() local
360 ms = &ms_softc[unit]; in msclose()
366 ev_fini(&ms->ms_events); in msclose()
367 ms->ms_events.ev_io = NULL; in msclose()
374 struct ms_softc *ms; in msread() local
376 ms = &ms_softc[minor(dev)]; in msread()
377 return ev_read(&ms->ms_events, uio, flags); in msread()
383 struct ms_softc *ms; in msioctl() local
387 ms = &ms_softc[unit]; in msioctl()
391 ms->ms_emul3b = (*(int *)data != 0) ? 1 : 0; in msioctl()
394 *(int *)data = ms->ms_emul3b; in msioctl()
399 ms->ms_events.ev_async = *(int *)data != 0; in msioctl()
402 if (-*(int *)data != ms->ms_events.ev_io->p_pgid && in msioctl()
403 *(int *)data != ms->ms_events.ev_io->p_pid) in msioctl()
407 if (*(int *)data != ms->ms_events.ev_io->p_pgid) in msioctl()
424 struct ms_softc *ms; in mspoll() local
426 ms = &ms_softc[minor(dev)]; in mspoll()
427 return ev_poll(&ms->ms_events, events, l); in mspoll()
433 struct ms_softc *ms; in mskqfilter() local
435 ms = &ms_softc[minor(dev)]; in mskqfilter()
436 return ev_kqfilter(&ms->ms_events, kn); in mskqfilter()