您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ spltty函数代码示例

51自学网 2021-06-03 08:10:58
  C++
这篇教程C++ spltty函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中spltty函数的典型用法代码示例。如果您正苦于以下问题:C++ spltty函数的具体用法?C++ spltty怎么用?C++ spltty使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了spltty函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: atkbd_timeout

static voidatkbd_timeout(void *arg){	atkbd_state_t *state;	keyboard_t *kbd;	int s;	/*	 * The original text of the following comments are extracted 	 * from syscons.c (1.287)	 * 	 * With release 2.1 of the Xaccel server, the keyboard is left	 * hanging pretty often. Apparently an interrupt from the	 * keyboard is lost, and I don't know why (yet).	 * This ugly hack calls the low-level interrupt routine if input	 * is ready for the keyboard and conveniently hides the problem. XXX	 *	 * Try removing anything stuck in the keyboard controller; whether	 * it's a keyboard scan code or mouse data. The low-level	 * interrupt routine doesn't read the mouse data directly, 	 * but the keyboard controller driver will, as a side effect.	 */	/*	 * And here is bde's original comment about this:	 *	 * This is necessary to handle edge triggered interrupts - if we	 * returned when our IRQ is high due to unserviced input, then there	 * would be no more keyboard IRQs until the keyboard is reset by	 * external powers.	 *	 * The keyboard apparently unwedges the irq in most cases.	 */	s = spltty();	kbd = (keyboard_t *)arg;	if (kbdd_lock(kbd, TRUE)) {		/*		 * We have seen the lock flag is not set. Let's reset		 * the flag early, otherwise the LED update routine fails		 * which may want the lock during the interrupt routine.		 */		kbdd_lock(kbd, FALSE);		if (kbdd_check_char(kbd))			kbdd_intr(kbd, NULL);	}	splx(s);	state = (atkbd_state_t *)kbd->kb_data;	callout_reset(&state->ks_timer, hz / 10, atkbd_timeout, arg);}
开发者ID:FreeBSDFoundation,项目名称:freebsd,代码行数:48,


示例2: xb_write

intxb_write(const void *data, unsigned len){	struct xenstore_domain_interface *intf = xenstore_domain_interface();	XENSTORE_RING_IDX cons, prod;	int s = spltty();	while (len != 0) {		void *dst;		unsigned int avail;		while ((intf->req_prod - intf->req_cons) == XENSTORE_RING_SIZE) {			XENPRINTF(("xb_write tsleep/n"));			tsleep(&xenstore_interface, PRIBIO, "wrst", 0);			XENPRINTF(("xb_write tsleep done/n"));		}		/* Read indexes, then verify. */		cons = intf->req_cons;		prod = intf->req_prod;		x86_lfence();		if (!check_indexes(cons, prod)) {			splx(s);			return EIO;		}		dst = get_output_chunk(cons, prod, intf->req, &avail);		if (avail == 0)			continue;		if (avail > len)			avail = len;		memcpy(dst, data, avail);		data = (const char *)data + avail;		len -= avail;		/* Other side must not see new header until data is there. */		x86_lfence();		intf->req_prod += avail;		x86_lfence();		hypervisor_notify_via_evtchn(xen_start_info.store_evtchn);	}	splx(s);	return 0;}
开发者ID:avsm,项目名称:openbsd-xen-sys,代码行数:48,


示例3: ptcpoll

intptcpoll(dev_t dev, int events, struct proc *p){	struct pt_softc *pti = pt_softc[minor(dev)];	struct tty *tp = pti->pt_tty;	int revents = 0, s;	if (!ISSET(tp->t_state, TS_ISOPEN) && ISSET(tp->t_state, TS_CARR_ON))		goto notopen;	if (events & (POLLIN | POLLRDNORM)) {		/*		 * Need to protect access to t_outq		 */		s = spltty();		if ((tp->t_outq.c_cc && !ISSET(tp->t_state, TS_TTSTOP)) ||		    ((pti->pt_flags & PF_PKT) && pti->pt_send) ||		    ((pti->pt_flags & PF_UCNTL) && pti->pt_ucntl))			revents |= events & (POLLIN | POLLRDNORM);		splx(s);	}	/* NOTE: POLLHUP and POLLOUT/POLLWRNORM are mutually exclusive */	if (!ISSET(tp->t_state, TS_CARR_ON)) {		revents |= POLLHUP;	} else if (events & (POLLOUT | POLLWRNORM)) {		if ((pti->pt_flags & PF_REMOTE) ?		    (tp->t_canq.c_cc == 0) :		    ((tp->t_rawq.c_cc + tp->t_canq.c_cc < TTYHOG(tp) - 2) ||		    (tp->t_canq.c_cc == 0 && ISSET(tp->t_lflag, ICANON))))			revents |= events & (POLLOUT | POLLWRNORM);	}	if (events & (POLLPRI | POLLRDBAND)) {		/* If in packet or user control mode, check for data. */		if (((pti->pt_flags & PF_PKT) && pti->pt_send) ||		    ((pti->pt_flags & PF_UCNTL) && pti->pt_ucntl))			revents |= events & (POLLPRI | POLLRDBAND);	}	if (revents == 0) {notopen:		if (events & (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND))			selrecord(p, &pti->pt_selr);		if (events & (POLLOUT | POLLWRNORM))			selrecord(p, &pti->pt_selw);	}	return (revents);}
开发者ID:DavidAlphaFox,项目名称:openbsd-kernel,代码行数:48,


示例4: sabstop

voidsabstop(struct tty *tp, int flag){	struct sabtty_softc *sc = device_lookup_private(&sabtty_cd, SABUNIT(tp->t_dev));	int s;	s = spltty();	if (tp->t_state & TS_BUSY) {		if ((tp->t_state & TS_TTSTOP) == 0)			tp->t_state |= TS_FLUSH;		sc->sc_flags |= SABTTYF_STOP;		sc->sc_imr1 &= ~SAB_IMR1_ALLS;		SAB_WRITE(sc, SAB_IMR1, sc->sc_imr1);	}	splx(s);}
开发者ID:lacombar,项目名称:netbsd-alc,代码行数:16,


示例5: at91usart_stop

/* * Stop output on a line. */voidat91usart_stop(struct tty *tp, int flag){	struct at91usart_softc *sc		= device_lookup_private(&at91usart_cd, COMUNIT(tp->t_dev));	int s;	s = spltty();	if (ISSET(tp->t_state, TS_BUSY)) {		/* Stop transmitting at the next chunk. */		sc->sc_tbc = 0;		if (!ISSET(tp->t_state, TS_TTSTOP))			SET(tp->t_state, TS_FLUSH);	}	splx(s);}
开发者ID:krytarowski,项目名称:netbsd-current-src-sys,代码行数:19,


示例6: stty_stop

voidstty_stop(struct tty *tp, int flags){	struct stty_softc *sc = device_lookup_private(&stty_cd,						      SPIF_CARD(tp->t_dev));	struct stty_port *sp = &sc->sc_port[SPIF_PORT(tp->t_dev)];	int s;	s = spltty();	if (ISSET(tp->t_state, TS_BUSY)) {		if (!ISSET(tp->t_state, TS_TTSTOP))			SET(tp->t_state, TS_FLUSH);		SET(sp->sp_flags, STTYF_STOP);	}	splx(s);}
开发者ID:eyberg,项目名称:rumpkernel-netbsd-src,代码行数:16,


示例7: dnkbd_bellstop

voiddnkbd_bellstop(void *v){	struct dnkbd_softc *sc = v;	int s;	s = spltty();	dnkbd_pollout(sc->sc_regs, DNCMD_PREFIX);	dnkbd_pollout(sc->sc_regs, DNCMD_BELL);	dnkbd_pollout(sc->sc_regs, DNCMD_BELL_OFF);	CLR(sc->sc_flags, SF_BELL);	CLR(sc->sc_flags, SF_BELL_TMO);	splx(s);}
开发者ID:avsm,项目名称:openbsd-xen-sys,代码行数:16,


示例8: sscomstart

voidsscomstart(struct tty *tp){	struct sscom_softc *sc = device_lookup_private(&sscom_cd, SSCOMUNIT(tp->t_dev));	int s;	if (SSCOM_ISALIVE(sc) == 0)		return;	s = spltty();	if (ISSET(tp->t_state, TS_BUSY | TS_TIMEOUT | TS_TTSTOP))		goto out;	if (sc->sc_tx_stopped)		goto out;	if (!ttypull(tp))		goto out;	/* Grab the first contiguous region of buffer space. */	{		u_char *tba;		int tbc;		tba = tp->t_outq.c_cf;		tbc = ndqb(&tp->t_outq, 0);		(void)splserial();		SSCOM_LOCK(sc);		sc->sc_tba = tba;		sc->sc_tbc = tbc;	}	SET(tp->t_state, TS_BUSY);	sc->sc_tx_busy = 1;	/* Output the first chunk of the contiguous buffer. */	sscom_output_chunk(sc);	/* Enable transmit completion interrupts if necessary. */	if ((sc->sc_hwflags & SSCOM_HW_TXINT) == 0)		sscom_enable_txint(sc);	SSCOM_UNLOCK(sc);out:	splx(s);	return;}
开发者ID:krytarowski,项目名称:netbsd-current-src-sys,代码行数:47,


示例9: btms_input

static voidbtms_input(struct bthidev *hidev, uint8_t *data, int len){	struct btms_softc *sc = (struct btms_softc *)hidev;	int dx, dy, dz, dw;	uint32_t buttons;	int i, s;	if (sc->sc_wsmouse == NULL || sc->sc_enabled == 0)		return;#ifdef BTMS_DEBUG	if (btms_debug > 9) {		printf("%s: data: ", __func__);		for (i = 0; i < len; ++i) {			printf("%02x", data[i]);		}		printf("/n");	}#endif	dx =  hid_get_data(data, &sc->sc_loc_x);	dy = -hid_get_data(data, &sc->sc_loc_y);	dz =  hid_get_data(data, &sc->sc_loc_z);	dw =  hid_get_data(data, &sc->sc_loc_w);	if (sc->sc_flags & BTMS_REVZ)		dz = -dz;	buttons = 0;	for (i = 0 ; i < sc->sc_num_buttons ; i++)		if (hid_get_data(data, &sc->sc_loc_button[i]))			buttons |= BUTTON(i);	BTMSDBGN(9,("%s: dx=%d, dy=%d, dz=%d, dw=%d, buttons=0x%08x/n",	    __func__, dx, dy, dz, dw, buttons));	if (dx != 0 || dy != 0 || dz != 0 || dw != 0 || buttons != sc->sc_buttons) {		sc->sc_buttons = buttons;		s = spltty();		wsmouse_input(sc->sc_wsmouse,				buttons,				dx, dy, dz, dw,				WSMOUSE_INPUT_DELTA);		splx(s);	}}
开发者ID:goroutines,项目名称:rumprun,代码行数:47,


示例10: write_kbd

static intwrite_kbd(KBDC kbdc, int command, int data){	int s;	/* prevent the timeout routine from polling the keyboard */	if (!kbdc_lock(kbdc, TRUE)) 		return EBUSY;	/* disable the keyboard and mouse interrupt */	s = spltty();#if 0	c = get_controller_command_byte(kbdc);	if ((c == -1) 	    || !set_controller_command_byte(kbdc, 		kbdc_get_device_mask(kbdc),		KBD_DISABLE_KBD_PORT | KBD_DISABLE_KBD_INT		| KBD_DISABLE_AUX_PORT | KBD_DISABLE_AUX_INT)) {		/* CONTROLLER ERROR */		kbdc_lock(kbdc, FALSE);		splx(s);		return EIO;	}	/* 	 * Now that the keyboard controller is told not to generate 	 * the keyboard and mouse interrupts, call `splx()' to allow 	 * the other tty interrupts. The clock interrupt may also occur, 	 * but the timeout routine (`scrn_timer()') will be blocked 	 * by the lock flag set via `kbdc_lock()'	 */	splx(s);#endif	if (send_kbd_command_and_data(kbdc, command, data) != KBD_ACK)		send_kbd_command(kbdc, KBDC_ENABLE_KBD);#if 0	/* restore the interrupts */	if (!set_controller_command_byte(kbdc, kbdc_get_device_mask(kbdc),	    c & (KBD_KBD_CONTROL_BITS | KBD_AUX_CONTROL_BITS))) { 		/* CONTROLLER ERROR */	}#else	splx(s);#endif	kbdc_lock(kbdc, FALSE);	return 0;}
开发者ID:dcui,项目名称:FreeBSD-9.3_kernel,代码行数:47,


示例11: wzero3kbd_poll1

static intwzero3kbd_poll1(void *arg){	struct wzero3kbd_softc *sc = (struct wzero3kbd_softc *)arg;	int row, col, data;	int keycol;	int keydown;	int i;	int s;	if (!sc->sc_enabled) {		DPRINTF(("wzero3kbd_poll: disabled/n"));		return 0;	}	s = spltty();	for (col = 0; col < sc->sc_ncolumn; col++) {		/* deselect column# and charge */		CSR_WRITE1(KBDCOL_L, 0);		CSR_WRITE1(KBDCOL_U, 0);		CSR_WRITE1(KBDCHARGE, 1);		delay(KEYWAIT);		CSR_WRITE1(KBDCHARGE, 0);		/* select scan column# */		keycol = 1 << col;		CSR_WRITE1(KBDCOL_L, keycol & 0xff);		CSR_WRITE1(KBDCOL_U, keycol >> 8);		delay(KEYWAIT);		CSR_WRITE1(KBDCHARGE, 0);		/* read key data */		data = CSR_READ1(KBDDATA);		for (row = 0; row < sc->sc_nrow; row++) {#ifdef KEYTEST2			if (!(sc->sc_enabled & 2)) {#endif			sc->sc_keystat[row + col * sc->sc_nrow] =			    (data >> row) & 1;#ifdef KEYTEST2			} else if (data & (1 << row)) {				printf("col = %d, row = %d, idx = %d, data = 0x%02x/n", col, row, row + col * sc->sc_nrow, data);			}#endif		}
开发者ID:krytarowski,项目名称:netbsd-current-src-sys,代码行数:46,


示例12: ucomstop

voiducomstop(struct tty *tp, int flag){#if 0	/*struct ucom_softc *sc =	    device_lookup_private(&ucom_cd, UCOMUNIT(tp->t_dev));*/	int s;	s = spltty();	if (ISSET(tp->t_state, TS_BUSY)) {		/* sc->sc_tx_stopped = 1; */		if (!ISSET(tp->t_state, TS_TTSTOP))			SET(tp->t_state, TS_FLUSH);	}	splx(s);#endif}
开发者ID:ryoon,项目名称:netbsd-xhci,代码行数:17,


示例13: kbd_repeat

/* * This is the autorepeat callout function scheduled by kbd_input() above. * Called at splsoftclock(). */static voidkbd_repeat(void *arg){	struct kbd_softc *k = arg;	int s;	s = spltty();	if (k->k_repeating && k->k_repeatsym >= 0) {		/* feed typematic keysym to the console */		(void)kbd_input_keysym(k, k->k_repeatsym);		/* reschedule next repeat */		callout_reset(&k->k_repeat_ch, k->k_repeat_step,			      kbd_repeat, k);	}	splx(s);}
开发者ID:Tommmster,项目名称:netbsd-avr32,代码行数:21,


示例14: wsmouse_detach

/* * Detach a mouse.  To keep track of users of the softc we keep * a reference count that's incremented while inside, e.g., read. * If the mouse is active and the reference count is > 0 (0 is the * normal state) we post an event and then wait for the process * that had the reference to wake us up again.  Then we blow away the * vnode and return (which will deallocate the softc). */intwsmouse_detach(device_t self, int flags){	struct wsmouse_softc *sc = device_private(self);	struct wseventvar *evar;	int maj, mn;	int s;#if NWSMUX > 0	/* Tell parent mux we're leaving. */	if (sc->sc_base.me_parent != NULL) {		DPRINTF(("wsmouse_detach:/n"));		wsmux_detach_sc(&sc->sc_base);	}#endif	/* If we're open ... */	evar = sc->sc_base.me_evp;	if (evar != NULL && evar->io != NULL) {		s = spltty();		if (--sc->sc_refcnt >= 0) {			struct wscons_event event;			/* Wake everyone by generating a dummy event. */			event.type = 0;			event.value = 0;			if (wsevent_inject(evar, &event, 1) != 0)				wsevent_wakeup(evar);			/* Wait for processes to go away. */			if (tsleep(sc, PZERO, "wsmdet", hz * 60))				printf("wsmouse_detach: %s didn't detach/n",				       device_xname(self));		}		splx(s);	}	/* locate the major number */	maj = cdevsw_lookup_major(&wsmouse_cdevsw);	/* Nuke the vnodes for any open instances (calls close). */	mn = device_unit(self);	vdevgone(maj, mn, mn, VCHR);	return (0);}
开发者ID:eyberg,项目名称:rumpkernel-netbsd-src,代码行数:54,


示例15: fb_detach

intfb_detach(dev_t dev, video_adapter_t *adp, struct cdevsw *cdevsw){	int s;	if (adp->va_index >= adapters)		return EINVAL;	if (adapter[adp->va_index] != adp)		return EINVAL;	if (vidcdevsw[adp->va_index] != cdevsw)		return EINVAL;	s = spltty();	vidcdevsw[adp->va_index] = NULL;	splx(s);	return 0;}
开发者ID:UnitedMarsupials,项目名称:kame,代码行数:17,


示例16: iteattach

voiditeattach(struct device *pdp, struct device *dp, void *auxp){	struct grf_softc *gp;	struct ite_softc *ip;	int s;	gp = (struct grf_softc *)auxp;	if (dp) {		ip = (struct ite_softc *)dp;		s = spltty();		if (con_itesoftc.grf != NULL &&		    con_itesoftc.grf->g_unit == gp->g_unit) {			/*			 * console reinit copy params over.			 * and console always gets keyboard			 */			bcopy(&con_itesoftc.grf, &ip->grf,			    (char *)&ip[1] - (char *)&ip->grf);			con_itesoftc.grf = NULL;			kbd_ite = ip;		}		ip->grf = gp;		splx(s);		alloc_sicallback();		iteinit(gp->g_itedev);		printf(": rows %d cols %d", ip->rows, ip->cols);		printf(" repeat at (%d/100)s next at (%d/100)s",		    start_repeat_timeo, next_repeat_timeo);		if (kbd_ite == NULL)			kbd_ite = ip;		if (kbd_ite == ip)			printf(" has keyboard");		printf("/n");		ip->flags |= ITE_ATTACHED;	} else {		if (con_itesoftc.grf != NULL &&		    con_itesoftc.grf->g_conpri > gp->g_conpri)			return;		con_itesoftc.grf = gp;		con_itesoftc.tabs = cons_tabs;	}}
开发者ID:lacombar,项目名称:netbsd-alc,代码行数:46,


示例17: sc_mouse_move

/* move mouse */voidsc_mouse_move(scr_stat *scp, int x, int y){    int s;    s = spltty();    scp->mouse_xpos = scp->mouse_oldxpos = x;    scp->mouse_ypos = scp->mouse_oldypos = y;    if (scp->font_size <= 0 || scp->font_width <= 0)	scp->mouse_pos = scp->mouse_oldpos = 0;    else	scp->mouse_pos = scp->mouse_oldpos = 	    (y/scp->font_size - scp->yoff)*scp->xsize + x/scp->font_width -	    scp->xoff;    scp->status |= MOUSE_MOVED;    splx(s);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:18,


示例18: dzkbd_cngetc

voiddzkbd_cngetc(void *v, u_int *type, int *data){	struct dzkbd_internal *dzi = v;#if 0	int line = dzi->dzi_ls != NULL ? dzi->dzi_ls->dz_line : 0;#else	int line = 0;	/* keyboard */#endif	int c, s;	do {		s = spltty();		c = dzcngetc_internal(line);		splx(s);	} while (lk201_decode(&dzi->dzi_ks, 1, 0, c, type, data) == LKD_NODATA);}
开发者ID:bradla,项目名称:OpenBSD-Hammer2,代码行数:17,


示例19: au88x0_codec_read

/* * Read from the ac97 codec */static intau88x0_codec_read(kobj_t obj, void *arg, int reg){	struct au88x0_info *aui = arg;	uint32_t data;	int sl;	sl = spltty();	au88x0_codec_wait(aui);	au88x0_write(aui, AU88X0_CODEC_IO, AU88X0_CDIO_READ(reg), 4);	DELAY(1000);	data = au88x0_read(aui, AU88X0_CODEC_IO, 4);	splx(sl);	data &= AU88X0_CDIO_DATA_MASK;	data >>= AU88X0_CDIO_DATA_SHIFT;	return (data);}
开发者ID:Gwenio,项目名称:DragonFlyBSD,代码行数:20,


示例20: mutex_lock

voidmutex_lock(mutex_t *m, const char *file, const char *func, int line,    const char *descr){//    KASSERT(CIPL==0);    spinlock_lock(&m->mtx_slock);    if ( atomic_change_int(&m->mtx_locked, MUTEX_LOCKED) == MUTEX_UNLOCKED) {        m->mtx_owner = curthread;        spinlock_unlock(&m->mtx_slock);    } else {        list_insert_tail(&m->mtx_locking, curthread);        int x = spltty();        spinlock_unlock(&m->mtx_slock);        sched_wait(file,func,line,descr);        splx(x);    }}
开发者ID:akat1,项目名称:impala,代码行数:17,


示例21: vioconhwiflow

intvioconhwiflow(struct tty *tp, int stop){	struct viocon_port *vp = dev2port(tp->t_dev);	int s;	s = spltty();	vp->vp_iflow = stop;	if (stop) {		virtio_stop_vq_intr(vp->vp_sc->sc_virtio, vp->vp_rx);	} else {		virtio_start_vq_intr(vp->vp_sc->sc_virtio, vp->vp_rx);		softintr_schedule(vp->vp_si);	}	splx(s);	return 1;}
开发者ID:ajinkya93,项目名称:OpenBSD,代码行数:17,


示例22: pms_enable

intpms_enable(void *v){	struct pms_softc *sc = v;	int s;	if (sc->sc_enabled)		return EBUSY;	do_enable(sc);	s = spltty();	sc->sc_enabled = 1;	splx(s);	return 0;}
开发者ID:Tommmster,项目名称:netbsd-avr32,代码行数:17,


示例23: vconsstart

voidvconsstart(struct tty *tp){	int s;	s = spltty();	if (tp->t_state & (TS_TTSTOP | TS_BUSY)) {		splx(s);		return;	}	ttwakeupwr(tp);	tp->t_state |= TS_BUSY;	while (tp->t_outq.c_cc != 0)		vcons_cnputc(tp->t_dev, getc(&tp->t_outq));	tp->t_state &= ~TS_BUSY;	splx(s);}
开发者ID:alenichev,项目名称:openbsd-kernel,代码行数:17,


示例24: oj6sh_poll

static voidoj6sh_poll(void *arg){	struct oj6sh_softc *sc = (struct oj6sh_softc *)arg;	struct oj6sh_delta delta = {0, 0};	uint32_t buttons = 0;	int s;	int x, y;	mutex_enter(&sc->sc_lock);	if (oj6sh_motion(sc->sc_sh) == false)		goto out;	else if ((oj6sh_squal(sc->sc_sh) == true) &&	    (oj6sh_shuttrer(sc->sc_sh) == true))		goto out;	oj6sh_readdelta(sc->sc_sh, &delta);	DPRINTF(3,("%s: x = %d, y = %d/n", device_xname(sc->sc_dev),		delta.x, delta.y));#if defined(J6SH_DOWN_Y_LEFT_X)	y = -delta.y;	x = -delta.x;#elif defined(OJ6SH_UP_X_LEFT_Y)	y = delta.x;	x = -delta.y;#elif defined(OJ6SH_DOWN_X_RIGHT_Y)	y = -delta.x;	x = delta.y;#else /* OJ6SH_UP_Y_RIGHT_X */	y = delta.y;	x = delta.x;#endif	s = spltty();	wsmouse_input(sc->sc_wsmousedev, buttons, x, y, 0, 0,	    WSMOUSE_INPUT_DELTA);	splx(s);out:	mutex_exit(&sc->sc_lock);	if (sc->sc_enabled)		callout_reset(&sc->sc_c, POLLRATE, oj6sh_poll, sc);	return;}
开发者ID:eyberg,项目名称:rumpkernel-netbsd-src,代码行数:46,


示例25: at91usart_start

static voidat91usart_start(struct tty *tp){	struct at91usart_softc *sc		= device_lookup_private(&at91usart_cd, COMUNIT(tp->t_dev));	int s;	if (COM_ISALIVE(sc) == 0) {		DPRINTFN(5, ("%s: %s / COM_ISALIVE == 0/n", device_xname(sc->sc_dev), __FUNCTION__));		return;	}	s = spltty();	if (ISSET(tp->t_state, TS_BUSY | TS_TIMEOUT | TS_TTSTOP)) {		DPRINTFN(5, ("%s: %s: TS_BUSY || TS_TIMEOUT || TS_TTSTOP/n", device_xname(sc->sc_dev), __FUNCTION__));		goto out;	}	if (!ttypull(tp))		goto out;	/* Grab the first contiguous region of buffer space. */	{		u_char *tba;		int tbc;		tba = tp->t_outq.c_cf;		tbc = ndqb(&tp->t_outq, 0);		sc->sc_tba = tba;		sc->sc_tbc = tbc;	}	SET(tp->t_state, TS_BUSY);	/* Output the first chunk of the contiguous buffer. */	at91usart_filltx(sc);	at91usart_writereg(sc, US_IER, sc->sc_ier);	DPRINTFN(5, ("%s: %s, ier=%08x (csr=%08x)/n", device_xname(sc->sc_dev), __FUNCTION__, sc->sc_ier, at91usart_readreg(sc, US_CSR)));out:	splx(s);	return;}
开发者ID:krytarowski,项目名称:netbsd-current-src-sys,代码行数:45,



注:本文中的spltty函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ splusb函数代码示例
C++ splnet函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。