22 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
24 #include <linux/module.h>
25 #include <linux/serial_core.h>
26 #include <linux/tty.h>
29 #define PPS_TTY_MAGIC 0x0001
43 status ?
"assert" :
"clear",
jiffies);
48 static int pps_tty_open(
struct tty_struct *tty)
67 pr_err(
"cannot register PPS source \"%s\"\n",
info.path);
73 ret = alias_n_tty_open(tty);
75 pr_err(
"cannot open tty ldisc \"%s\"\n",
info.path);
91 static void pps_tty_close(
struct tty_struct *tty)
95 alias_n_tty_close(tty);
108 static int __init pps_tty_init(
void)
116 alias_n_tty_open = pps_ldisc_ops.open;
117 alias_n_tty_close = pps_ldisc_ops.close;
122 pps_ldisc_ops.name =
"pps_tty";
123 pps_ldisc_ops.dcd_change = pps_tty_dcd_change;
124 pps_ldisc_ops.open = pps_tty_open;
125 pps_ldisc_ops.close = pps_tty_close;
129 pr_err(
"can't register PPS line discipline\n");
131 pr_info(
"PPS line discipline registered\n");
136 static void __exit pps_tty_cleanup(
void)
142 pr_err(
"can't unregister PPS line discipline\n");
144 pr_info(
"PPS line discipline removed\n");