About changing Line Discipline from Kernel
Hi ,
I have few queries related to using Line Discipline.
1. I understand that line discipline can be changed from user space application by opening the device and doing ioctl with required Line Discipline ID. Is it possible to do the same from kernel module who would be communicating with that line discipline ?
2. Is it way to set default line discipline for particular tty device to required Line Discipline instead of N_TTY one ?
Appreciate your help on this.
Regards,
_-_Mayank Rana_-_
Signature · 2 lines
Sent by a consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Onsdag den 22. februar 2012 12:35:16 skrev Mayank Rana:
Quoted 8 lines
I have few queries related to using Line Discipline.
1. I understand that line discipline can be changed from user space application by opening the device and doing ioctl with required Line Discipline ID. Is it possible to do the same from kernel module who would be communicating with that line discipline ?
Quoted 4 lines
2. Is it way to set default line discipline for particular tty device to required Line Discipline instead of
N_TTYone ?Appreciate your help on this.
I've earlier done something like this :
/* Attach line discipline to the uctrl tty */
set_fs(get_ds());
ret = put_user(N_PS3D, &ldiscNum);
if (ret != 0) {
PSDEBUG(debuglevel, "Leaving, EFAULT\n");
return -EFAULT;
} else {
set_fs(KERNEL_DS);
ret = uctrl_file->f_op->unlocked_ioctl(uctrl_file, TIOCSETD, (unsigned long)&ldiscNum);
/*
* Decrement use count since setting the line descipline triggers a call to 'n_ps3d_tty_open'
* which increments the use count making it impossible to only the module without --force
*/
module_put(THIS_MODULE);
if (ret < 0) {
PSKERR(debuglevel, "failed with n_tty_ioctl()\n");
return -EFAULT;
}
}
set_fs(old_fs);Signature · 5 lines
Søren Holm -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 4 lines
1. I understand that line discipline can be changed from user space application by opening the device and doing ioctl with required Line Discipline ID. Is it possible to do the same from kernel module who would be communicating with that line discipline ?
Not currently. You need something to hold the tty open anyway if you do this.
Quoted 2 lines
2. Is it way to set default line discipline for particular tty device to required Line Discipline instead of
N_TTYone ?
No. All tty devices start in N_TTY and return to N_TTY when closed. That's a design assumption in the ldisc handling and in in the tty setup and teardown code paths.
There is no API/ABI reason for the assumption so if someone did the work they could remove that assumption.
Alan