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

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

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

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

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

示例1: tty_wait_until_sent

void tty_wait_until_sent(struct tty_struct * tty, long timeout){	DECLARE_WAITQUEUE(wait, current);#ifdef TTY_DEBUG_WAIT_UNTIL_SENT	char buf[64];		printk(KERN_DEBUG "%s wait until sent.../n", tty_name(tty, buf));#endif	if (!tty->driver->chars_in_buffer)		return;	add_wait_queue(&tty->write_wait, &wait);	if (!timeout)		timeout = MAX_SCHEDULE_TIMEOUT;	do {#ifdef TTY_DEBUG_WAIT_UNTIL_SENT		printk(KERN_DEBUG "waiting %s...(%d)/n", tty_name(tty, buf),		       tty->driver->chars_in_buffer(tty));#endif		set_current_state(TASK_INTERRUPTIBLE);		if (signal_pending(current))			goto stop_waiting;		if (!tty->driver->chars_in_buffer(tty))			break;		timeout = schedule_timeout(timeout);	} while (timeout);	if (tty->driver->wait_until_sent)		tty->driver->wait_until_sent(tty, timeout);stop_waiting:	set_current_state(TASK_RUNNING);	remove_wait_queue(&tty->write_wait, &wait);}
开发者ID:sarnobat,项目名称:knoppix,代码行数:32,


示例2: serport_ldisc_read

static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, unsigned char __user * buf, size_t nr){	struct serport *serport = (struct serport*) tty->disc_data;	struct serio *serio;	char name[64];	if (test_and_set_bit(SERPORT_BUSY, &serport->flags))		return -EBUSY;	serport->serio = serio = kzalloc(sizeof(struct serio), GFP_KERNEL);	if (!serio)		return -ENOMEM;	strlcpy(serio->name, "Serial port", sizeof(serio->name));	snprintf(serio->phys, sizeof(serio->phys), "%s/serio0", tty_name(tty, name));	serio->id = serport->id;	serio->id.type = SERIO_RS232;	serio->write = serport_serio_write;	serio->open = serport_serio_open;	serio->close = serport_serio_close;	serio->port_data = serport;	serio->dev.parent = tty->dev;	serio_register_port(serport->serio);	printk(KERN_INFO "serio: Serial port %s/n", tty_name(tty, name));	wait_event_interruptible(serport->wait, test_bit(SERPORT_DEAD, &serport->flags));	serio_unregister_port(serport->serio);	serport->serio = NULL;	clear_bit(SERPORT_DEAD, &serport->flags);	clear_bit(SERPORT_BUSY, &serport->flags);	return 0;}
开发者ID:macbury,项目名称:linux-2.6,代码行数:35,


示例3: tty_ldisc_restore

static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old){	char buf[64];	struct tty_ldisc *new_ldisc;	int r;	/* There is an outstanding reference here so this is safe */	old = tty_ldisc_get(tty, old->ops->num);	WARN_ON(IS_ERR(old));	tty->ldisc = old;	tty_set_termios_ldisc(tty, old->ops->num);	if (tty_ldisc_open(tty, old) < 0) {		tty_ldisc_put(old);		/* This driver is always present */		new_ldisc = tty_ldisc_get(tty, N_TTY);		if (IS_ERR(new_ldisc))			panic("n_tty: get");		tty->ldisc = new_ldisc;		tty_set_termios_ldisc(tty, N_TTY);		r = tty_ldisc_open(tty, new_ldisc);		if (r < 0)			panic("Couldn't open N_TTY ldisc for "			      "%s --- error %d.",			      tty_name(tty, buf), r);	}}
开发者ID:AeroGirl,项目名称:VAR-SOM-AM33-SDK7-Kernel,代码行数:26,


示例4: rs_unthrottle

static void rs_unthrottle(struct tty_struct * tty){	struct serial_state *info = tty->driver_data;	unsigned long flags;#ifdef SERIAL_DEBUG_THROTTLE	char	buf[64];	printk("unthrottle %s: %d..../n", tty_name(tty, buf),	       tty->ldisc.chars_in_buffer(tty));#endif	if (serial_paranoia_check(info, tty->name, "rs_unthrottle"))		return;	if (I_IXOFF(tty)) {		if (info->x_char)			info->x_char = 0;		else			rs_send_xchar(tty, START_CHAR(tty));	}	if (tty->termios->c_cflag & CRTSCTS)		info->MCR |= SER_RTS;	local_irq_save(flags);	rtsdtr_ctrl(info->MCR);	local_irq_restore(flags);}
开发者ID:kprog,项目名称:linux,代码行数:26,


示例5: tty_ldisc_restore

static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old){	char buf[64];	struct tty_ldisc new_ldisc;	/* There is an outstanding reference here so this is safe */	tty_ldisc_get(old->ops->num, old);	tty_ldisc_assign(tty, old);	tty_set_termios_ldisc(tty, old->ops->num);	if (old->ops->open && (old->ops->open(tty) < 0)) {		tty_ldisc_put(old->ops);		/* This driver is always present */		if (tty_ldisc_get(N_TTY, &new_ldisc) < 0)			panic("n_tty: get");		tty_ldisc_assign(tty, &new_ldisc);		tty_set_termios_ldisc(tty, N_TTY);		if (new_ldisc.ops->open) {			int r = new_ldisc.ops->open(tty);				if (r < 0)				panic("Couldn't open N_TTY ldisc for "				      "%s --- error %d.",				      tty_name(tty, buf), r);		}	}}
开发者ID:10x-Amin,项目名称:x10_Th_kernel,代码行数:25,


示例6: serport_ldisc_open

static int serport_ldisc_open(struct tty_struct *tty){	struct serport *serport;	char name[64];	serport = kmalloc(sizeof(struct serport), GFP_KERNEL);	if (unlikely(!serport))		return -ENOMEM;	memset(serport, 0, sizeof(struct serport));	set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);	serport->tty = tty;	tty->disc_data = serport;	snprintf(serport->phys, sizeof(serport->phys), "%s/serio0", tty_name(tty, name));	serport->serio.name = serport_name;	serport->serio.phys = serport->phys;	serport->serio.type = SERIO_RS232;	serport->serio.write = serport_serio_write;	serport->serio.close = serport_serio_close;	serport->serio.driver = serport;	init_waitqueue_head(&serport->wait);	return 0;}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:28,


示例7: n_tty_receive_overrun

static inline void n_tty_receive_overrun(struct tty_struct *tty){	char buf[64];	tty->num_overrun++;	if (time_before(tty->overrun_time, jiffies - HZ)) {		printk("%s: %d input overrun(s)/n", tty_name(tty, buf),		       tty->num_overrun);		tty->overrun_time = jiffies;		tty->num_overrun = 0;	}}
开发者ID:benbee,项目名称:Learning,代码行数:12,


示例8: rs_throttle

/* * Throttle characters as directed by upper tty layer */static void rs_throttle(struct tty_struct * tty){#ifdef TX3912_UART_DEBUG_THROTTLE    char	buf[64];    printk("throttle %s: %d..../n", tty_name(tty, buf),           tty->ldisc.chars_in_buffer(tty));#endif    func_enter();    if (I_IXOFF(tty))        rs_send_xchar(tty, STOP_CHAR(tty));    func_exit();}
开发者ID:kevin-longkai,项目名称:edimax-br-6528n,代码行数:19,


示例9: serport_ldisc_read

static ssize_t serport_ldisc_read(struct tty_struct * tty, struct file * file, unsigned char __user * buf, size_t nr){	struct serport *serport = (struct serport*) tty->disc_data;	char name[64];	if (test_and_set_bit(SERPORT_BUSY, &serport->flags))		return -EBUSY;	serio_register_port(&serport->serio);	printk(KERN_INFO "serio: Serial port %s/n", tty_name(tty, name));	wait_event_interruptible(serport->wait, !serport->serio.type);	serio_unregister_port(&serport->serio);	clear_bit(SERPORT_BUSY, &serport->flags);	return 0;}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:17,


示例10: mcfrs_throttle

/* * ------------------------------------------------------------ * mcfrs_throttle() *  * This routine is called by the upper-layer tty layer to signal that * incoming characters should be throttled. * ------------------------------------------------------------ */static void mcfrs_throttle(struct tty_struct * tty){	struct mcf_serial *info = (struct mcf_serial *)tty->driver_data;#ifdef SERIAL_DEBUG_THROTTLE	char	buf[64];		printk("throttle %s: %d..../n", tty_name(tty, buf),	       tty->ldisc.chars_in_buffer(tty));#endif	if (serial_paranoia_check(info, tty->name, "mcfrs_throttle"))		return;		if (I_IXOFF(tty))		info->x_char = STOP_CHAR(tty);	/* Turn off RTS line (do this atomic) */}
开发者ID:LouZiffer,项目名称:m900_kernel_cupcake-SDX,代码行数:26,


示例11: rs_unthrottle

/* * Un-throttle characters as directed by upper tty layer */static void rs_unthrottle(struct tty_struct * tty){#ifdef TX3912_UART_DEBUG_THROTTLE    char	buf[64];    printk("unthrottle %s: %d..../n", tty_name(tty, buf),           tty->ldisc.chars_in_buffer(tty));#endif    func_enter();    if (I_IXOFF(tty)) {        if (rs_port->x_char)            rs_port->x_char = 0;        else            rs_send_xchar(tty, START_CHAR(tty));    }    func_exit();}
开发者ID:kevin-longkai,项目名称:edimax-br-6528n,代码行数:23,


示例12: rs_throttle

/* * ------------------------------------------------------------ * rs_throttle() *  * This routine is called by the upper-layer tty layer to signal that * incoming characters should be throttled. * ------------------------------------------------------------ */static void rs_throttle(struct tty_struct * tty){	struct serial_state *info = tty->driver_data;	unsigned long flags;#ifdef SERIAL_DEBUG_THROTTLE	printk("throttle %s ..../n", tty_name(tty));#endif	if (serial_paranoia_check(info, tty->name, "rs_throttle"))		return;	if (I_IXOFF(tty))		rs_send_xchar(tty, STOP_CHAR(tty));	if (C_CRTSCTS(tty))		info->MCR &= ~SER_RTS;	local_irq_save(flags);	rtsdtr_ctrl(info->MCR);	local_irq_restore(flags);}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:29,


示例13: gr_log_varargs

//.........这里部分代码省略.........		break;	case GR_FILENAME:		dentry = va_arg(ap, struct dentry *);		mnt = va_arg(ap, struct vfsmount *);		gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt));		break;	case GR_STR_FILENAME:		str1 = va_arg(ap, char *);		dentry = va_arg(ap, struct dentry *);		mnt = va_arg(ap, struct vfsmount *);		gr_log_middle_varargs(audit, msg, str1, gr_to_filename(dentry, mnt));		break;	case GR_FILENAME_STR:		dentry = va_arg(ap, struct dentry *);		mnt = va_arg(ap, struct vfsmount *);		str1 = va_arg(ap, char *);		gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), str1);		break;	case GR_FILENAME_TWO_INT:		dentry = va_arg(ap, struct dentry *);		mnt = va_arg(ap, struct vfsmount *);		num1 = va_arg(ap, int);		num2 = va_arg(ap, int);		gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2);		break;	case GR_FILENAME_TWO_INT_STR:		dentry = va_arg(ap, struct dentry *);		mnt = va_arg(ap, struct vfsmount *);		num1 = va_arg(ap, int);		num2 = va_arg(ap, int);		str1 = va_arg(ap, char *);		gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2, str1);		break;	case GR_TEXTREL:		file = va_arg(ap, struct file *);		ulong1 = va_arg(ap, unsigned long);		ulong2 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>", ulong1, ulong2);		break;	case GR_PTRACE:		task = va_arg(ap, struct task_struct *);		gr_log_middle_varargs(audit, msg, task->exec_file ? gr_to_filename(task->exec_file->f_path.dentry, task->exec_file->f_path.mnt) : "(none)", task->comm, task->pid);		break;	case GR_RESOURCE:		task = va_arg(ap, struct task_struct *);		ulong1 = va_arg(ap, unsigned long);		str1 = va_arg(ap, char *);		ulong2 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, ulong1, str1, ulong2, gr_task_fullpath(task), task->comm, task->pid, task->uid, task->euid, task->gid, task->egid, gr_parent_task_fullpath(task), task->parent->comm, task->parent->pid, task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid);		break;	case GR_CAP:		task = va_arg(ap, struct task_struct *);		str1 = va_arg(ap, char *);		gr_log_middle_varargs(audit, msg, str1, gr_task_fullpath(task), task->comm, task->pid, task->uid, task->euid, task->gid, task->egid, gr_parent_task_fullpath(task), task->parent->comm, task->parent->pid, task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid);		break;	case GR_SIG:		task = va_arg(ap, struct task_struct *);		num1 = va_arg(ap, int);		gr_log_middle_varargs(audit, msg, num1, gr_task_fullpath0(task), task->comm, task->pid, task->uid, task->euid, task->gid, task->egid, gr_parent_task_fullpath0(task), task->parent->comm, task->parent->pid, task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid);		break;	case GR_CRASH1:		task = va_arg(ap, struct task_struct *);		ulong1 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task->pid, task->uid, task->euid, task->gid, task->egid, gr_parent_task_fullpath(task), task->parent->comm, task->parent->pid, task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid, task->uid, ulong1);		break;	case GR_CRASH2:		task = va_arg(ap, struct task_struct *);		ulong1 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task->pid, task->uid, task->euid, task->gid, task->egid, gr_parent_task_fullpath(task), task->parent->comm, task->parent->pid, task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid, ulong1);		break;	case GR_PSACCT:		{			unsigned int wday, cday;			__u8 whr, chr;			__u8 wmin, cmin;			__u8 wsec, csec;			char cur_tty[64] = { 0 };			char parent_tty[64] = { 0 };			task = va_arg(ap, struct task_struct *);			wday = va_arg(ap, unsigned int);			cday = va_arg(ap, unsigned int);			whr = va_arg(ap, int);			chr = va_arg(ap, int);			wmin = va_arg(ap, int);			cmin = va_arg(ap, int);			wsec = va_arg(ap, int);			csec = va_arg(ap, int);			ulong1 = va_arg(ap, unsigned long);			gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task->pid, NIPQUAD(task->signal->curr_ip), tty_name(task->signal->tty, cur_tty), task->uid, task->euid, task->gid, task->egid, wday, whr, wmin, wsec, cday, chr, cmin, csec, (task->flags & PF_SIGNALED) ? "killed by signal" : "exited", ulong1, gr_parent_task_fullpath(task), task->parent->comm, task->parent->pid, NIPQUAD(task->parent->signal->curr_ip), tty_name(task->parent->signal->tty, parent_tty), task->parent->uid, task->parent->euid, task->parent->gid, task->parent->egid);		}		break;	default:		gr_log_middle(audit, msg, ap);	}	va_end(ap);	gr_log_end(audit);	END_LOCKS(audit);}
开发者ID:mikeberkelaar,项目名称:grhardened,代码行数:101,


示例14: n_tty_receive_buf

static void n_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp,			      char *fp, int count){	const unsigned char *p;	char *f, flags = TTY_NORMAL;	int	i;	char	buf[64];	unsigned long cpuflags;	if (!tty->read_buf)		return;	if (tty->real_raw) {		spin_lock_irqsave(&tty->read_lock, cpuflags);		i = min(N_TTY_BUF_SIZE - tty->read_cnt,			N_TTY_BUF_SIZE - tty->read_head);		i = min(count, i);		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;		cp += i;		count -= i;		i = min(N_TTY_BUF_SIZE - tty->read_cnt,			N_TTY_BUF_SIZE - tty->read_head);		i = min(count, i);		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;		spin_unlock_irqrestore(&tty->read_lock, cpuflags);	} else {		for (i = count, p = cp, f = fp; i; i--, p++) {			if (f)				flags = *f++;			switch (flags) {			case TTY_NORMAL:				n_tty_receive_char(tty, *p);				break;			case TTY_BREAK:				n_tty_receive_break(tty);				break;			case TTY_PARITY:			case TTY_FRAME:				n_tty_receive_parity_error(tty, *p);				break;			case TTY_OVERRUN:				n_tty_receive_overrun(tty);				break;			default:				printk(KERN_ERR "%s: unknown flag %d/n",				       tty_name(tty, buf), flags);				break;			}		}		if (tty->ops->flush_chars)			tty->ops->flush_chars(tty);	}	n_tty_set_room(tty);	if ((!tty->icanon && (tty->read_cnt >= tty->minimum_to_wake)) ||		L_EXTPROC(tty)) {		kill_fasync(&tty->fasync, SIGIO, POLL_IN);		if (waitqueue_active(&tty->read_wait))			wake_up_interruptible(&tty->read_wait);	}	if (tty->receive_room < TTY_THRESHOLD_THROTTLE)		tty_throttle(tty);}
开发者ID:DirtyDroidX,项目名称:android_kernel_htc_m8ul,代码行数:70,


示例15: gr_log_varargs

//.........这里部分代码省略.........		break;	case GR_PTRACE:		task = va_arg(ap, struct task_struct *);		gr_log_middle_varargs(audit, msg, task->exec_file ? gr_to_filename(task->exec_file->f_path.dentry, task->exec_file->f_path.mnt) : "(none)", task->comm, task_pid_nr(task));		break;	case GR_RESOURCE:		task = va_arg(ap, struct task_struct *);		cred = __task_cred(task);		pcred = __task_cred(task->real_parent);		ulong1 = va_arg(ap, unsigned long);		str1 = va_arg(ap, char *);		ulong2 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, ulong1, str1, ulong2, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));		break;	case GR_CAP:		task = va_arg(ap, struct task_struct *);		cred = __task_cred(task);		pcred = __task_cred(task->real_parent);		str1 = va_arg(ap, char *);		gr_log_middle_varargs(audit, msg, str1, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));		break;	case GR_SIG:		str1 = va_arg(ap, char *);		voidptr = va_arg(ap, void *);		gr_log_middle_varargs(audit, msg, str1, voidptr);		break;	case GR_SIG2:		task = va_arg(ap, struct task_struct *);		cred = __task_cred(task);		pcred = __task_cred(task->real_parent);		num1 = va_arg(ap, int);		gr_log_middle_varargs(audit, msg, num1, gr_task_fullpath0(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath0(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));		break;	case GR_CRASH1:		task = va_arg(ap, struct task_struct *);		cred = __task_cred(task);		pcred = __task_cred(task->real_parent);		ulong1 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid), GR_GLOBAL_UID(cred->uid), ulong1);		break;	case GR_CRASH2:		task = va_arg(ap, struct task_struct *);		cred = __task_cred(task);		pcred = __task_cred(task->real_parent);		ulong1 = va_arg(ap, unsigned long);		gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid), ulong1);		break;	case GR_RWXMAP:		file = va_arg(ap, struct file *);		gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");		break;	case GR_RWXMAPVMA:		vma = va_arg(ap, struct vm_area_struct *);		if (vma->vm_file)			str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);		else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))			str1 = "<stack>";		else if (vma->vm_start <= current->mm->brk &&			 vma->vm_end >= current->mm->start_brk)			str1 = "<heap>";		else			str1 = "<anonymous mapping>";		gr_log_middle_varargs(audit, msg, str1);		break;	case GR_PSACCT:		{			unsigned int wday, cday;			__u8 whr, chr;			__u8 wmin, cmin;			__u8 wsec, csec;			char cur_tty[64] = { 0 };			char parent_tty[64] = { 0 };			task = va_arg(ap, struct task_struct *);			wday = va_arg(ap, unsigned int);			cday = va_arg(ap, unsigned int);			whr = va_arg(ap, int);			chr = va_arg(ap, int);			wmin = va_arg(ap, int);			cmin = va_arg(ap, int);			wsec = va_arg(ap, int);			csec = va_arg(ap, int);			ulong1 = va_arg(ap, unsigned long);			cred = __task_cred(task);			pcred = __task_cred(task->real_parent);			gr_log_middle_varargs(audit, msg, gr_task_fullpath(task), task->comm, task_pid_nr(task), &task->signal->curr_ip, tty_name(task->signal->tty, cur_tty), GR_GLOBAL_UID(cred->uid), GR_GLOBAL_UID(cred->euid), GR_GLOBAL_GID(cred->gid), GR_GLOBAL_GID(cred->egid), wday, whr, wmin, wsec, cday, chr, cmin, csec, (task->flags & PF_SIGNALED) ? "killed by signal" : "exited", ulong1, gr_parent_task_fullpath(task), task->real_parent->comm, task_pid_nr(task->real_parent), &task->real_parent->signal->curr_ip, tty_name(task->real_parent->signal->tty, parent_tty), GR_GLOBAL_UID(pcred->uid), GR_GLOBAL_UID(pcred->euid), GR_GLOBAL_GID(pcred->gid), GR_GLOBAL_GID(pcred->egid));		}		break;	default:		gr_log_middle(audit, msg, ap);	}	va_end(ap);	// these don't need DEFAULTSECARGS printed on the end	if (argtypes == GR_CRASH1 || argtypes == GR_CRASH2)		gr_log_end(audit, 0);	else		gr_log_end(audit, 1);	END_LOCKS(audit);}
开发者ID:ParrotSec,项目名称:linux-psec,代码行数:101,


示例16: n_tty_receive_buf

static void n_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp,			      char *fp, int count){	const unsigned char *p;	char *f, flags = 0;	int	i;	if (!tty->read_buf)		return;	if (tty->real_raw) {		i = MIN(count, MIN(N_TTY_BUF_SIZE - tty->read_cnt,				   N_TTY_BUF_SIZE - tty->read_head));		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;		cp += i;		count -= i;		i = MIN(count, MIN(N_TTY_BUF_SIZE - tty->read_cnt,			       N_TTY_BUF_SIZE - tty->read_head));		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;	} else {		for (i=count, p = cp, f = fp; i; i--, p++) {			if (f)				flags = *f++;			switch (flags) {			case TTY_NORMAL:				n_tty_receive_char(tty, *p);				break;			case TTY_BREAK:				n_tty_receive_break(tty);				break;			case TTY_PARITY:			case TTY_FRAME:				n_tty_receive_parity_error(tty, *p);				break;			case TTY_OVERRUN:				n_tty_receive_overrun(tty);				break;			default:				printk("%s: unknown flag %d/n", tty_name(tty),				       flags);				break;			}		}		if (tty->driver.flush_chars)			tty->driver.flush_chars(tty);	}	if (!tty->icanon && (tty->read_cnt >= tty->minimum_to_wake)) {		if (tty->fasync)			kill_fasync(tty->fasync, SIGIO);		if (tty->read_wait)			wake_up_interruptible(&tty->read_wait);	}	if ((tty->read_cnt >= TTY_THRESHOLD_THROTTLE) &&	    tty->driver.throttle &&	    !set_bit(TTY_THROTTLED, &tty->flags))		tty->driver.throttle(tty);}
开发者ID:benbee,项目名称:Learning,代码行数:64,


示例17: n_tty_receive_buf

static void n_tty_receive_buf(struct tty_struct *tty, const unsigned char *cp,			      char *fp, int count){	const unsigned char *p;	char *f, flags = TTY_NORMAL;	int	i;	char	buf[64];	if (!tty->read_buf)		return;	if (tty->real_raw) {		i = MIN(count, MIN(N_TTY_BUF_SIZE - tty->read_cnt,				   N_TTY_BUF_SIZE - tty->read_head));		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;		cp += i;		count -= i;		i = MIN(count, MIN(N_TTY_BUF_SIZE - tty->read_cnt,			       N_TTY_BUF_SIZE - tty->read_head));		memcpy(tty->read_buf + tty->read_head, cp, i);		tty->read_head = (tty->read_head + i) & (N_TTY_BUF_SIZE-1);		tty->read_cnt += i;	} else {		for (i=count, p = cp, f = fp; i; i--, p++) {			if (f)				flags = *f++;			switch (flags) {			case TTY_NORMAL:				n_tty_receive_char(tty, *p);				break;			case TTY_BREAK:				n_tty_receive_break(tty);				break;			case TTY_PARITY:			case TTY_FRAME:				n_tty_receive_parity_error(tty, *p);				break;			case TTY_OVERRUN:				n_tty_receive_overrun(tty);				break;			default:				printk("%s: unknown flag %d/n",				       tty_name(tty, buf), flags);				break;			}		}		if (tty->driver.flush_chars)			tty->driver.flush_chars(tty);	}	if (!tty->icanon && (tty->read_cnt >= tty->minimum_to_wake)) {		if (tty->fasync)			kill_fasync(tty->fasync, SIGIO);		if (tty->read_wait)			wake_up_interruptible(&tty->read_wait);	}	/*	 * Check the remaining room for the input canonicalization	 * mode.  We don't want to throttle the driver if we're in	 * canonical mode and don't have a newline yet!	 */	if (n_tty_receive_room(tty) < TTY_THRESHOLD_THROTTLE) {		/* check TTY_THROTTLED first so it indicates our state */		if (!test_and_set_bit(TTY_THROTTLED, &tty->flags) &&		    tty->driver.throttle)			tty->driver.throttle(tty);	}}
开发者ID:benbee,项目名称:Learning,代码行数:72,


示例18: login

voidlogin (const struct utmp *ut){#ifdef PATH_MAX  char _tty[PATH_MAX + UT_LINESIZE];#else  char _tty[512 + UT_LINESIZE];#endif  char *tty = _tty;  int found_tty;  const char *ttyp;  struct utmp copy = *ut;  /* Fill in those fields we supply.  */#if _HAVE_UT_TYPE - 0  copy.ut_type = USER_PROCESS;#endif#if _HAVE_UT_PID - 0  copy.ut_pid = getpid ();#endif  /* Seek tty.  */  found_tty = tty_name (STDIN_FILENO, &tty, sizeof (_tty));  if (found_tty < 0)    found_tty = tty_name (STDOUT_FILENO, &tty, sizeof (_tty));  if (found_tty < 0)    found_tty = tty_name (STDERR_FILENO, &tty, sizeof (_tty));  if (found_tty >= 0)    {      /* We only want to insert the name of the tty without path.	 But take care of name like /dev/pts/3.  */      if (strncmp (tty, "/dev/", 5) == 0)	ttyp = tty + 5;		/* Skip the "/dev/".  */      else	ttyp = basename (tty);      /* Position to record for this tty.  */      strncpy (copy.ut_line, ttyp, UT_LINESIZE);      /* Tell that we want to use the UTMP file.  */      if (utmpname (_PATH_UTMP) == 0)	{	  /* Open UTMP file.  */	  setutent ();	  /* Write the entry.  */	  pututline (&copy);	  /* Close UTMP file.  */	  endutent ();	}      if (tty != _tty)	free (tty);		/* Free buffer malloced by tty_name.  */    }  else    /* We provide a default value so that the output does not contain       an random bytes in this field.  */    strncpy (copy.ut_line, "???", UT_LINESIZE);  /* Update the WTMP file.  Here we have to add a new entry.  */  updwtmp (_PATH_WTMP, &copy);}
开发者ID:JamesLinus,项目名称:glibc-mips,代码行数:64,


示例19: tty_ldisc_hangup

void tty_ldisc_hangup(struct tty_struct *tty){	struct tty_ldisc *ld;	int reset = tty->driver->flags & TTY_DRIVER_RESET_TERMIOS;	int err = 0;	/*	 * FIXME! What are the locking issues here? This may me overdoing	 * things... This question is especially important now that we've	 * removed the irqlock.	 */	ld = tty_ldisc_ref(tty);	if (ld != NULL) {		/* We may have no line discipline at this point */		if (ld->ops->flush_buffer)			ld->ops->flush_buffer(tty);		tty_driver_flush_buffer(tty);		if ((test_bit(TTY_DO_WRITE_WAKEUP, &tty->flags)) &&		    ld->ops->write_wakeup)			ld->ops->write_wakeup(tty);		if (ld->ops->hangup)			ld->ops->hangup(tty);		tty_ldisc_deref(ld);	}	/*	 * FIXME: Once we trust the LDISC code better we can wait here for	 * ldisc completion and fix the driver call race	 */	wake_up_interruptible_poll(&tty->write_wait, POLLOUT);	wake_up_interruptible_poll(&tty->read_wait, POLLIN);	/*	 * Shutdown the current line discipline, and reset it to	 * N_TTY if need be.	 *	 * Avoid racing set_ldisc or tty_ldisc_release	 */	mutex_lock(&tty->ldisc_mutex);	/*	 * this is like tty_ldisc_halt, but we need to give up	 * the BTM before calling cancel_work_sync, which may	 * need to wait for another function taking the BTM	 */	clear_bit(TTY_LDISC, &tty->flags);	tty_unlock(tty);	cancel_work_sync(&tty->port->buf.work);	mutex_unlock(&tty->ldisc_mutex);retry:	tty_lock(tty);	mutex_lock(&tty->ldisc_mutex);	/* At this point we have a closed ldisc and we want to	   reopen it. We could defer this to the next open but	   it means auditing a lot of other paths so this is	   a FIXME */	if (tty->ldisc) {	/* Not yet closed */		if (atomic_read(&tty->ldisc->users) != 1) {			char cur_n[TASK_COMM_LEN], tty_n[64];			long timeout = 3 * HZ;			tty_unlock(tty);			while (tty_ldisc_wait_idle(tty, timeout) == -EBUSY) {				timeout = MAX_SCHEDULE_TIMEOUT;				printk_ratelimited(KERN_WARNING					"%s: waiting (%s) for %s took too long, but we keep waiting.../n",					__func__, get_task_comm(cur_n, current),					tty_name(tty, tty_n));			}			mutex_unlock(&tty->ldisc_mutex);			goto retry;		}		if (reset == 0) {			if (!tty_ldisc_reinit(tty, tty->termios.c_line))				err = tty_ldisc_open(tty, tty->ldisc);			else				err = 1;		}		/* If the re-open fails or we reset then go to N_TTY. The		   N_TTY open cannot fail */		if (reset || err) {			BUG_ON(tty_ldisc_reinit(tty, N_TTY));			WARN_ON(tty_ldisc_open(tty, tty->ldisc));		}		tty_ldisc_enable(tty);	}	mutex_unlock(&tty->ldisc_mutex);	if (reset)		tty_reset_termios(tty);}
开发者ID:sombree,项目名称:Hulk-Kernel-V2,代码行数:91,



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


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