51 lines · c
1// SPDX-License-Identifier: GPL-2.02#include <linux/types.h>3#include <linux/errno.h>4#include <linux/tty.h>5#include <linux/module.h>6 7/*8 * n_null.c - Null line discipline used in the failure path9 *10 * Copyright (C) Intel 201711 */12 13static ssize_t n_null_read(struct tty_struct *tty, struct file *file, u8 *buf,14 size_t nr, void **cookie, unsigned long offset)15{16 return -EOPNOTSUPP;17}18 19static ssize_t n_null_write(struct tty_struct *tty, struct file *file,20 const u8 *buf, size_t nr)21{22 return -EOPNOTSUPP;23}24 25static struct tty_ldisc_ops null_ldisc = {26 .owner = THIS_MODULE,27 .num = N_NULL,28 .name = "n_null",29 .read = n_null_read,30 .write = n_null_write,31};32 33static int __init n_null_init(void)34{35 BUG_ON(tty_register_ldisc(&null_ldisc));36 return 0;37}38 39static void __exit n_null_exit(void)40{41 tty_unregister_ldisc(&null_ldisc);42}43 44module_init(n_null_init);45module_exit(n_null_exit);46 47MODULE_LICENSE("GPL");48MODULE_AUTHOR("Alan Cox");49MODULE_ALIAS_LDISC(N_NULL);50MODULE_DESCRIPTION("Null ldisc driver");51