LINEDISC(9) | Kernel Developer's Manual | LINEDISC(9)

# NAME

`linedisc`, `ttyldisc_add`, `ttyldisc_lookup`, `ttyldisc_remove` —
extensible line discipline framework

# SYNOPSIS

`#include <sys/conf.h>`

int
`ttyldisc_add`(struct linesw *disc, int no);

struct linesw *
`ttyldisc_remove`(const char *name);

struct linesw *
`ttyldisc_lookup`(const char *name);

# DESCRIPTION

The NetBSD TTY line discipline framework allows extensibility. Modules that need special line disciplines can add them as convenient and do not need to modify tty_conf.c. Line disciplines are now managed by a string, rather than number.

Once the framework has been initialized, a new line discipline can be added by creating and initializing a struct linesw and calling `ttyldisc_add`().

The following is a brief description of each function in the framework:

`ttyldisc_add`()
  Register a line discipline. The l_name field of the struct linesw should point to a string which is to be the symbolic name of that line discipline. For compatibility purposes, a line discipline number can be passed in no, but for new disciplines this should be set to `-1`.
`ttyldisc_lookup`()
  Look up a line discipline by name. `NULL` is returned if it can not be found.
`ttyldisc_remove`()
  Remove a line discipline called name and return a pointer to it. If the discipline cannot be found or removed `ttyldisc_remove`() will return `NULL`.

# SEE ALSO

tty(4)

# HISTORY

The `linedisc` functions were added in NetBSD 1.6.

# AUTHORS

The NetBSD extensible line discipline framework was created by Eduardo Horvath ⟨eeh@NetBSD.org⟩.

November 1, 2000 | NetBSD 9.1