LinuxÒÁµéÔ°ÂÛ̳'s Archiver

quecn ·¢±íÓÚ 2007-3-1 08:39

ÎÒдµÄ´®¿ÚÇý¶¯ д²»ÏÂÈ¥ÁË ´ó¼Ò°ïæ°¡

#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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.