日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式linux 控制台 驱动,控制台驱动是linux重要的设备驱动之一

發布時間:2023/12/29 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式linux 控制台 驱动,控制台驱动是linux重要的设备驱动之一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:前言

我們在之前分析過input子系統和tty設備驅動架構.今天需要將兩者結合起來.看看linux中的控制臺是怎么樣實現的.

二:控制臺驅動的初始化

之前在分析tty驅動架構的時候曾分析到.主設備為4,次設備為0的設備節點,即/dev/tty0為當前的控制終端.

有tty_init()中,有以下代碼段:

static int __init tty_init(void)

{

……

……

#ifdef CONFIG_VT

cdev_init(&vc0_cdev, &console_fops);

if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) ||

register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0") < 0)

panic("Couldn't register /dev/tty0 driver/n");

device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), "tty0");

vty_init();

#endif

return 0;

}

CONFIG_VT:是指配置虛擬終端.即我們所說的控制臺.在此可以看到TTY_MAJOR(4),0對應的設備節點操作集為console_fops.

繼續跟進vty_init()

int __init vty_init(void)

{

vcs_init();

console_driver = alloc_tty_driver(MAX_NR_CONSOLES);

if (!console_driver)

panic("Couldn't allocate console driver/n");

console_driver->owner = THIS_MODULE;

console_driver->name = "tty";

console_driver->name_base = 1;

console_driver->major = TTY_MAJOR;

console_driver->minor_start = 1;

console_driver->type = TTY_DRIVER_TYPE_CONSOLE;

console_driver->init_termios = tty_std_termios;

console_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS;

tty_set_operaTIons(console_driver, &con_ops);

if (tty_register_driver(console_driver))

panic("Couldn't register console driver/n");

kbd_init();

console_map_init();

#ifdef CONFIG_PROM_CONSOLE

prom_con_init();

#endif

#ifdef CONFIG_MDA_CONSOLE

mda_console_init();

#endif

return 0;

}

經過我們之前的tty驅動架構分析,這段代碼看起來就比較簡單了,它就是注冊了一個tty驅動.這個驅動對應的操作集是位于con_ops里面的.

仔細看.在之后還會調用kbd_init().顧名思義,這個是一個有關鍵盤的初始化.控制終端跟鍵盤有什么關系呢?在之前分析tty的時候,曾提到過,. 對于控制臺而言,它的輸入設備是鍵盤鼠標,它的輸出設備是當前顯示器.這兩者是怎么關聯起來的呢?不著急.請看下面的分析.三:控制臺的open操作

在前面分析了,對應console的操作集為con_ops.定義如下:

staTIc const struct file_operaTIons console_fops = {

.llseek??????????????? = no_llseek,

.read?????????????????? = tty_read,

.write????????????????? = redirected_tty_write,

.poll?????????? = tty_poll,

.ioctl????????? = tty_ioctl,

.compat_ioctl??? = tty_compat_ioctl,

.open????????????????? = tty_open,

.release??? = tty_release,

.fasync?????????????? = tty_fasync,

};

里面的函數指針值我們都不陌生了,在之前分析的tty驅動中已經分析過了.

結合前面的tty驅動分析.我們知道在open的時候,會調用ldisc的open和tty_driver.open.

對于ldisc默認是tty_ldiscs[0].我們來看下它的具體賦值.

console_init():

void __init console_init(void)

{

initcall_t *call;

/* Setup the default TTY line discipline. */

(void) tty_register_ldisc(N_TTY, &tty_ldisc_N_TTY);

/*

* set up the console device so that later boot sequences can

* inform about problems etc..

*/

call = __con_initcall_start;

while (call < __con_initcall_end) {

(*call)();

call++;

}

}

在這里,通過tty_register_ldisc.將tty_ldisc_N_TTY注冊為了第N_TTY項.即第1項. tty_ldisc_N_TTY定義如下:

struct tty_ldisc tty_ldisc_N_TTY = {

.magic?????????? = TTY_LDISC_MAGIC,

.name??????????? = "n_tty",

.open??????????? = n_tty_open,

.close?????????? = n_tty_close,

.flush_buffer??? = n_tty_flush_buffer,

.chars_in_buffer = n_tty_chars_in_buffer,

.read??????????? = read_chan,

.write?????????? = write_chan,

.ioctl?????????? = n_tty_ioctl,

.set_termios???? = n_tty_set_termios,

.poll??????????? = normal_poll,

.receive_buf???? = n_tty_receive_buf,

.write_wakeup??? = n_tty_write_wakeup

}

對應的open操作為n_tty_open:

staTIc int n_tty_open(struct tty_struct *tty)

{

if (!tty)

return -EINVAL;

/* This one is ugly. Currently a malloc failure here can panic */

if (!tty->read_buf) {

tty->read_buf = alloc_buf();

if (!tty->read_buf)

return -ENOMEM;

}memset(tty->read_buf, 0, N_TTY_BUF_SIZE);

reset_._flags(tty);

tty->column = 0;

n_tty_set_termios(tty, NULL);

tty->minimum_to_wake = 1;

tty->closing = 0;

return 0;

}

它為tty->read_buf分配內存.這個buffer空間大小為N_TTY_BUF_SIZE.read_buf實際上就是從按鍵的緩存區.然后調用reset_flags()來初始化tty中的一些字段:

static void reset_buffer_flags(struct tty_struct *tty)

{

unsigned long flags;

spin_lock_irqsave(&tty->read_lock, flags);

tty->read_head = tty->read_tail = tty->read_cnt = 0;

spin_unlock_irqrestore(&tty->read_lock, flags);

tty->canon_head = tty->canon_data = tty->erasing = 0;

memset(&tty->read_flags, 0, sizeof tty->read_flags);

n_tty_set_room(tty);

check_unthrottle(tty);

}

這里比較簡,不再詳細分析.在這里要注意幾個tty成員的含義:

Tty->read_head, tty->read_tail , tty->read_cnt分別代表read_buf中數據的寫入位置,讀取位置和數據總數.read_buf是一個環形緩存區.

n_tty_set_room()是設備read_buf中的可用緩存區

check_unthrottle():是用來判斷是否需要打開”閥門”,允許輸入數據流入

對于console tty_driver對應的open函數如下示:

static int con_open(struct tty_struct *tty, struct file *filp)

{

unsigned int currcons = tty->index;

int ret = 0;

acquire_console_sem();

if (tty->driver_data == NULL) {

ret = vc_allocate(currcons);

if (ret == 0) {

struct vc_data *vc = vc_cons[currcons].d;

tty->driver_data = vc;

vc->vc_tty = tty;

if (!tty->winsize.ws_row && !tty->winsize.ws_col) {

tty->winsize.ws_row = vc_cons[currcons].d->vc_rows;

tty->winsize.ws_col = vc_cons[currcons].d->vc_cols;

}

release_console_sem();

vcs_make_sysfs(tty);

return ret;

}

}

release_console_sem();

return ret;

}

tty->index表示的是tty_driver所對示的設備節點序號.在這里也就是控制臺的序列.用alt+fn就可以切換控制終端.

在這里,它主要為vc_cons[ ]數組中的對應項賦值.并將tty和vc建立關聯.

四:控制臺的read操作

從tty驅動架構中分析可得到,最終的read操作會轉入到ldsic->read中進行.

相應tty_ldisc_N_TTY的read操作如下.這個函數代碼較長,分段分析如下:

static ssize_t read_chan(struct tty_struct *tty, struct file *file,

unsigned char __user *buf, size_t nr)

{

unsigned char __user *b = buf;

DECLARE_WAITQUEUE(wait, current);

int c;

int minimum, time;

ssize_t retval = 0;

ssize_t size;

long timeout;

unsigned long flags;

do_it_again:

if (!tty->read_buf) {

printk(KERN_ERR "n_tty_read_chan: read_buf == NULL?!?/n");

return -EIO;

}

c = job_control(tty, file);

if (c < 0)

return c;

minimum = time = 0;

timeout = MAX_SCHEDULE_TIMEOUT;if (!tty->icanon) {

time = (HZ / 10) * TIME_CHAR(tty);

minimum = MIN_CHAR(tty);

if (minimum) {

if (time)

tty->minimum_to_wake = 1;

else if (!waitqueue_active(&tty->read_wait) ||

(tty->minimum_to_wake > minimum))

tty->minimum_to_wake = minimum;

} else {

timeout = 0;

if (time) {

timeout = time;

time = 0;

}

tty->minimum_to_wake = minimum = 1;

}

}

首先,檢查read操作的合法性,read_buf是否已經建立.然后再根據操作的類型來設置tty-> minimum_to_wake.這個成員的含義即為: 如果讀進程在因數據不足而睡眠的情況下,數據到達并超過了minimum_to_wake.就將這個讀進程喚醒.具體的喚醒過程我們在遇到的時候再進行分析.

/*

*????? Internal serialization of reads.

*/

//不允許阻塞

if (file->f_flags & O_NONBLOCK) {

if (!mutex_trylock(&tty->atomic_read_lock))

return -EAGAIN;

} else {

if (mutex_lock_interruptible(&tty->atomic_read_lock))

return -ERESTARTSYS;

}

add_wait_queue(&tty->read_wait, &wait);

在不允許睡眠的情況下,調用mutex_trylock()去獲得鎖.如果鎖被占用,馬上返回.否則用可中斷的方式去獲取鎖,如果取鎖錯誤,返回失敗.如果取鎖成功,將進程加至等待隊列.在沒有數據可讀的情況下,直接睡眠.如果有數據可讀,將其移出等待隊列即可.

while (nr) {

/* First test for status change. */

if (tty->packet && tty->link->ctrl_status) {

unsigned char cs;

if (b != buf)

break;

cs = tty->link->ctrl_status;

tty->link->ctrl_status = 0;

if (tty_put_user(tty, cs, b++)) {

retval = -EFAULT;

b--;

break;

}

nr--;

break;

}

接下來就是一個漫長的while循環,用來讀取數據,一直到數據取滿為止.如果tty->packet被置為1.即為信包模式,通常用在偽終端設備. 如果tty->link->ctrl_status有數據.則說明如果鏈路狀態發生改變,需要提交此信息.在這種情況下,將其直接copy到用戶空間即可.

/* This statement must be first before checking for input

so that any interrupt will set the state back to

TASK_RUNNING. */

set_current_state(TASK_INTERRUPTIBLE);

if (((minimum - (b - buf)) < tty->minimum_to_wake) &&

((minimum - (b - buf)) >= 1))

tty->minimum_to_wake = (minimum - (b - buf));

if (!input_available_p(tty, 0)) {

if (test_bit(TTY_OTHER_CLOSED, &tty->flags)) {

retval = -EIO;

break;

}

if (tty_hung_up_p(file))

break;

if (!timeout)

break;

if (file->f_flags & O_NONBLOCK) {

retval = -EAGAIN;

break;

}

if (signal_pending(current)) {

retval = -ERESTARTSYS;

break;

}

n_tty_set_room(tty);

timeout = schedule_timeout(timeout);

continue;

}

__set_current_state(TASK_RUNNING);

先將進程設為TASK_INTERRUPTIBLE狀態.再調用input_available_p()來判斷可數據供讀取.如果沒有.則進程睡眠.如果有數據,則將進程狀態設為TASK_RUNNING.在終端接收數據的處理過程中,有兩種方式,一種是規范模式.一種是原始模式.在規范模式下,終端需要對數據里面的一些特殊字符做處理.在原始模式下.終端不會對接收到的數據做任何的處理.在這里input_available_p()在判斷是否有數據可讀也分兩種情況進行,對于規范模式,看是否有已經轉換好的數據,對于原始模式,判斷接收的信息總數

/* Deal with packet mode. */

//packet模式`忽略

if (tty->packet && b == buf) {

if (tty_put_user(tty, TIOCPKT_DATA, b++)) {

retval = -EFAULT;

b--;

break;

}

nr--;

}

if (tty->icanon) {

/* N.B. avoid overrun if nr == 0 */

while (nr && tty->read_cnt) {

int eol;

eol = test_and_clear_bit(tty->read_tail,

tty->read_flags);

c = tty->read_buf[tty->read_tail];

spin_lock_irqsave(&tty->read_lock, flags);

tty->read_tail = ((tty->read_tail+1) &

(N_TTY_BUF_SIZE-1));

tty->read_cnt--;

if (eol) {

/* this test should be redundant:

* we shouldn't be reading data if

* canon_data is 0

*/

if (--tty->canon_data < 0)

tty->canon_data = 0;

}

spin_unlock_irqrestore(&tty->read_lock, flags);

//如果沒有到結束字符,將字符copy到數據空間

//__DISABLED_CHAR是不需要copy到用戶空間的

if (!eol || (c != __DISABLED_CHAR)) {

if (tty_put_user(tty, c, b++)) {

retval = -EFAULT;

b--;

break;

}

nr--;

}

if (eol) {

//如果遇到行結束符.就可以退出了

tty_audit_push(tty);

break;

}

}

if (retval)

break;

} else {

//非加工模式,直接copy

int uncopied;

//環形緩存,copy兩次

uncopied = copy_from_read_buf(tty, &b, &nr);

uncopied += copy_from_read_buf(tty, &b, &nr);

if (uncopied) {

retval = -EFAULT;

break;

}

}

總結

以上是生活随笔為你收集整理的嵌入式linux 控制台 驱动,控制台驱动是linux重要的设备驱动之一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产视频99 | 亚洲天天在线日亚洲洲精 | 国内精品久久久久影院一蜜桃 | 欧美日韩一级久久久久久免费看 | 国产色综合 | 97视频在线看 | 99九九99九九九视频精品 | 日韩伦理片hd | 综合国产在线 | 成人羞羞免费 | av在线一级 | 国产成人精品一区二区三区福利 | 亚洲免费精品一区二区 | 精品伊人久久久 | 国产精品毛片久久久久久 | 欧美日韩另类在线观看 | 五月婷婷丁香在线观看 | 亚洲一级黄色片 | 欧美巨乳波霸 | 国产97视频在线 | 天天狠狠 | 香蕉久草在线 | 久久伊人热 | 亚洲精品在线资源 | 三上悠亚一区二区在线观看 | 高潮久久久久久 | 色偷偷88888欧美精品久久久 | 日韩特级黄色片 | 开心色停停 | 成人日韩av | 日韩在线视频网址 | 欧美一级电影免费观看 | 97人人人| 久久伊人综合 | 天天要夜夜操 | 免费在线观看av网址 | 亚洲国产精品小视频 | 欧美综合色在线图区 | 久操视频在线观看 | 国产精品video | 888av | 草莓视频在线观看免费观看 | 国产日韩精品一区二区三区在线 | 激情五月av| 午夜精品电影一区二区在线 | 狠狠色丁婷婷日日 | 中文在线字幕免费观 | 国内久久久久久 | 免费在线观看av | 午夜精品久久久久久99热明星 | 日韩精品不卡在线观看 | 久操视频在线免费看 | 国产精品欧美日韩在线观看 | 91成人精品一区在线播放 | 国产男女无遮挡猛进猛出在线观看 | 欧美成年人在线视频 | 久久9999久久免费精品国产 | 毛片网站免费在线观看 | 天天做日日做天天爽视频免费 | 九九在线免费视频 | 天天做天天看 | 欧美激情精品久久久久久变态 | 精品美女久久久久 | 日韩在线免费电影 | 日韩免费在线看 | 精品欧美一区二区三区久久久 | 中文字幕日韩电影 | 国产日韩精品久久 | 性色av香蕉一区二区 | 日韩免费观看视频 | 中日韩欧美精彩视频 | 国产成人精品午夜在线播放 | 中文字幕在线观看91 | 国产高清av在线播放 | 99精品热| 天天干天天玩天天操 | 日韩高清一二三区 | 国产精品无 | 日韩综合色 | 国内少妇自拍视频一区 | 狠狠躁18三区二区一区ai明星 | 99久久国产免费免费 | 超碰免费成人 | 久久男人中文字幕资源站 | 国产一级片播放 | 91精品国产一区 | 日韩美女免费线视频 | 人人狠 | 五月婷婷六月丁香在线观看 | www视频在线观看 | 亚洲电影久久 | 激情视频免费观看 | 97电影手机版 | 亚洲美女精品区人人人人 | 国产成人精品亚洲精品 | 国产黄免费 | 青春草视频在线播放 | 正在播放五月婷婷狠狠干 | 色香蕉在线 | 欧美韩国在线 | 麻豆成人小视频 | www.亚洲精品 | 综合色爱| 手机av永久免费 | 粉嫩av一区二区三区四区 | 亚洲高清视频在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 欧美91精品久久久久国产性生爱 | 911国产精品 | 国产主播大尺度精品福利免费 | 久久久一本精品99久久精品 | 天天躁天天操 | 成人免费观看视频网站 | 国产91精品一区二区绿帽 | 欧美最猛性xxx | 成人黄色片在线播放 | 国产色综合 | 免费观看一区 | 国产一区观看 | 亚洲jizzjizz日本少妇 | 四虎伊人 | 国产色在线,com | 天天摸天天弄 | 欧美激情奇米色 | 成人动态视频 | 中文字幕在线视频免费播放 | 亚洲女同videos | 成人av在线直播 | 欧美在线观看视频 | 久久综合天天 | 中文字幕亚洲精品日韩 | 国产在线播放不卡 | 97超碰在线播放 | 色视频在线观看免费 | 国产免费视频一区二区裸体 | 亚洲免费精彩视频 | 国产在线不卡精品 | 免费网站黄 | 国产在线观看一区 | 超碰人人91 | 国产亚洲激情视频在线 | 黄色一级性片 | 亚洲午夜电影网 | 国产精品国产毛片 | 在线免费看黄色 | av资源中文字幕 | 国产一区二区三区高清播放 | 日韩久久久久久久久久久久 | www天天干 | av片子在线观看 | 天天搞天天干天天色 | 欧美地下肉体性派对 | 中国成人一区 | 在线观看免费av网站 | 91在线播放国产 | 亚洲精品美女在线观看播放 | 亚洲视频,欧洲视频 | 欧美一级久久 | 日韩av高潮 | 成人国产精品久久久春色 | 成人久久久久久久久久 | 国产精品美女久久久久久久 | 青青河边草免费直播 | 最近免费中文字幕mv在线视频3 | 9999精品 | 色网站视频 | 国产成人三级在线播放 | 日日躁夜夜躁xxxxaaaa | 91精品综合在线观看 | 一区免费在线 | 亚洲 欧美变态 另类 综合 | 国产免费高清视频 | 久久露脸国产精品 | av电影不卡 | 国产美女久久久 | 亚洲精品免费观看视频 | 国产精品久久久久久久av大片 | 日韩视频精品在线 | 国产色就色 | 99久久精品一区二区成人 | 国产精品中文字幕在线观看 | 亚洲精品美女久久 | 91国内在线视频 | 亚洲精品久久久久久国 | 欧美亚洲三级 | 91人人射| 黄色亚洲片 | 亚洲国产大片 | 91精品久久久久久久久久入口 | 中文字幕视频免费观看 | 视频一区二区在线观看 | 欧美小视频在线 | 丁香花在线视频观看免费 | 97视频免费看 | 国产精品嫩草影院123 | 久久精品国产亚洲 | 婷婷六月天天 | av一本久道久久波多野结衣 | 99国产在线视频 | 国产日韩欧美在线播放 | 久久精品在线视频 | 五月婷香蕉久色在线看 | 友田真希x88av | 久久久久久久久毛片精品 | 蜜臀91丨九色丨蝌蚪老版 | 国产伦精品一区二区三区在线 | 国产高清精品在线 | www.eeuss影院av撸 | 日韩激情久久 | 免费福利片2019潦草影视午夜 | 亚洲成人黄色 | 国产精品麻豆果冻传媒在线播放 | 欧美日韩高清一区二区 | 亚洲少妇激情 | 中文字幕综合在线 | 成人av免费在线 | 人人舔人人插 | 四虎在线永久免费观看 | 亚洲免费成人 | 国产精品3 | 人人草网站 | 日韩精品观看 | 日韩黄色软件 | 婷婷精品在线 | 国产午夜精品免费一区二区三区视频 | 国产高清在线免费观看 | av大全在线| 亚洲精品videossex少妇 | av免费在线网站 | 中文字幕一区二区三区在线视频 | 午夜视频在线观看网站 | 国产在线欧美日韩 | 91福利视频在线 | 国产精品久久久视频 | 国产一级精品在线观看 | 中文字幕高清 | 亚洲电影黄色 | av激情五月 | 欧美在线不卡一区 | 欧美日韩国产色综合一二三四 | 高清久久久久久 | 国产玖玖在线 | 国产精品嫩草影视久久久 | 天天色中文 | a在线观看免费视频 | 国产精品伦一区二区三区视频 | 成人蜜桃视频 | 4p变态网欧美系列 | 久久免费视频在线 | 2019中文| 成人欧美一区二区三区黑人麻豆 | 精品一区久久 | 亚洲国产电影在线观看 | 玖玖999| av网站播放 | 欧美精品v国产精品 | 国产999视频| 免费男女羞羞的视频网站中文字幕 | japanesefreesexvideo高潮 | 波多野结衣在线观看一区二区三区 | 国产偷国产偷亚洲清高 | av一二三区 | 国产成人在线看 | 1024久久 | 日韩在线中文字幕视频 | 91精品国产乱码在线观看 | 99视频在线观看免费 | 激情综合网五月婷婷 | 中文字幕在线观看1 | 麻豆国产电影 | 福利一区二区三区四区 | 九九热精品视频在线观看 | 精品国产乱码久久久久久1区二区 | av网站免费线看精品 | 99视频一区 | 婷婷伊人网 | 中文字幕一区二区三区久久蜜桃 | 国产精品久久久久av免费 | 亚洲精品免费在线视频 | 一区二区三区不卡在线 | 五月天激情综合 | 国产免费叼嘿网站免费 | 国产午夜麻豆影院在线观看 | 国产色拍拍拍拍在线精品 | 亚洲片在线观看 | 欧美日韩国产精品一区 | 91免费日韩 | 欧美激情精品久久久久久变态 | 99色国产 | 色播五月婷婷 | 久久国产精品99久久久久 | 国产精品一区二区久久久 | 99精品福利 | 中文字幕欧美日韩va免费视频 | 欧美精品中文在线免费观看 | 亚洲国产精品视频在线观看 | 日本中文字幕在线播放 | 97小视频 | 91成人精品 | 亚洲综合欧美日韩狠狠色 | 一区二区三区四区五区在线 | 国产精品一码二码三码在线 | 日韩一区二区三免费高清在线观看 | 69xxxx欧美| 奇米影视四色8888 | 超碰97人人在线 | 91在线免费观看网站 | 日韩中文字幕免费看 | 自拍超碰在线 | 亚洲女欲精品久久久久久久18 | 国产精品女教师 | 国产高清在线永久 | 国产一级一级国产 | 天天综合网天天 | ,午夜性刺激免费看视频 | 国产视频日韩 | 麻豆视频国产 | 国产精品99蜜臀久久不卡二区 | 天天弄天天操 | 四虎小视频 | 国产成人香蕉 | 国产剧在线观看片 | av福利在线播放 | 日韩精品免费一区二区 | av网站免费看 | 天天av综合网 | 亚洲欧洲日韩在线观看 | 中文字幕成人av | 狠狠干成人 | 四虎在线免费观看视频 | 久久少妇免费视频 | 亚洲成人影音 | 99久久精品久久久久久清纯 | 超碰97免费在线 | 日韩在线观看网站 | 日韩视频欧美视频 | 色综合夜色一区 | 色.com| 色就是色综合 | 久久国产精品久久精品国产演员表 | 99re8这里有精品热视频免费 | 国产高清不卡 | 黄色的片子 | 999久久a精品合区久久久 | 中文字幕精品在线 | 日韩精品免费在线播放 | 91视频com | 亚洲精品av中文字幕在线在线 | 欧美视频一区二 | 亚洲一区二区三区四区在线视频 | 国产一区二区三区免费在线 | 国产精品久久久久aaaa九色 | 国产一区私人高清影院 | 免费看黄在线 | 日操干| 99精品视频免费观看视频 | 麻豆视频一区 | 久久精品久久久精品美女 | 日韩色一区二区三区 | 久久精品国产99国产 | 精品久久久久久久久久久久久久久久久久 | 成人久久久电影 | 韩国一区二区在线观看 | 麻豆视频国产精品 | 国产偷国产偷亚洲清高 | 久久福利国产 | 日韩成人免费观看 | 国产男女爽爽爽免费视频 | 久久色在线播放 | a黄色一级 | 美女视频黄是免费的 | 大片网站久久 | 日韩免费福利 | 欧美巨乳网 | 日韩和的一区二在线 | 深爱五月激情五月 | 午夜精品久久久久久久99婷婷 | 免费看十八岁美女 | 99精品视频观看 | 91av原创 | 国产精品日韩在线播放 | 91香蕉视频色版 | 欧美一区影院 | 444av| 日本黄色一级电影 | 久久亚洲精品电影 | 婷婷九九| 欧美精品久久人人躁人人爽 | 色一级片 | 久久婷婷国产色一区二区三区 | 波多野结衣资源 | 欧洲精品视频一区二区 | 丁香六月在线 | 亚洲综合国产精品 | 国产日韩视频在线 | 91亚洲在线| 日韩av不卡在线观看 | 天天综合日| 最新婷婷色 | 最近能播放的中文字幕 | 国产精品一区二区av影院萌芽 | 91视频在线自拍 | 99热精品国产一区二区在线观看 | 久久一二三四 | 亚洲国产av精品毛片鲁大师 | 久久久久久久久亚洲精品 | 在线观看亚洲国产精品 | 免费av视屏 | 久艹在线免费观看 | 在线观看免费黄视频 | 日韩精品中文字幕一区二区 | 久久精品www人人爽人人 | 欧美一区,二区 | 色是在线视频 | 在线观看91精品国产网站 | 丁香高清视频在线看看 | 免费能看的av | 午夜久草| 久久久久亚洲国产 | 久久国内精品视频 | 91自拍91| 91视频在线观看免费 | 韩国三级av在线 | av丝袜天堂 | 久久一区精品 | 日本三级不卡视频 | 免费一区在线 | www.综合网.com | 四虎在线视频免费观看 | www.夜夜骑.com | 天天天天色综合 | 中文字幕成人一区 | 在线免费中文字幕 | 九九在线国产视频 | av不卡中文 | 狠狠色丁香婷婷综合橹88 | 久草电影在线 | 婷婷亚洲五月色综合 | 国产伦理一区二区 | 中文字幕在线观看三区 | aav在线| 国产精品久久综合 | 欧美激情视频一二区 | 国产一区自拍视频 | av免费福利 | 亚洲精品av在线 | 热久在线 | 最近的中文字幕大全免费版 | 91网站在线视频 | 成人久久久精品国产乱码一区二区 | 精品日本视频 | 国产日产精品久久久久快鸭 | 99热官网 | 美女免费视频网站 | 欧美另类一二三四区 | 日韩不卡高清 | 日韩字幕 | 水蜜桃亚洲一二三四在线 | 久久福利剧场 | 精品美女在线视频 | 欧美激情精品久久 | 成人小视频在线观看免费 | 久久国产精品久久国产精品 | 亚洲在线资源 | 顶级欧美色妇4khd | 久草在线观看 | 久久狠狠婷婷 | 亚洲国产精品久久久久 | 免费亚洲视频在线观看 | 国产伦精品一区二区三区免费 | 欧美性另类 | 亚洲 成人 欧美 | 91人人爽久久涩噜噜噜 | 天天天天天天操 | 色婷婷久久| 天堂av在线免费观看 | 久久久久日本精品一区二区三区 | 在线观看黄色av | 日韩亚洲在线观看 | 日韩毛片在线免费观看 | 国产精品久久久久久久久久免费 | 国产一级二级在线观看 | 亚洲精品资源在线观看 | 欧美日韩不卡一区二区 | www.黄色片网站 | 欧美成年人在线视频 | 在线视频第一页 | 国产成人61精品免费看片 | 久久久久免费精品国产小说色大师 | 人人涩| 亚洲欧洲av在线 | 欧洲亚洲激情 | 亚洲人天堂 | 在线观看91网站 | 国产精品一区二区精品视频免费看 | 久久久精品电影 | 欧美视频网址 | 日韩电影在线观看一区 | 中文字幕免费观看 | 天天干天天做天天操 | 婷婷黄色片 | 国产麻豆剧果冻传媒视频播放量 | 四虎永久国产精品 | 欧美一二三区播放 | 视频二区在线视频 | 在线视频一二区 | 欧美日韩视频一区二区三区 | 国产精品毛片久久久 | 中文字幕网站 | 久久艹在线观看 | 亚州性色 | av天天色 | 亚洲精品高清在线 | 色播五月激情五月 | 成年人视频在线免费播放 | 成人午夜免费剧场 | 久久亚洲私人国产精品va | 又黄又爽的免费高潮视频 | 国产成人久久精品一区二区三区 | 欧洲精品久久久久毛片完整版 | 夜夜夜草 | 四虎成人av | 五月天丁香亚洲 | 伊人狠狠色丁香婷婷综合 | 中文字幕成人一区 | 亚洲国内精品 | 五月天久久综合 | 青青草久草在线 | 三级视频片 | 九九激情视频 | 激情综合一区 | 欧美日韩高清国产 | 欧美在线日韩在线 | 91av视频观看 | 日韩欧美一区二区三区免费观看 | av电影 一区二区 | 天天干,天天射,天天操,天天摸 | 国产一级片在线播放 | 免费中文字幕视频 | 精品在线观看一区二区 | 99在线观看视频网站 | 婷婷丁香六月 | 成人免费一区二区三区在线观看 | 成人四虎 | 日日爽天天 | 日韩美女免费线视频 | 最近免费观看的电影完整版 | 亚洲综合黄色 | 精品资源在线 | 亚洲精品视频在线观看免费视频 | 在线韩国电影免费观影完整版 | 日韩激情在线视频 | 韩国av一区二区三区在线观看 | 91亚瑟视频 | 日韩在线观看视频中文字幕 | 国产又粗又硬又长又爽的视频 | 丝袜美腿在线 | 精品国产一区二区三区四区在线观看 | 香蕉视频在线免费 | 草久在线观看 | 国产二区视频在线 | 韩国精品视频在线观看 | 亚洲第一区在线观看 | 97综合在线 | 中文字幕中文 | 成人啪啪18免费游戏链接 | 欧洲视频一区 | 国产黄色片久久久 | 日本公妇在线观看 | 免费成人在线视频网站 | 成人日批视频 | av中文电影 | 九九热精品视频在线观看 | 午夜黄色影院 | 久久夜色电影 | 国产亚洲精品久久久久久大师 | 久久免费国产视频 | 国产不卡精品 | 国产婷婷精品av在线 | 日韩电影在线看 | 亚洲国产最新 | 日韩av不卡在线观看 | 丁香花在线视频观看免费 | 国产精品小视频网站 | 久久少妇免费视频 | 国产私拍在线 | 在线影院 国内精品 | 久久99视频免费观看 | 色亚洲网 | 国产精品久久久久一区 | 黄色免费网站大全 | 国产精品视频在线看 | 午夜精品久久久久久久99无限制 | 欧美精品乱码久久久久久 | 日韩电影中文字幕 | 91大神dom调教在线观看 | 亚洲精品一区二区网址 | 精品国产区 | 日韩亚洲国产精品 | 国产精品美女久久久久久久久 | 国产成人高清 | 日韩av中文字幕在线免费观看 | 欧美一区免费在线观看 | 日日夜夜亚洲 | 久久国产精品99久久久久 | 日本精品久久久久中文字幕 | 日韩在线视频网址 | 国产精品一区久久久久 | 999抗病毒口服液 | 国产一区视频在线播放 | 男女激情片在线观看 | 久久字幕精品一区 | 精品毛片一区二区免费看 | 欧美激情第八页 | 国产福利一区二区三区视频 | 久久久久久蜜av免费网站 | 久久99精品波多结衣一区 | 成人小视频在线免费观看 | 日本黄色免费观看 | 国产明星视频三级a三级点| 国产丝袜一区二区三区 | 国产主播99| 中文字幕888 | 日韩乱色精品一区二区 | 亚洲国产成人在线观看 | 亚洲精品高清在线 | 成人97视频一区二区 | 欧美色图视频一区 | 九九九九热精品免费视频点播观看 | 国产免费高清视频 | 在线午夜电影神马影院 | 国产黄色片免费 | 在线观看色网 | 在线91播放 | 国产精品短视频 | 亚洲日本va午夜在线影院 | 久久精品国产免费看久久精品 | 能在线观看的日韩av | 成人九九视频 | 亚欧洲精品视频在线观看 | 天天射网 | 久久8精品 | 亚洲国产精品日韩 | 美女黄色网在线播放 | 亚洲日韩中文字幕 | 91精品国产自产老师啪 | 久久国产精品第一页 | 91尤物在线播放 | 女人高潮特级毛片 | 日本精品视频免费观看 | 天天爽天天摸 | 探花视频免费在线观看 | 国产91成人 | 日韩羞羞| 中文字幕精品三级久久久 | 免费在线观看亚洲视频 | 日韩电影久久久 | 超级av在线 | 国产视频日韩 | 久久99在线视频 | 国产午夜精品一区二区三区四区 | 青草视频网 | 欧美超碰在线 | 国产资源av| 久久久国产一区二区三区四区小说 | 高清av免费一区中文字幕 | 欧美激情va永久在线播放 | 国产xvideos免费视频播放 | av在线网站观看 | 在线免费av电影 | 一区二区三区免费在线播放 | 麻豆视频在线免费看 | 国产精品久久久久免费观看 | 99久久综合精品五月天 | 精品久久在线 | 国内精自线一二区永久 | 精品中文字幕在线 | 亚洲视频免费在线观看 | 91完整版观看| 国产黄在线免费观看 | 成人动漫一区二区三区 | 99热这里只有精品在线观看 | 99精品免费久久久久久久久日本 | 免费看亚洲毛片 | 激情综合狠狠 | 欧美在线视频一区二区 | 中文字幕一区二区三区在线视频 | 高清av在线免费观看 | 成年人在线免费看 | 国产一级在线观看 | 黄色av电影网 | 天天爽天天搞 | 97**国产露脸精品国产 | 青青河边草观看完整版高清 | 国产小视频你懂的 | 香蕉视频网址 | 亚洲精品欧美精品 | 国产一二区精品 | 伊人五月天婷婷 | 色综合久久久久久中文网 | 中文字幕在线视频一区 | 久久亚洲福利 | www..com黄色片| 日韩电影中文 | 狠狠躁夜夜躁人人爽超碰91 | 日韩毛片一区 | 免费69视频| 国产美女免费 | 亚洲 欧洲av | 久久久久在线观看 | 91九色老 | 国产福利av | 又黄又爽的视频在线观看网站 | 午夜电影中文字幕 | 久久福利国产 | 亚洲理论电影 | 国产免费高清视频 | 91日韩免费 | 免费观看91视频大全 | 国产精品丝袜在线 | 麻豆免费视频 | 中文字幕中文字幕在线中文字幕三区 | 免费毛片一区二区三区久久久 | 国产精品精品久久久 | 五月天中文在线 | 97在线视| 三日本三级少妇三级99 | 天堂在线视频中文网 | 国产高清不卡在线 | 黄色软件视频大全免费下载 | 国产精品免费视频久久久 | 五月天天色| 国内精品久久久久影院一蜜桃 | 久久特级毛片 | 成年人黄色免费看 | 麻豆91在线观看 | 中文字幕在线观看第一页 | 视频在线播放国产 | 亚洲va韩国va欧美va精四季 | 免费成人在线观看视频 | 在线成人短视频 | 欧美 国产 视频 | 亚洲精品久久久久中文字幕二区 | 日韩精品一区二区三区在线视频 | 色婷婷狠狠五月综合天色拍 | 国产视频日韩视频欧美视频 | 国产精品自产拍在线观看网站 | 天海冀一区二区三区 | 激情在线免费视频 | 欧美成人在线网站 | 国产精品美女久久久久久网站 | 一级淫片a | 亚洲精品视频在线观看免费视频 | 毛片美女网站 | 欧美天堂视频在线 | 亚洲激情小视频 | 日韩欧美网址 | 91精品国产高清自在线观看 | 有码一区二区三区 | 91久久国产露脸精品国产闺蜜 | 久久久久国产成人免费精品免费 | 天天夜夜操 | 美女久久| 2019免费中文字幕 | 国产精品九九九九九九 | 国产伦精品一区二区三区在线 | 三级黄色片在线观看 | 超碰在线人 | 免费日韩av片 | 国产黄色一级片在线 | 欧美一级欧美一级 | 欧美日韩免费网站 | 美女久久久久久久久久 | 精品欧美一区二区三区久久久 | 亚洲国产中文在线观看 | 久久久久久久久久久国产精品 | 伊人午夜 | 国产精品久久久久久一二三四五 | 国产97碰免费视频 | 欧美一级片在线播放 | 免费av在线 | 日本久久久影视 | 中午字幕在线观看 | 亚洲精品国产精品国自 | 91视频在线国产 | 日本成人a| 欧美成人猛片 | 亚洲国产一区二区精品专区 | 一级片免费视频 | 99久久精品免费看国产 | 精品伦理一区二区三区 | www.黄色在线| 成人免费观看在线视频 | 国产xxxx| 性色av一区二区三区在线观看 | 久久天天综合网 | 97超碰国产在线 | 天天操天天爽天天干 | 日p视频| 欧美日韩性视频在线 | 日韩精品久久久久久久电影竹菊 | av三级av | 色婷婷在线视频 | 久久免费在线观看 | 日韩一区二区三区免费视频 | 亚洲经典在线 | 丁香五月亚洲综合在线 | 日本中文字幕在线电影 | 色婷五月| 亚洲人成网站精品片在线观看 | 视频福利在线观看 | 中文字幕中文中文字幕 | 91女神的呻吟细腰翘臀美女 | 欧美日韩国产在线 | 国产精品原创av片国产免费 | 激情中文在线 | 天天干天天插 | 99视| av电影一区二区 | 天天干,夜夜爽 | 黄色三级免费看 | 色国产在线 | 亚洲精品国产拍在线 | 亚洲女人天堂成人av在线 | 欧美老人xxxx18 | 成人黄色在线观看视频 | 国产精品毛片久久 | 国内丰满少妇猛烈精品播 | av成人在线播放 | 国产美女在线免费观看 | 在线视频免费观看 | 国产精品 日韩 | 婷婷日日| 操操操操网 | 午夜.dj高清免费观看视频 | 亚洲精品中文字幕视频 | 免费福利在线视频 | 在线观看国产区 | 丁香婷婷激情网 | 九月婷婷色 | 欧美精品一区二区在线观看 | 五月天亚洲激情 | 久草在线视频网站 | 国产无套视频 | 日韩免费成人 | 天天天色综合 | 色是在线视频 | 久久avav | 精品美女久久久久 | 四虎国产精品成人免费4hu | 久艹在线免费观看 | 天天天干天天天操 | 17videosex性欧美 | 人人天天夜夜 | 久久久久这里只有精品 | 午夜私人影院 | 精品高清美女精品国产区 | 中文字幕一区av | 欧美久久久久久久久久久久久 | 久久精品视频在线免费观看 | 爱干视频| 99热九九这里只有精品10 | .国产精品成人自产拍在线观看6 | 国产视频2区 | 最新久久免费视频 | 日本精品二区 | 最近中文字幕高清字幕在线视频 | 亚洲第一中文网 | 久久国产精品一区二区 | 日韩99热| 中文字幕影片免费在线观看 | 中文字幕视频在线播放 | 青青河边草观看完整版高清 | 欧美国产在线看 | 99色免费| 国产不卡在线播放 | 欧美日韩激情视频8区 | 亚洲一区尤物 | 天天操天天弄 | 又色又爽又黄 | 国产精品视频你懂的 | 在线播放亚洲 | 国产又粗又硬又长又爽的视频 | 国产视频黄| 欧美成人h版电影 | 色狠狠一区二区 | 国产日本在线播放 | 国产精品日韩在线 | 亚洲欧美激情精品一区二区 | 午夜国产一区二区 | 国产精品一区在线观看 | 蜜桃麻豆www久久囤产精品 | 中文字幕一区二区在线播放 | 99久久超碰中文字幕伊人 | 久久兔费看a级 | 成人9ⅰ免费影视网站 | 成年人国产在线观看 | 精品中文字幕在线观看 | 国产精品一区二区免费看 | 91在线免费视频 | 日韩美一区二区三区 | 91福利区一区二区三区 | 亚洲精品美女免费 | 一区二区三区在线观看中文字幕 | 日韩区视频 | 国产黄a三级三级三级三级三级 | 激情动态 | 国产精品一区二区三区在线 | 久久久久国产一区二区三区四区 | 国产精品久久久久影院 | av片在线观看 | 亚洲91在线| 在线观看午夜av | 91资源在线观看 | 99九九免费视频 | 国产精品电影一区二区 | 欧美91av| 五月天国产 | 伊人中文字幕在线 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲专区视频在线观看 | 国产一线二线三线性视频 | 怡红院久久 | 黄色免费网战 | 在线超碰av | 中日韩免费视频 | 日韩欧美精品在线视频 | 91桃色在线免费观看 | 亚洲一区精品人人爽人人躁 | 久久久99久久 | 色综合久久88色综合天天人守婷 | 麻豆国产露脸在线观看 | 人人玩人人添人人澡97 | 99精品国产视频 | 久久99久久99精品免观看粉嫩 | free. 性欧美.com | 色婷婷亚洲精品 | 欧美日一级片 | 精品国产一区二区三区日日嗨 | 最近的中文字幕大全免费版 | 日韩特黄一级欧美毛片特黄 | 亚洲国产一区二区精品专区 | 久久九九精品 | 五月丁色| 日韩大片在线免费观看 | 久久狠狠一本精品综合网 | 日日夜夜天天 | 免费毛片一区二区三区久久久 | 国产高清第一页 | 成人黄在线 | 一区二区三区不卡在线 | 国产午夜精品久久久久久久久久 | 日日碰夜夜爽 | 色黄www小说 | 色停停五月天 | 四虎www.| 亚洲免费观看视频 | 久久一区二区三区超碰国产精品 | 久久av一区二区三区亚洲 | 欧美日韩高清在线一区 | 日韩视频一区二区在线观看 | 亚欧日韩av | 亚洲精品网址在线观看 | 国产精品99久久久久久人免费 | 精品一二区 | 国产精品成人免费一区久久羞羞 | 91重口视频 | 91av小视频 | 黄污在线看 | 精品日韩在线 | 日本高清免费中文字幕 | 久久av影视 | 成 人 黄 色 视频免费播放 | 国产一区二区三精品久久久无广告 | 成人一区影院 | 久久视频免费在线 | 久久噜噜少妇网站 | 99热精品免费观看 | av九九九 | 国产精品麻豆视频 | 中文国产在线观看 | 日韩欧美一区二区三区视频 | 99在线热播精品免费 | 国产人成看黄久久久久久久久 | 日韩免费在线一区 | 中文字幕在线视频网站 | 国产精品久久99精品毛片三a | 成人黄大片视频在线观看 | 麻豆激情电影 | 三级黄色大片在线观看 | 成人av影院在线观看 | 日日干综合 | av资源免费观看 | 99久久婷婷国产综合精品 | 激情五月婷婷综合 | 99视频在线播放 | 国产成人精品久久亚洲高清不卡 | 人人干人人添 |