亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stack.inc

?? Menuet 操作系統源代碼。 非常難得的東西
?? INC
?? 第 1 頁 / 共 3 頁
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                                 ;;
;;  STACK.INC                                                      ;;
;;                                                                 ;;
;;  TCP/IP stack for Menuet OS                                     ;;
;;                                                                 ;;
;;  Version 0.3  8th November 2002                                 ;;
;;                                                                 ;;
;;  Copyright 2002 Mike Hibbett, mikeh@oceanfree.net               ;;
;;                                                                 ;;
;;  See file COPYING for details                                   ;;
;;                                                                 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
   
;*******************************************************************
;   Interface
;      The interfaces defined in ETHERNET.INC & SLIP.INC plus:
;      stack_init
;      stack_handler
;      app_stack_handler
;      app_socket_handler
;      checksum
;
;*******************************************************************
   
   
   
;
;   IP Packet after reception - Normal IP packet format
;
;    0                   1                   2                   3
;    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
;
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;0  |Version|  IHL  |Type of Service|       Total Length            |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;4  |         Identification        |Flags|      Fragment Offset    |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;8  |  Time to Live |    Protocol   |         Header Checksum       |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;12 |                       Source Address                          |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;16 |                    Destination Address                        |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |      Data                                                     |
;   +-+-+-..........                                               -+
   
  
;   TCP Payload ( Data field in IP datagram )
;
;    0                   1                   2                   3   
;    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;20 |          Source Port          |       Destination Port        |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;24 |                        Sequence Number                        |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;28 |                    Acknowledgment Number                      |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;32 |  Data |           |U|A|P|R|S|F|                               |
;   | Offset| Reserved  |R|C|S|S|Y|I|            Window             |
;   |       |           |G|K|H|T|N|N|                               |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;36 |           Checksum            |         Urgent Pointer        |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;40 |                    Options                    |    Padding    |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |                             data                              
   
   
;
;   UDP Payload ( Data field in IP datagram )
;
;    0                   1                   2                   3
;    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
;
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |       Source Port             |      Destination Port         |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   | Length ( UDP Header + Data )  |           Checksum            |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |       UDP Data                                                |
;   +-+-+-..........                                               -+
;

   
;
;  Socket Descriptor + Buffer
;
;    0                   1                   2                   3
;    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
;
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |                    Status ( of this buffer )                  |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |  Application Process ID                                       |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |                  Local IP Address                             |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   | Local IP Port                 | Unused ( set to 0 )           |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   |                  Remote IP Address                            |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
;   | Remote IP Port                | Unused ( set to 0 )           |
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 24|   Rx Data Count                                   INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 28|                 TCB STATE                         INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 32|   TCB Timer (seconds)                             INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 36| ISS (Inital Sequence # used by this connection )   INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 40| IRS ( Inital Receive Sequence # )                  INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 44| SND.UNA  Seq # of unack'ed sent packets            INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 48| SND.NXT  Next send seq # to use                    INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 52| SND.WND  Send window                               INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 56| RCV.NXT  Next expected receive sequence #          INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 60| RCV.WND  Receive window                            INET format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 64| SEG.LEN  Segment length                           INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 68| SEG.WND  Segment window                           INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 72| Retransmit queue #                                INTEL format|
;   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
; 76|       RX Data                                                 |
;   +-+-+-..........                                               -+
   
   
   
; These define which type of TCP/IP network drivers are present.
; Disable any not required, to save kernel space
; Currently, only SLIP can be disabled
TRUE              equ      1
FALSE             equ      0
SLIP_PRESENT      equ      TRUE
  
   
; IP protocol numbers
PROTOCOL_ICMP     equ      1
PROTOCOL_TCP      equ      6
PROTOCOL_UDP      equ      17
   
   
; TIPBUFF status values
BUFF_EMPTY         equ     0
BUFF_RX_FULL       equ     1
BUFF_ALLOCATED     equ     2
BUFF_TX_FULL       equ     3
   
NUM_IPBUFFERS      equ     20    ; buffers allocated for TX/RX
   
SOCK_EMPTY         equ     0        ; socket not in use
SOCK_OPEN          equ     1        ; open issued, but no data sent

; TCP opening modes
SOCKET_PASSIVE     equ     0
SOCKET_ACTIVE      equ     1
   
; TCP TCB states
TCB_LISTEN         equ        1
TCB_SYN_SENT       equ        2
TCB_SYN_RECEIVED   equ        3
TCB_ESTABLISHED    equ        4
TCB_FIN_WAIT_1     equ        5
TCB_FIN_WAIT_2     equ        6
TCB_CLOSE_WAIT     equ        7
TCB_CLOSING        equ        8
TCB_LAST_ACK       equ        9
TCB_TIME_WAIT      equ        10
TCB_CLOSED         equ        11
    
   
; socket buffers
SOCKETBUFFSIZE     equ        4096  ; state + config + buffer.
SOCKETHEADERSIZE   equ        76    ; thus 4096 - SOCKETHEADERSIZE bytes data
                               
NUM_SOCKETS        equ        20    ; Number of open sockets supported
   

NUMQUEUES          equ        4
EMPTY_QUEUE        equ        0
IPIN_QUEUE         equ        1
IPOUT_QUEUE        equ        2
NET1OUT_QUEUE      equ        3

NO_BUFFER          equ        0xFFFF            
IPBUFFSIZE         equ        1500                ; MTU of an ethernet packet
NUMQUEUEENTRIES    equ        NUM_IPBUFFERS

   
; These are the 0x40 function codes for application access to the stack
STACK_DRIVER_STATUS  equ   52
SOCKET_INTERFACE     equ   53

   
; 128KB allocated for the stack and network driver buffers and other
; data requirements
stack_data_start     equ   0x700000
stack_data_end       equ   0x71ffff
   
; 32 bit word   
stack_config         equ   stack_data_start      
; 32 bit word - IP Address in network format
stack_ip             equ   stack_data_start + 4                    
; 1 byte. 0 == inactive, 1 = active
slip_active          equ   stack_data_start + 8
; 1 byte. 0 == inactive, 1 = active
ethernet_active      equ   stack_data_start + 9
unused               equ   stack_data_start + 10
; dword. Buffer number, -1 if none
rx_buff_ptr          equ   stack_data_start + 12
; dword. Buffer number, -1 if none
tx_buff_ptr          equ   stack_data_start + 16
; byte.
slip_rx_state        equ   stack_data_start + 20
; byte
slip_tx_state        equ   stack_data_start + 21
; dword. Index into data
rx_data_ptr          equ   stack_data_start + 22
; dword. Index into data
tx_data_ptr          equ   stack_data_start + 26
; word. Count of bytes to send
tx_msg_len           equ   stack_data_start + 30
; Address of selected socket
sktAddr              equ   stack_data_start + 32
; Parameter to checksum routine - data ptr
checkAdd1            equ   stack_data_start + 36
; Parameter to checksum routine - 2nd data ptr
checkAdd2            equ   stack_data_start + 40
; Parameter to checksum routine - data size
checkSize1           equ   stack_data_start + 44
; Parameter to checksum routine - 2nd data size
checkSize2           equ   stack_data_start + 46
; result of checksum routine
checkResult          equ   stack_data_start + 48
   
; holds the TCP/UDP pseudo header. SA|DA|0|prot|UDP len|
pseudoHeader         equ   stack_data_start + 50
   
; receive and transmit IP buffer allocation
sockets              equ   stack_data_start + 62
Next_free2           equ   sockets + (SOCKETBUFFSIZE * NUM_SOCKETS)
; 1560 byte buffer for rx / tx ethernet packets
Ether_buffer         equ   Next_free2
Next_free3           equ   Ether_buffer + 1560
last_1sTick          equ   Next_free3
IPbuffs              equ   Next_free3 + 1
queues               equ   IPbuffs + ( NUM_IPBUFFERS * IPBUFFSIZE )
queueList            equ   queues + (2 * NUMQUEUES)
;                    equ   queueList + ( 2 * NUMQUEUEENTRIES )



  
;***************************************************************************
;   Function
;      stack_init
;
;   Description
;      Clear all allocated memory to zero. This ensures that
;       on startup, the stack is inactive, and consumes no resources
;       This is a kernel function, called prior to the OS main loop
;       in set_variables
;
;***************************************************************************
stack_init:
    xor     eax,eax
    mov     edi,stack_data_start
    mov     ecx,0x20000 / 4  ; Assume that we have 128KB of data
    cld
    rep     stosd
   
    mov     eax, 0xFFFFFFFF
    mov     [rx_buff_ptr], eax
    mov     [tx_buff_ptr], eax
   
    ; Put in some defaults : slip, 0x3f8, 4, ip=192.168.1.22
    ; Saves me entering them each boot up when debugging
    mov     eax, 0x03f80401
    mov     [stack_config], eax
    mov     eax, 0xa06100c0
    mov     [stack_ip], eax
   
    call    queueInit
   
    ; The following block sets up the 1s timer 
    mov     al,0x0   
    out     0x70,al
    in      al,0x71
    mov     [last_1sTick], al
      
    ret
   
   
   
;***************************************************************************
;   Function
;      stack_handler
;
;   Description
;       The kernel loop routine for the stack
;       This is a kernel function, called in the main loop
;
;***************************************************************************
stack_handler:

if SLIP_PRESENT = TRUE
    call    slip_driver
end if

    call    ethernet_driver
    call    ip_rx
    call    tcp_tx_handler
   
    ; Test for 1 second event, call 1s timer functions
    mov     al,0x0   ;second
    out     0x70,al
    in      al,0x71
    cmp     al, [last_1sTick]
    je      sh_exit
       
    mov     [last_1sTick], al
   
    call    arp_timer
   
sh_exit:   
    ret
   



;***************************************************************************
;   Function
;      is_localport_unused
;
;   Description
;         scans through all the active sockets , looking to see if the 
;      port number specified in bx is in use as a localport number.
;      This is useful when you want a to generate a unique local port
;      number.
;          On return, eax = 1 for free, 0 for in use 
;
;***************************************************************************
is_localport_unused:
    mov     al, bh
    mov     ah, bl
    mov     bx, ax
   
    mov     edx, SOCKETBUFFSIZE * NUM_SOCKETS
    mov     ecx, NUM_SOCKETS
    xor     eax,eax                  ; Assume the return value is 'in use'
    
ilu1:    
    sub     edx, SOCKETBUFFSIZE
    cmp     [edx + sockets + 12], bx
    loopnz  ilu1                  ; Return back if the socket is occupied
    
    jz      ilu_exit
    inc     eax                         ; return port not in use
    
ilu_exit:
    ret
   
   

;***************************************************************************
;   Function
;      get_free_socket
;
;   Description
;
;***************************************************************************
get_free_socket:
    push    ecx
    mov     eax, SOCKETBUFFSIZE * NUM_SOCKETS
    mov     ecx, NUM_SOCKETS
   
gfs1:
    sub     eax, SOCKETBUFFSIZE
    cmp     [eax + sockets], dword SOCK_EMPTY
    loopnz  gfs1                  ; Return back if the socket is occupied
    mov     eax, ecx
    pop     ecx
    jz      gfs_exit
    mov     eax, 0xFFFFFFFF
   
gfs_exit:
    ret
   
   
   
;***************************************************************************
;   Function
;      checksum
;
;   Description
;       checkAdd1,checkAdd2, checkSize1, checkSize2, checkResult
;       Dont break anything; Most registers are used by the caller
;       This code is derived from the 'C' source, cksum.c, in the book
;       Internetworking with TCP/IP Volume II by D.E. Comer
;
;***************************************************************************
checksum:
    pusha
   
    xor     edx, edx                  ; edx is the accumulative checksum
    xor     ebx, ebx
    mov     cx, [checkSize1]
    shr     cx, 1
    jz      cs1_1
   
    mov     eax, [checkAdd1]
   
cs1:
    mov     bh, [eax]
    mov     bl, [eax + 1]
   
    add     eax, 2
    add     edx, ebx
   
    loopw   cs1
   
cs1_1:
    and     word [checkSize1], 0x01
    jz      cs_test2
   
    mov     bh, [eax]
    xor     bl, bl
   
    add     edx, ebx
   
cs_test2:
    mov     cx, [checkSize2]
    cmp     cx, 0
    jz      cs_exit                     ; Finished if no 2nd buffer
   
    shr     cx, 1
    jz      cs2_1
       
    mov     eax, [checkAdd2]
   
cs2:
    mov     bh, [eax]
    mov     bl, [eax + 1]
   
    add     eax, 2
    add     edx, ebx
   
    loopw   cs2
   
cs2_1:
    and     word [checkSize2], 0x01
    jz      cs_exit
   
    mov     bh, [eax]
    xor     bl, bl   
   
    add     edx, ebx
   
cs_exit:
    mov     ebx, edx
   
    shr     ebx, 16
    and     edx, 0xffff
    add     edx, ebx
    mov     eax, edx
    shr     eax, 16
    add     edx, eax
    not     dx   
   
    mov     [checkResult], dx
    popa
    ret
   
   
   
   
;***************************************************************************
;   Function
;      app_stack_handler
;
;   Description
;       This is an application service, called by int 0x40 fn 52
;       It provides application access to the network interface layer
;
;***************************************************************************
app_stack_handler:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清中文字幕一区| 日韩三级视频在线看| 中文字幕二三区不卡| 国产激情一区二区三区| 欧美激情在线看| 97久久精品人人澡人人爽| 亚洲乱码国产乱码精品精可以看 | 国产揄拍国内精品对白| 欧美精品一区二区三区高清aⅴ| 国产麻豆精品视频| 国产精品久久久久久福利一牛影视| 色偷偷久久一区二区三区| 性感美女久久精品| 精品av综合导航| 99视频精品在线| 天天色综合天天| 久久亚洲综合色一区二区三区| 国产.欧美.日韩| 一级特黄大欧美久久久| 91精品国产色综合久久ai换脸 | 欧美日韩一区 二区 三区 久久精品| 亚洲国产精品人人做人人爽| 日韩精品在线一区二区| av一区二区三区| 首页国产欧美日韩丝袜| 日本一区二区三区国色天香| 在线观看av一区二区| 久久成人精品无人区| 亚洲欧美偷拍另类a∨色屁股| 777a∨成人精品桃花网| 不卡视频在线观看| 视频一区二区不卡| 国产精品进线69影院| 欧美日韩一区二区三区高清| 国产激情偷乱视频一区二区三区| 亚洲欧美日韩在线| 精品国产电影一区二区| 91九色02白丝porn| 日本一区二区综合亚洲| 国内精品在线播放| 亚洲天天做日日做天天谢日日欢| 欧美一区二区三区不卡| 色欧美日韩亚洲| 精品中文av资源站在线观看| 亚洲精品va在线观看| 久久久午夜精品理论片中文字幕| 91日韩一区二区三区| 精品一区二区三区免费视频| 亚洲色图在线视频| 久久久国产精品午夜一区ai换脸| 欧美色男人天堂| 成人动漫一区二区| 经典三级视频一区| 午夜精品一区在线观看| 最新国产成人在线观看| 久久婷婷国产综合精品青草| 91精品欧美一区二区三区综合在| 日本道免费精品一区二区三区| 国产精品一区二区三区乱码| 日本亚洲欧美天堂免费| 天天综合天天做天天综合| 亚洲品质自拍视频网站| 国产精品免费视频一区| 国产亚洲欧美日韩在线一区| 日韩一区二区三区在线观看| 欧美群妇大交群的观看方式| 日本久久电影网| 在线一区二区视频| 色先锋资源久久综合| 精品综合免费视频观看| 中文字幕亚洲成人| 中文字幕av不卡| 中文字幕欧美区| 国产视频一区不卡| 国产欧美一区二区精品秋霞影院| 久久噜噜亚洲综合| 久久免费看少妇高潮| 久久久久久久av麻豆果冻| 亚洲精品一区二区三区香蕉| 精品成人a区在线观看| 精品国产乱码久久久久久牛牛| 日韩免费看的电影| 国产亚洲婷婷免费| 国产女主播一区| 亚洲欧洲综合另类| 亚洲一级二级三级在线免费观看| 一区二区三区免费| 一区二区三区日韩精品视频| 亚洲123区在线观看| 午夜精品视频在线观看| 免费在线看成人av| 国产米奇在线777精品观看| 视频一区二区三区在线| 成人免费一区二区三区在线观看| 亚洲人成亚洲人成在线观看图片| 亚洲伊人伊色伊影伊综合网| 亚洲成年人影院| 欧美日韩在线电影| 正在播放一区二区| 久久久天堂av| 亚洲欧美一区二区三区久本道91| 亚洲一二三区视频在线观看| 全部av―极品视觉盛宴亚洲| 国产电影精品久久禁18| 色偷偷久久人人79超碰人人澡| 欧美性猛片aaaaaaa做受| 欧美一级精品大片| 国产蜜臀97一区二区三区 | 欧美影院一区二区| 欧美一级电影网站| 中文av字幕一区| 亚洲一区二区三区影院| 久久99国产精品久久| 成人h动漫精品一区二| 7777精品伊人久久久大香线蕉超级流畅 | 久草热8精品视频在线观看| 高清免费成人av| 欧美午夜精品一区二区蜜桃| 久久午夜国产精品| 一区二区三区精品在线观看| 久久激情五月激情| 在线观看国产91| 久久女同性恋中文字幕| 亚洲电影在线免费观看| 成人性生交大片免费看中文网站| 欧美精品xxxxbbbb| 日韩久久一区二区| 国产精品一区在线观看乱码| 欧美色手机在线观看| 国产日韩精品一区| 麻豆成人久久精品二区三区小说| av日韩在线网站| 久久蜜桃av一区二区天堂| 午夜久久久久久久久久一区二区| 成人免费看片app下载| 欧美电影免费观看高清完整版在| 一区二区成人在线| 91在线小视频| 欧美激情一区在线| 精品一区二区三区免费观看| 欧美日韩一区二区在线观看 | 久久99久久久久| 成人毛片在线观看| 亚洲精品一区在线观看| 亚洲国产精品久久久男人的天堂| 成人免费av网站| 精品国产乱码久久久久久夜甘婷婷 | 久久久久国产免费免费| 日韩电影一区二区三区| 欧美影视一区二区三区| 亚洲欧美一区二区久久| 99热99精品| 国产精品国产三级国产a| 国产精品 欧美精品| 欧美精品一区二区三区在线播放| 亚洲成人7777| 欧美日韩国产高清一区| 亚洲一二三四久久| 在线免费视频一区二区| 国产精品理伦片| 成人ar影院免费观看视频| 国产精品天美传媒| 成人自拍视频在线| 久久精品视频网| 国产福利一区在线| 国产欧美精品一区二区色综合| 国产乱人伦精品一区二区在线观看| 精品美女被调教视频大全网站| 免费的成人av| 亚洲精品一线二线三线无人区| 国产麻豆视频精品| 国产精品视频免费看| 91视频在线观看免费| 一区二区欧美在线观看| 欧美体内she精视频| 午夜天堂影视香蕉久久| 欧美一区二区性放荡片| 美女一区二区久久| 久久久久久久综合色一本| 国产传媒日韩欧美成人| 国产午夜亚洲精品不卡| 99免费精品视频| 亚洲午夜精品一区二区三区他趣| 69堂精品视频| 国产在线播放一区二区三区| 国产精品嫩草久久久久| 色嗨嗨av一区二区三区| 天天影视网天天综合色在线播放| 91精品国产丝袜白色高跟鞋| 国精产品一区一区三区mba桃花 | 国产精品2024| 国产精品私人影院| 欧美午夜精品电影| 麻豆免费精品视频| 欧美国产一区二区在线观看 | 日韩高清不卡一区二区| 久久女同性恋中文字幕| 国产精品欧美极品| 欧美日韩国产成人在线91| 久久91精品久久久久久秒播|