← Back to team overview

sslug-teknik team mailing list archive

Line discipline

 

Jeg  er ved at lave et modul der skal registrere en line dicipline.
Men når jeg kigger i 

linux/tty.h
	#define NR_LDISCS		16

asm/termios.h
	/* line disciplines */
	#define N_TTY           0
	#define N_SLIP          1
	#define N_MOUSE         2
	#define N_PPP           3
	#define N_STRIP         4
	#define N_AX25          5
	#define N_X25           6       /* X.25 async */
	#define N_6PACK         7
	#define N_MASC          8       /* Reserved for Mobitex module
<kaz@xxxxxxxx> */
	#define N_R3964         9       /* Reserved for Simatic R3964 module
*/
	#define N_PROFIBUS_FDL  10      /* Reserved for Profibus
<Dave@xxxxxxxx> */
	#define N_IRDA          11      /* Linux IR -
http://irda.sourceforge.net/ */
	#define N_SMSBLOCK      12      /* SMS block mode - for talking to
GSM data card
	#define N_HDLC          13      /* synchronous HDLC */
	#define N_SYNC_PPP      14      /* synchronous PPP */
	#define N_HCI           15  /* Bluetooth HCI UART */

drivers/char/tty_io.c
	int tty_register_ldisc(int disc, struct tty_ldisc *new_ldisc)
	{
        if (disc < N_TTY || disc >= NR_LDISCS)
                return -EINVAL;

        if (new_ldisc) {
                ldiscs[disc] = *new_ldisc;
                ldiscs[disc].flags |= LDISC_FLAG_DEFINED;
                ldiscs[disc].num = disc;
        } else
                memset(&ldiscs[disc], 0, sizeof(struct tty_ldisc));

        return 0;
	}

Se det ud til at der kun er disse 16 muglige ldisc's?
Kan det passe at jeg ikke kan indføre en ny, uden at skulle ænde på selve
kernen?


-- 
Martin Hansen
Student at SDU Sønderborg. www.sdu.dk
Writing final project at Danfoss drives. www.danfossdrives.com

Tlf: 74 88 54 62


Follow ups