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

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

?? task_8c.html

?? yavrtos,一款用于廣泛用于AVR單片機的RTOS,文件里是這款OS的源碼
?? HTML
?? 第 1 頁 / 共 3 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>YAVRTOS: task.c File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.4 --><div class="tabs">  <ul>    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>    <li><a href="modules.html"><span>Modules</span></a></li>    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>    <li class="current"><a href="files.html"><span>Files</span></a></li>    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>  </ul></div><h1>task.c File Reference</h1><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#7a659118f2c006c2570742f06614eace">semaphore_triggered</a>(current, required)&nbsp;&nbsp;&nbsp;((current) - (required) &gt;= 0)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Has a semaphore been triggered?  <a href="#7a659118f2c006c2570742f06614eace"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#g434ebb7bd09016853228960c1c91fe22">TASK_STATE_STARTING</a>&nbsp;&nbsp;&nbsp;1</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Starting.  <a href="group__taskstategroup.html#g434ebb7bd09016853228960c1c91fe22"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#gf986aeb5acf04c1377115c3c58d6066d">TASK_STATE_RUNNING</a>&nbsp;&nbsp;&nbsp;2</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Running.  <a href="group__taskstategroup.html#gf986aeb5acf04c1377115c3c58d6066d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#g99d0b31c3a0e5525ffff0334a9cf48f5">TASK_STATE_WAITING_TO_STOP</a>&nbsp;&nbsp;&nbsp;3</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Waiting for the task to release all of its mutexes before stopping.  <a href="group__taskstategroup.html#g99d0b31c3a0e5525ffff0334a9cf48f5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#g3a4b299f206860e7484eba9176fef9be">TASK_STATE_STOPPING</a>&nbsp;&nbsp;&nbsp;4</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stopping.  <a href="group__taskstategroup.html#g3a4b299f206860e7484eba9176fef9be"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#g6b6ae39d5fc55cb15af274fdb8f77466">TASK_STATE_CLEANING_UP</a>&nbsp;&nbsp;&nbsp;5</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cleaning up.  <a href="group__taskstategroup.html#g6b6ae39d5fc55cb15af274fdb8f77466"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__taskstategroup.html#g73fed596e3e9e61b17ada47b4e476bcc">TASK_STATE_STOPPED</a>&nbsp;&nbsp;&nbsp;6</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stopped.  <a href="group__taskstategroup.html#g73fed596e3e9e61b17ada47b4e476bcc"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#ec2cb6acfd1cbdf565d79d8e46366142">set_task_state</a>(taskptr, req_state)&nbsp;&nbsp;&nbsp;(taskptr)-&gt;status = (req_state)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Set the state of a task - this macro makes it easier to put other information into task.status </p> <a href="#ec2cb6acfd1cbdf565d79d8e46366142"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#73254a06adc660dd59b1770c9b9f3520">get_task_state</a>(taskptr)&nbsp;&nbsp;&nbsp;((taskptr)-&gt;status)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Get the state of a task - this macro makes it easier to put other information into task.status </p> <a href="#73254a06adc660dd59b1770c9b9f3520"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#95d8d92f8a304e063ce50c912412181c">executing_isr</a>()&nbsp;&nbsp;&nbsp;(system.interrupted_task)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Are we currently executing an ISR? </p> <a href="#95d8d92f8a304e063ce50c912412181c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#87b5d6c508a0039ac89b09c3c71f6717">rtos_started</a>()&nbsp;&nbsp;&nbsp;(<a class="el" href="group__task.html#g4743b3673a8794b8e7bd0b6c91a63cd5">current_task</a>)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Has the RTOS been started? </p> <a href="#87b5d6c508a0039ac89b09c3c71f6717"></a><br></td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#c85c4cc0394680fc16ce32fcc987e62e">task_starter</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>The entry point for all tasks </p> <a href="#c85c4cc0394680fc16ce32fcc987e62e"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#b1c4cc247bd379e340e25bd86911919d">task_stopper</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>The entry point for all tasks that are stopping </p> <a href="#b1c4cc247bd379e340e25bd86911919d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#ge1337adc1d63d7cd874a376d6513c04a">stop_task</a> (<a class="el" href="structtask__t.html">task_t</a> *t, uint8_t wait_for_mutexes)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop a task.  <a href="group__task.html#ge1337adc1d63d7cd874a376d6513c04a"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtask__t.html">task_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g934155282a1d689b554e90b5138e5135">reserve_task</a> (uint16_t stacklen, uint8_t pri, <a class="el" href="structmutex__t.html">mutex_t</a> *memory_mutex)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tasks are kept in a linked list in memory - this function reserves an "empty" task on that list, ready to be subsequently utilised by a call to <a class="el" href="group__task.html#g9b849c9a0e0b29417cf47da99226dcc3" title="Create a task, ready to be run.">create_task()</a>.  <a href="group__task.html#g934155282a1d689b554e90b5138e5135"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtask__t.html">task_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g9b849c9a0e0b29417cf47da99226dcc3">create_task</a> (void(*proc)(void *), void(*cleanup)(), void *init_data, uint16_t stacklen, uint8_t pri, <a class="el" href="structmutex__t.html">mutex_t</a> *memory_mutex)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a task, ready to be run.  <a href="group__task.html#g9b849c9a0e0b29417cf47da99226dcc3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mutex.html#gdff77e0b451c30c07d2990e669f937c5">lock_on</a> (<a class="el" href="structmutex__t.html">mutex_t</a> *m)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock on a mutex.  <a href="group__mutex.html#gdff77e0b451c30c07d2990e669f937c5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mutex.html#g327f419711064b7407f6f47011221cc4">lock_off</a> (<a class="el" href="structmutex__t.html">mutex_t</a> *m)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unlock a mutex.  <a href="group__mutex.html#g327f419711064b7407f6f47011221cc4"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__semaphore.html#g3c18e0f867a2f36f1510aebf5ad4c0e2">get_semaphore_value</a> (<a class="el" href="structsemaphore__t.html">semaphore_t</a> *s)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current value of a semaphore.  <a href="group__semaphore.html#g3c18e0f867a2f36f1510aebf5ad4c0e2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__semaphore.html#g45243d3de7a253445deeb57ee4c8cc96">wait_for_min_value</a> (<a class="el" href="structsemaphore__t.html">semaphore_t</a> *p, int16_t value)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a semaphore to reach at least a particular value.  <a href="group__semaphore.html#g45243d3de7a253445deeb57ee4c8cc96"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__semaphore.html#g291edcd883e2d0bc17f85419e21069ff">wait_for_increment_of</a> (<a class="el" href="structsemaphore__t.html">semaphore_t</a> *p, uint16_t amount)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a semaphore to increment its value by a certain amount.  <a href="group__semaphore.html#g291edcd883e2d0bc17f85419e21069ff"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#aa4ee75536398ba2bd21466b13bdcd57">switch_task</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Perform a task switch </p> <a href="#aa4ee75536398ba2bd21466b13bdcd57"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__semaphore.html#g3cd218588dccb32b5b9072c7a75fb008">increment_semaphore_by</a> (<a class="el" href="structsemaphore__t.html">semaphore_t</a> *s, uint16_t amount)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increment the value of a semaphore by the given amount.  <a href="group__semaphore.html#g3cd218588dccb32b5b9072c7a75fb008"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#g9b7e62ecd1a61eda8cfa1229df0728ef">get_current_mbox_version</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the current version of a mailbox.  <a href="group__mailbox.html#g9b7e62ecd1a61eda8cfa1229df0728ef"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#g86030bb5345670ca374ddd20ef8e4ff6">read_mbox</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m, int16_t *version)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a mailbox.  <a href="group__mailbox.html#g86030bb5345670ca374ddd20ef8e4ff6"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#g5dbb6937f6f93f6a1c14dec5b1c197c3">read_mbox_min_version</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m, int16_t *version)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a mailbox to reach at least a certain version, and then start reading from it.  <a href="group__mailbox.html#g5dbb6937f6f93f6a1c14dec5b1c197c3"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structmailbox__t.html">mailbox_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#g31b8ee5f4cd547c128143d99ea1c4a96">release_mbox_read</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function to call when finished reading from a mailbox.  <a href="group__mailbox.html#g31b8ee5f4cd547c128143d99ea1c4a96"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#gd4cde27abfbedc7c8e854e76d71612dd">initialise_mbox</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m, void *data, const int16_t version)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialise a mailbox - this <b>must</b> be called on every mailbox before it is used.  <a href="group__mailbox.html#gd4cde27abfbedc7c8e854e76d71612dd"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#9963b4ea6e571f04447db7fa4a826d81">mbox_is_empty</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find out if a mailbox is "empty" (i.e. if there is no-one waiting to read it).  <a href="#9963b4ea6e571f04447db7fa4a826d81"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#gc75646248d03b1413198765b07ba54ad">write_mbox</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m, void *data, uint8_t wait_for_receivers, uint8_t wait_for_empty_nullify)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write to a mailbox.  <a href="group__mailbox.html#gc75646248d03b1413198765b07ba54ad"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#g87f02ab5b46654ae26b06851b2390132">write_mbox_now</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m, void *data)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attempt to write to a mailbox.  <a href="group__mailbox.html#g87f02ab5b46654ae26b06851b2390132"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mailbox.html#gf670250659f0942849aa85f0f94af9f0">wait_for_receiver</a> (<a class="el" href="structmailbox__t.html">mailbox_t</a> *m)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for a task to be suspended while trying to read from a mailbox.  <a href="group__mailbox.html#gf670250659f0942849aa85f0f94af9f0"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">interrupt_store_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g6984a5336b36a4ca99682a2cf5ae044f">disable_interrupts</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Disable interrupts system-wide.  <a href="group__task.html#g6984a5336b36a4ca99682a2cf5ae044f"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#gecf8a8e43c2afae89e46503ff1c887bf">restore_interrupts</a> (interrupt_store_t interrupts)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Restore the state of the system-wide interrupts.  <a href="group__task.html#gecf8a8e43c2afae89e46503ff1c887bf"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g1a2a5bbefa85516b8c1d0e0361a834db">yield</a> ()</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Stop executing the current task and try and execute a higher-priority task or another task of the same priority.  <a href="group__task.html#g1a2a5bbefa85516b8c1d0e0361a834db"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g1398c4d9f97349ea3fa7d91349298521">task_switcher_start</a> (void(*idle)(void *), void *idle_data, uint16_t idle_stacklen, uint16_t system_stacklen)</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start the whole process running.  <a href="group__task.html#g1398c4d9f97349ea3fa7d91349298521"></a><br></td></tr><tr><td colspan="2"><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtask__t.html">task_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="task_8c.html#032a246385c40a7254d11dd557140401">first_task</a> = 0</td></tr><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p><b>For internal use only.</b></p><p>Pointer to the first task in our linked list </p> <a href="#032a246385c40a7254d11dd557140401"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtask__t.html">task_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g4743b3673a8794b8e7bd0b6c91a63cd5">current_task</a> = 0</td></tr>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频视频一区| 成人免费的视频| 成人一区二区三区中文字幕| 91久久精品一区二区| 久久久久综合网| 日韩电影在线观看电影| 成年人国产精品| 国产视频在线观看一区二区三区 | 亚洲国产成人av| 成人午夜免费av| 日韩三级精品电影久久久 | 欧美日韩激情一区| 亚洲欧洲精品一区二区三区不卡| 久久99精品久久久久婷婷| 欧美性猛交xxxxxx富婆| 中文字幕一区二区三区蜜月 | 成人午夜碰碰视频| 欧美精品一区二区蜜臀亚洲| 天堂久久一区二区三区| 日本国产一区二区| 亚洲精品中文在线观看| 99视频精品免费视频| 日本一区二区三区免费乱视频 | 色狠狠综合天天综合综合| 久久久国产午夜精品| 激情欧美日韩一区二区| 欧美成人a视频| 蜜臀久久99精品久久久久久9| 91麻豆精品国产无毒不卡在线观看 | 成人精品在线视频观看| 国产欧美日韩精品一区| 国产91精品在线观看| 国产亚洲综合av| 国产成人在线免费| 国产视频一区二区在线| 波多野结衣中文字幕一区 | 成人欧美一区二区三区1314| 99国内精品久久| 亚洲免费观看在线视频| 在线免费视频一区二区| 午夜亚洲福利老司机| 欧美一级高清片| 久久国产三级精品| 国产日韩欧美制服另类| bt欧美亚洲午夜电影天堂| 最近中文字幕一区二区三区| 日本电影欧美片| 亚洲自拍偷拍麻豆| 欧美一级日韩不卡播放免费| 国产一区二区美女| 中文av一区特黄| 91九色最新地址| 蜜桃av噜噜一区二区三区小说| 日韩欧美精品在线| 成人综合日日夜夜| 夜夜操天天操亚洲| 日韩精品中午字幕| 成人在线视频首页| 午夜久久久影院| 久久久久久夜精品精品免费| 91亚洲精华国产精华精华液| 亚洲一区二区高清| 欧美精品一区二区蜜臀亚洲| 91亚洲精品久久久蜜桃网站| 免费人成网站在线观看欧美高清| 国产日韩精品一区二区三区在线| 91福利社在线观看| 激情深爱一区二区| 亚洲激情综合网| www成人在线观看| 91丨国产丨九色丨pron| 精品亚洲成a人| 亚洲国产综合人成综合网站| 欧美r级在线观看| 91福利视频久久久久| 国产精品一区二区在线观看不卡| 亚洲精品日韩综合观看成人91| 91精品国产高清一区二区三区| 成人免费观看av| 青青草国产精品亚洲专区无| 亚洲精品国产a久久久久久| 精品国产凹凸成av人导航| 色偷偷久久人人79超碰人人澡| 久久99国产精品成人| 亚洲一区免费观看| 中文字幕亚洲精品在线观看| 日韩欧美国产小视频| 欧美视频中文字幕| 91免费观看视频在线| 国产一区二区三区精品视频 | 亚洲国产精品久久人人爱蜜臀| 国产人伦精品一区二区| 欧美一区2区视频在线观看| 欧洲一区在线观看| 不卡欧美aaaaa| 国产成人鲁色资源国产91色综| 天堂va蜜桃一区二区三区| 一区二区在线看| 中文字幕一区二区视频| 中文字幕不卡在线| 国产欧美精品在线观看| 精品国产在天天线2019| 欧美一级久久久久久久大片| 欧美体内she精高潮| 在线观看免费视频综合| 在线观看国产日韩| 欧亚洲嫩模精品一区三区| 色综合久久88色综合天天| 成人高清免费观看| 99视频超级精品| 91蝌蚪porny九色| 色狠狠一区二区三区香蕉| 色爱区综合激月婷婷| 欧洲在线/亚洲| 欧美精品日韩精品| 欧美一区二区在线免费观看| 日韩欧美美女一区二区三区| 精品国产免费视频| 久久久久亚洲蜜桃| 中文字幕制服丝袜一区二区三区| 亚洲欧洲色图综合| 一区二区三区中文在线观看| 亚洲一区二区在线免费看| 午夜欧美大尺度福利影院在线看| 日韩精品一二区| 韩国精品久久久| 国产资源精品在线观看| 国产91精品精华液一区二区三区| 国产99久久久精品| 一本到不卡免费一区二区| 在线一区二区视频| 欧美一区二区大片| 久久婷婷成人综合色| 国产精品免费aⅴ片在线观看| 亚洲天堂精品在线观看| 亚洲成av人片在线| 九九在线精品视频| 大白屁股一区二区视频| 欧美亚洲日本一区| 欧美一区二区三区影视| 国产农村妇女精品| 亚洲亚洲人成综合网络| 美脚の诱脚舐め脚责91| 成人激情校园春色| 欧美日韩国产高清一区二区三区| 精品乱人伦小说| 欧美日韩精品系列| 香蕉影视欧美成人| 一区二区三区在线视频观看58| 亚洲va天堂va国产va久| 国产精品一卡二卡| 色中色一区二区| 日韩精品一区二区三区四区| 国产精品欧美久久久久一区二区| 亚洲一区二区三区四区在线观看| 久久9热精品视频| 91视频国产资源| 欧美不卡一二三| 一区二区在线观看免费视频播放| 久久电影网站中文字幕| 99久久精品国产毛片| 精品国产污网站| 亚洲男人天堂av网| 国产一区二区三区国产| 精品视频123区在线观看| 亚洲国产电影在线观看| 日本欧洲一区二区| 欧美性做爰猛烈叫床潮| 国产精品午夜在线观看| 美脚の诱脚舐め脚责91| 91久久线看在观草草青青| 国产喷白浆一区二区三区| 蜜臀精品一区二区三区在线观看 | 精品久久久久久最新网址| 亚洲少妇30p| 国产成人综合自拍| 日韩三级伦理片妻子的秘密按摩| 亚洲美女偷拍久久| 成人黄色777网| 国产亚洲一区字幕| 国产伦精品一区二区三区免费迷 | 婷婷综合五月天| 一本色道久久综合亚洲aⅴ蜜桃 | 色婷婷精品久久二区二区蜜臂av| 国产亚洲精品aa午夜观看| 蜜臀a∨国产成人精品| 欧美日韩国产不卡| 亚洲一区二区三区三| 在线影院国内精品| 一区二区三区波多野结衣在线观看| 成人高清视频在线| 中文字幕一区二区三区在线观看| 国产一区二区精品在线观看| 精品国产99国产精品| 国精品**一区二区三区在线蜜桃| 欧美成人vps| 精品一二线国产| 国产偷国产偷精品高清尤物| 国产专区综合网| 久久久国产精品午夜一区ai换脸|