ÎÒдµÄ´®¿ÚÇý¶¯ д²»ÏÂÈ¥ÁË ´ó¼Ò°ïæ°¡
#include <linux/module.h>#include <linux/errno.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/tty_driver.h> /*Êý¾Ý½á¹¹tty_driver*/
#include <linux/fcntl.h>
#include <linux/string.h>
#include <linux/major.h>
#include <linux/mm.h>
#include <linux/init.h> /*ÓÃÓÚÖ¸¶¨Ä£¿é³õʼ»¯ºÍÇå³ýº¯ÊýµÄºê*/
#include <linux/sysctl.h>
#include <asm/uaccess.h> /*ÉùÃ÷ÔÚÄں˴úÂëºÍÓû§¿Õ¼äÖ®¼äÒÆ¶¯Êý¾ÝµÄº¯Êý*/
#include <asm/system.h>
#include <linux/bitops.h>
#include <linux/devpts_fs.h>
static struct tty_driver *serial_driver;
static void serial_close(struct tty_struct * tty, struct file * filp)
{
}
static void serial_unthrottle(struct tty_struct * tty)
{
}
static int serial_write(struct tty_struct * tty, const unsigned char *buf, int count)
{
}
static int serial_write_room(struct tty_struct *tty)
{
}
static int serial_chars_in_buffer(struct tty_struct *tty)
{
}
static int serial_set_lock(struct tty_struct *tty, int __user * arg)
{
}
static void serial_flush_buffer(struct tty_struct *tty)
{
}
static int serial_open(struct tty_struct *tty, struct file * filp)
{
}
static void serial_set_termios(struct tty_struct *tty, struct termios *old_termios)
{
}
static struct tty_operations serial_ops = {
.open = serial_open,
.close = serial_close,
.write = serial_write,
.write_room = serial_write_room,
.flush_buffer = serial_flush_buffer,
.chars_in_buffer = serial_chars_in_buffer,
.unthrottle = serial_unthrottle,
.set_termios = serial_set_termios,
};
static int __init serial_init(void)
{
serial_driver = alloc_tty_driver();
if (!serial_driver)
panic("Couldn't allocate serial driver");
serial_driver->owner = THIS_MODULE;
serial_driver->driver_name = ;/*ÔÚ/proc/ttyºÍsysfsÖÐʹÓ㬱íʾÇý¶¯³ÌÐòµÄÃû×Ö*/
serial_driver->name = ;
serial_driver->major = ;
serial_driver->minor_start = ;
serial_driver->type = ;
serial_driver->subtype = ;
serial_driver->init_termios = ;
serial_driver->init_termios.c_iflag = ;
serial_driver->init_termios.c_oflag = ;
serial_driver->init_termios.c_cflag = ;
serial_driver->init_termios.c_lflag = ;
serial_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS ;
serial_driver->other = ;
serial_driver->ioctl = ;
tty_set_operations(serial_driver, &serial_ops);
if (tty_register_driver(serial_driver))
panic("Couldn't register serial driver");
return 0;
}
static void __exit serial_exit(void)
{
}
module_init(serial_init);
module_exit(serial_exit);
Ò³:
[1]