亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美日韩中文精品| 色八戒一区二区三区| 亚洲图片欧美色图| 亚洲精品亚洲人成人网| 亚洲三级在线观看| 亚洲成在人线在线播放| 五月天中文字幕一区二区| 午夜国产精品影院在线观看| 日韩精品电影在线| 精品一区二区日韩| 国产成人午夜精品影院观看视频| 国产成人精品一区二区三区四区| 国产高清一区日本| 色中色一区二区| 在线播放日韩导航| 久久婷婷综合激情| 国产精品不卡在线| 性做久久久久久免费观看欧美| 日韩高清在线观看| 高清不卡在线观看av| 在线观看亚洲a| 欧美不卡视频一区| 国产精品伦一区| 午夜精品在线看| 国产精品18久久久久久vr | 2023国产一二三区日本精品2022| 欧美国产精品一区| 亚洲va欧美va人人爽| 国产一区二区三区日韩| 色欧美日韩亚洲| 精品国产乱码久久久久久图片 | 91浏览器入口在线观看| 欧美精品xxxxbbbb| 国产精品入口麻豆原神| 亚洲超丰满肉感bbw| 成人永久看片免费视频天堂| 欧美日韩日日夜夜| 国产精品嫩草影院av蜜臀| 午夜精品久久久久久久久| 国产精品18久久久| 日韩午夜av电影| 亚洲另类春色校园小说| 国产麻豆成人传媒免费观看| 在线观看欧美日本| 中文av字幕一区| 琪琪久久久久日韩精品| 一本久久a久久免费精品不卡| 亚洲精品一区二区三区福利| 亚洲亚洲精品在线观看| 成人免费视频一区二区| 日韩一区二区影院| 午夜欧美电影在线观看| 91视频www| 国产精品免费视频观看| 国产精品原创巨作av| 精品国产乱码久久久久久免费 | 亚洲欧美在线aaa| 裸体歌舞表演一区二区| 欧美精品三级在线观看| 伊人色综合久久天天人手人婷| 国产精品18久久久久久vr| 精品不卡在线视频| 裸体一区二区三区| 日韩三级视频在线看| 亚洲一区二区美女| 欧美色图一区二区三区| 一区二区三区四区激情| 色综合天天天天做夜夜夜夜做| 欧美国产日本视频| 国产成人午夜精品5599| 中日韩av电影| 97se亚洲国产综合在线| 成人免费在线观看入口| 成人黄色777网| 成人免费在线播放视频| 99久久精品国产导航| 中文字幕在线观看不卡| 99久久久精品| 亚洲国产精品一区二区久久| 9191久久久久久久久久久| 日本不卡中文字幕| 日韩欧美一区中文| 黄色日韩三级电影| 国产欧美日韩在线| 97久久人人超碰| 亚洲一级二级在线| 日韩亚洲欧美综合| 风流少妇一区二区| 亚洲免费在线观看| 欧美精品一二三| 久久不见久久见免费视频1| 国产网站一区二区| 色综合久久综合网欧美综合网| 亚洲第一成年网| 久久免费视频一区| 91在线小视频| 日韩高清不卡一区二区| 久久久91精品国产一区二区精品| 91在线丨porny丨国产| 亚洲国产一区二区视频| 欧美videos大乳护士334| 粉嫩av一区二区三区| 亚洲制服欧美中文字幕中文字幕| 911精品产国品一二三产区| 国产成人精品一区二| 亚洲一区二区三区爽爽爽爽爽| 欧美成va人片在线观看| 日本道在线观看一区二区| 免费人成在线不卡| 亚洲人快播电影网| 精品免费国产一区二区三区四区| av电影一区二区| 日韩精品一级二级| 中文在线资源观看网站视频免费不卡 | 国产女人18水真多18精品一级做| 色噜噜狠狠色综合中国| 精品一区二区三区日韩| 亚洲电影一区二区| 国产精品乱人伦中文| 日韩女优电影在线观看| 欧美综合在线视频| a4yy欧美一区二区三区| 国产一区二区毛片| 性久久久久久久久久久久| 日韩一区中文字幕| 久久久久久电影| 欧美va在线播放| 欧美精品1区2区3区| 色综合天天综合狠狠| 国产成a人亚洲| 狠狠色丁香婷婷综合久久片| 三级亚洲高清视频| 亚洲综合激情网| 中文字幕在线一区免费| 久久精品免视看| 欧美精品一区二区三区高清aⅴ| 欧美日韩一区二区三区免费看| av中文一区二区三区| 国产精品99久久久| 国产精品中文字幕日韩精品| 麻豆视频一区二区| 日本最新不卡在线| 美国毛片一区二区| 免费在线一区观看| 日本vs亚洲vs韩国一区三区| 亚洲成人你懂的| 亚洲成年人网站在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 精品免费国产一区二区三区四区| 欧美精品乱码久久久久久按摩 | 在线欧美小视频| 色综合久久久久综合体桃花网| 91在线国产观看| 色婷婷精品大视频在线蜜桃视频| 99久久国产免费看| 欧美在线观看视频在线| 欧美日韩三级在线| 日韩一卡二卡三卡国产欧美| 欧美成人性战久久| 欧美tickling网站挠脚心| 久久一区二区视频| 国产欧美一区二区在线| 国产精品国产三级国产有无不卡| 亚洲欧洲日产国产综合网| 亚洲少妇最新在线视频| 亚洲成人自拍一区| 久久99九九99精品| 成人精品鲁一区一区二区| 91在线porny国产在线看| 欧美日韩卡一卡二| 精品国产在天天线2019| 国产精品麻豆一区二区| 亚洲综合激情网| 国产在线国偷精品产拍免费yy| 国产91精品一区二区| 91高清视频免费看| 欧美一卡2卡3卡4卡| 国产欧美日韩卡一| 亚洲va欧美va国产va天堂影院| 久久国产精品无码网站| 99久久99久久综合| 日韩美女天天操| 亚洲欧美区自拍先锋| 美女视频免费一区| 97久久久精品综合88久久| 欧美一区二区福利视频| 中文字幕精品一区二区三区精品| 亚洲一区二区三区四区在线免费观看 | 欧美精品久久一区二区三区 | 91久久国产最好的精华液| 欧美一三区三区四区免费在线看| 国产亚洲欧美日韩在线一区| 亚洲成人777| aaa国产一区| 久久久久久久精| 日韩综合一区二区| 色综合久久88色综合天天6| 久久久久久久久久久久久夜| 视频一区视频二区中文字幕| eeuss鲁片一区二区三区在线看|