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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 8.html

?? 介紹linux下文件和設(shè)備編程
?? HTML
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!tmp || tmp-&gt;start &gt; end) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;sibling = tmp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *p = new;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;parent = root;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p = &amp;tmp-&gt;sibling;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tmp-&gt;end &lt; start)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return tmp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<p><p>  對(duì)函數(shù)的NOTE:<p>  ①前三個(gè)if語(yǔ)句判斷new所描述的資源范圍是否被包含在root內(nèi),以及是否是一段有效的資源(因?yàn)閑nd必須大于start)。否則就返回root指針,表示與根結(jié)點(diǎn)相沖突。<p>  ②接下來(lái)用一個(gè)for循環(huán)遍歷根節(jié)點(diǎn)root的child鏈表,以便檢查是否有資源沖突,并將new插入到child鏈表中的合適位置(child鏈表是以I/O資源物理地址從低到高的順序排列的)。為此,它用tmp指針指向當(dāng)前正被掃描的resource結(jié)構(gòu),用指針p指向前一個(gè)resource結(jié)構(gòu)的sibling指針成員變量,p的初始值為指向root-&gt;sibling。For循環(huán)體的執(zhí)行步驟如下:<p>  l 讓tmp指向當(dāng)前正被掃描的resource結(jié)構(gòu)(tmp=*p)。<p>  l 判斷tmp指針是否為空(tmp指針為空說(shuō)明已經(jīng)遍歷完整個(gè)child鏈表),或者當(dāng)前被掃描節(jié)點(diǎn)的起始位置start是否比new的結(jié)束位置end還要大。只要這兩個(gè)條件之一成立的話,就說(shuō)明沒(méi)有資源沖突,于是就可以把new鏈入child鏈表中:①設(shè)置new的sibling指針指向當(dāng)前正被掃描的節(jié)點(diǎn)tmp(new-&gt;sibling=tmp);②當(dāng)前節(jié)點(diǎn)tmp的前一個(gè)兄弟節(jié)點(diǎn)的sibling指針被修改為指向new這個(gè)節(jié)點(diǎn)(*p=new);③將new的parent指針設(shè)置為指向root。然后函數(shù)就可以返回了(返回值NULL表示沒(méi)有資源沖突)。<p>  l 如果上述兩個(gè)條件都不成立,這說(shuō)明當(dāng)前被掃描節(jié)點(diǎn)的資源域有可能與new相沖突(實(shí)際上就是兩個(gè)閉區(qū)間有交集),因此需要進(jìn)一步判斷。為此它首先修改指針p,讓它指向tmp-&gt;sibling,以便于繼續(xù)掃描child鏈表。然后,判斷tmp-&gt;end是否小于new-&gt;start,如果小于,則說(shuō)明當(dāng)前節(jié)點(diǎn)tmp和new沒(méi)有資源沖突,因此執(zhí)行continue語(yǔ)句,繼續(xù)向下掃描child鏈表。否則,如果tmp-&gt;end大于或等于new-&gt;start,則說(shuō)明tmp-&gt;[start,end]和new-&gt;[start,end]之間有交集。所以返回當(dāng)前節(jié)點(diǎn)的指針tmp,表示發(fā)生資源沖突。<p>  3.2.2 資源的釋放<p>  函數(shù)release_resource()用于實(shí)現(xiàn)I/O資源的釋放。該函數(shù)只有一個(gè)參數(shù)——即指針old,它指向所要釋放的資源。起源代碼如下:<p><br>int release_resource(struct resource *old)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int retval;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_lock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retval = __release_resource(old);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_unlock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return retval;<br>}<p><p>  可以看出,它實(shí)際上通過(guò)調(diào)用__release_resource()這個(gè)內(nèi)部靜態(tài)函數(shù)來(lái)完成實(shí)際的資源釋放工作。函數(shù)__release_resource()的主要任務(wù)就是將資源區(qū)域old(如果已經(jīng)存在的話)從其父資源的child鏈表重摘除,它的源代碼如下:<p><br>static int __release_resource(struct resource *old)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *tmp, **p;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p = &amp;old-&gt;parent-&gt;child;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (;;) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp = *p;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!tmp)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tmp == old) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *p = tmp-&gt;sibling;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; old-&gt;parent = NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p = &amp;tmp-&gt;sibling;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -EINVAL;<br>}<p><p>  對(duì)上述函數(shù)代碼的NOTE如下:<p>  同函數(shù)__request_resource()相類似,該函數(shù)也是通過(guò)一個(gè)for循環(huán)來(lái)遍歷父資源的child鏈表。為此,它讓tmp指針指向當(dāng)前被掃描的資源,而指針p則指向當(dāng)前節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)的sibling成員(p的初始值為指向父資源的child指針)。循環(huán)體的步驟如下:<p>  ①首先,讓tmp指針指向當(dāng)前被掃描的節(jié)點(diǎn)(tmp=*p)。<p>  ②如果tmp指針為空,說(shuō)明已經(jīng)遍歷完整個(gè)child鏈表,因此執(zhí)行break語(yǔ)句推出for循環(huán)。由于在遍歷過(guò)程中沒(méi)有在child鏈表中找到參數(shù)old所指定的資源節(jié)點(diǎn),因此最后返回錯(cuò)誤值-EINVAL,表示參數(shù)old是一個(gè)無(wú)效的值。<p>  ③接下來(lái),判斷當(dāng)前被掃描節(jié)點(diǎn)是否就是參數(shù)old所指定的資源節(jié)點(diǎn)。如果是,那就將old從child鏈表中去除,也即讓當(dāng)前結(jié)點(diǎn)tmp的前一個(gè)兄弟節(jié)點(diǎn)的sibling指針指向tmp的下一個(gè)節(jié)點(diǎn),然后將old-&gt;parent指針設(shè)置為NULL。最后返回0值表示執(zhí)行成功。<p>  ④如果當(dāng)前被掃描節(jié)點(diǎn)不是資源old,那就繼續(xù)掃描child鏈表中的下一個(gè)元素。因此將指針p指向tmp-&gt;sibling成員。<p>  3.2.3 檢查資源是否已被占用,<p>  函數(shù)check_resource()用于實(shí)現(xiàn)檢查某一段I/O資源是否已被占用。其源代碼如下:<p><br>int check_resource(struct resource *root, unsigned long start, unsigned long len)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *conflict, tmp;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp.start = start;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp.end = start + len - 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_lock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conflict = __request_resource(root, &amp;tmp);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!conflict)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; __release_resource(&amp;tmp);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_unlock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return conflict ? -EBUSY : 0;<br>}<p><p>  對(duì)該函數(shù)的NOTE如下:<p>  ①構(gòu)造一個(gè)臨時(shí)資源tmp,表示所要檢查的資源[start,start+end-1]。<p>  ②調(diào)用__request_resource()函數(shù)在根節(jié)點(diǎn)root申請(qǐng)tmp所表示的資源。如果tmp所描述的資源還被人使用,則該函數(shù)返回NULL,否則返回非空指針。因此接下來(lái)在conflict為NULL的情況下,調(diào)用__release_resource()將剛剛申請(qǐng)的資源釋放掉。<p>  ③最后根據(jù)conflict是否為NULL,返回-EBUSY或0值。<p>  3.2.4 尋找可用資源<p>  函數(shù)find_resource()用于在一顆資源樹(shù)中尋找未被使用的、且滿足給定條件的(也即資源長(zhǎng)度大小為size,且在[min,max]區(qū)間內(nèi))的資源。其函數(shù)源代碼如下:<p><br>/*<br> * Find empty slot in the resource tree given range and alignment.<br> */<br>static int find_resource(struct resource *root, struct resource *new,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; unsigned long size,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; unsigned long min, unsigned long max,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; unsigned long align,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; void (*alignf)(void *, struct resource *, unsigned long),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; void *alignf_data)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *this = root-&gt;child;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;start = root-&gt;start;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(;;) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;end = this-&gt;start;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;end = root-&gt;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (new-&gt;start &lt; min)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;start = min;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (new-&gt;end &gt; max)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;end = max;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;start = (new-&gt;start + align - 1) &amp; ~(align - 1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (alignf)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alignf(alignf_data, new, size);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (new-&gt;start &lt; new-&gt;end &amp;&amp; new-&gt;end - new-&gt;start + 1 &gt;= size)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;end = new-&gt;start + size - 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!this)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new-&gt;start = this-&gt;end + 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this = this-&gt;sibling;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -EBUSY;<br>}<p><p>  對(duì)該函數(shù)的NOTE如下:<p>  同樣,該函數(shù)也要遍歷root的child鏈表,以尋找未被使用的資源空洞。為此,它讓this指針表示當(dāng)前正被掃描的子資源節(jié)點(diǎn),其初始值等于root-&gt;child,即指向child鏈表中的第一個(gè)節(jié)點(diǎn),并讓new-&gt;start的初始值等于root-&gt;start,然后用一個(gè)for循環(huán)開(kāi)始掃描child鏈表,對(duì)于每一個(gè)被掃描的節(jié)點(diǎn),循環(huán)體執(zhí)行如下操作:<p>  ①首先,判斷this指針是否為NULL。如果不為空,就讓new-&gt;end等于this-&gt;start,也即讓資源new表示當(dāng)前資源節(jié)點(diǎn)this前面那一段未使用的資源區(qū)間。<p>  ②如果this指針為空,那就讓new-&gt;end等于root-&gt;end。這有兩層意思:第一種情況就是根結(jié)點(diǎn)的child指針為NULL(即根節(jié)點(diǎn)沒(méi)有任何子資源)。因此此時(shí)先暫時(shí)將new-&gt;end放到最大。第二種情況就是已經(jīng)遍歷完整個(gè)child鏈表,所以此時(shí)就讓new表示最后一個(gè)子資源后面那一段未使用的資源區(qū)間。<p>  ③根據(jù)參數(shù)min和max修正new-&gt;[start,end]的值,以使資源new被包含在[min,max]區(qū)域內(nèi)。<p>  ④接下來(lái)進(jìn)行對(duì)齊操作。<p>  ⑤然后,判斷經(jīng)過(guò)上述這些步驟所形成的資源區(qū)域new是否是一段有效的資源(end必須大于或等于start),而且資源區(qū)域的長(zhǎng)度滿足size參數(shù)的要求(end-start+1&gt;=size)。如果這兩個(gè)條件均滿足,則說(shuō)明我們已經(jīng)找到了一段滿足條件的資源空洞。因此在對(duì)new-&gt;end的值進(jìn)行修正后,然后就可以返回了(返回值0表示成功)。<p>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合色| av一区二区不卡| 成人美女视频在线观看18| 91福利精品视频| 亚洲精品一区二区三区香蕉| 中文字幕佐山爱一区二区免费| 天堂资源在线中文精品| 国产精品中文欧美| 欧美视频一区二区在线观看| 国产亚洲午夜高清国产拍精品| 一区二区成人在线| 国产成人三级在线观看| 欧美日韩美少妇 | 亚洲一区二区在线观看视频 | 国产福利91精品一区| 在线观看日产精品| 久久久91精品国产一区二区精品| 亚洲第一电影网| 岛国一区二区三区| 日韩视频在线你懂得| 1024精品合集| 国产综合久久久久久鬼色| 在线视频国内自拍亚洲视频| 久久免费视频色| 日韩精品一级二级| 色噜噜久久综合| 国产欧美日韩另类一区| 免费av成人在线| 在线免费av一区| 国产精品久久久久久久久免费樱桃| 日本亚洲天堂网| 色激情天天射综合网| 中文字幕精品一区二区三区精品| 免费观看30秒视频久久| 在线精品视频小说1| 国产精品国产三级国产aⅴ入口| 久久99久久99精品免视看婷婷 | 一区二区三区在线观看动漫| 国产成人aaa| 26uuu精品一区二区在线观看| 午夜精品一区二区三区免费视频| 91毛片在线观看| 中文字幕不卡三区| 国产综合色视频| 日韩午夜激情电影| 日本91福利区| 欧美日韩高清在线播放| 一区二区三区中文在线观看| 成人高清视频免费观看| 国产欧美精品国产国产专区 | 一本到高清视频免费精品| 欧美国产综合色视频| 激情图片小说一区| 欧美成人伊人久久综合网| 日本不卡一区二区三区| 欧美色欧美亚洲另类二区| 一区二区三区中文在线| 色美美综合视频| 一区二区三区av电影 | 亚洲国产经典视频| 国产麻豆精品久久一二三| 精品国产乱码久久久久久图片 | 精品欧美一区二区三区精品久久| 日韩不卡一区二区| 欧美一级理论性理论a| 日本不卡视频在线| 日韩精品综合一本久道在线视频| 蜜臀av一区二区在线观看| 欧美一二三区在线观看| 老司机免费视频一区二区| 欧美大肚乱孕交hd孕妇| 激情都市一区二区| 国产亚洲精品超碰| 成人h动漫精品一区二区| 综合久久久久久久| 在线观看视频一区二区欧美日韩| 亚洲一区中文日韩| 欧美精品色一区二区三区| 三级在线观看一区二区| 日韩一卡二卡三卡四卡| 韩国一区二区三区| 中文无字幕一区二区三区| heyzo一本久久综合| ㊣最新国产の精品bt伙计久久| 国产精品456| 国产精品国产精品国产专区不蜜 | 99v久久综合狠狠综合久久| 成人欧美一区二区三区| 在线视频国产一区| 日韩成人午夜精品| 久久免费的精品国产v∧| 国产成人在线电影| 亚洲桃色在线一区| 欧美精品乱码久久久久久按摩 | 欧美午夜电影网| 日本美女一区二区三区视频| 久久久国际精品| 91小视频免费观看| 亚洲chinese男男1069| 精品第一国产综合精品aⅴ| 国产·精品毛片| 亚洲在线观看免费视频| 欧美电影免费观看高清完整版 | 国产偷国产偷精品高清尤物| 91美女在线看| 美国十次综合导航| 亚洲欧洲一区二区在线播放| 欧美体内she精高潮| 久久99国内精品| 国产精品激情偷乱一区二区∴| 日本丶国产丶欧美色综合| 奇米在线7777在线精品| 国产精品欧美一区二区三区| 欧美日韩电影在线| 国产成人精品免费| 性久久久久久久久| 国产香蕉久久精品综合网| 欧美亚洲日本国产| 国模一区二区三区白浆| 亚洲啪啪综合av一区二区三区| 日韩一区二区精品| 99久久国产免费看| 九九精品一区二区| 亚洲综合精品自拍| 在线不卡一区二区| 成人一区二区三区中文字幕| 亚洲国产精品久久久久婷婷884 | 亚洲欧美视频在线观看视频| 欧美久久久久免费| 成人精品视频一区二区三区| 日本中文字幕一区二区视频 | 欧美日韩国产区一| 波多野结衣亚洲| 青青青伊人色综合久久| 亚洲人妖av一区二区| 日韩精品一区二区三区四区| 欧美专区亚洲专区| 精品制服美女丁香| 性做久久久久久久久| 亚洲视频综合在线| 中文字幕在线免费不卡| 欧美电影免费观看高清完整版在线| 色综合久久综合网欧美综合网| 国产在线观看一区二区| 日欧美一区二区| 国产精品成人在线观看| 欧美岛国在线观看| 在线成人高清不卡| 欧美视频自拍偷拍| 91欧美一区二区| 国产91精品久久久久久久网曝门| 日韩电影一二三区| 亚洲国产视频一区| 亚洲久草在线视频| 国产精品午夜久久| 久久久蜜桃精品| 日韩欧美国产一区二区三区| 91老师片黄在线观看| 粉嫩久久99精品久久久久久夜| 国内精品久久久久影院色| 图片区日韩欧美亚洲| 亚洲码国产岛国毛片在线| 国产精品视频第一区| 国产无遮挡一区二区三区毛片日本 | 在线观看视频91| 99久久er热在这里只有精品66| 丁香婷婷深情五月亚洲| 国产精品66部| 国产精品资源站在线| 国产在线精品不卡| 国内精品国产成人国产三级粉色| 乱一区二区av| 看电影不卡的网站| 久久精品99国产精品| 久久99热狠狠色一区二区| 日韩电影免费一区| 美女视频网站久久| 久久国产尿小便嘘嘘| 免费成人深夜小野草| 日本不卡不码高清免费观看| 日本欧美一区二区| 美腿丝袜亚洲一区| 卡一卡二国产精品| 韩日av一区二区| 国产精品99久久久久久久女警| 国产一区二区不卡在线| 国产精品888| 成人免费视频视频| 国产电影精品久久禁18| 国产在线看一区| 国产精品1024| 韩国视频一区二区| 婷婷中文字幕综合| 久久 天天综合| 成人18视频在线播放| 欧美日韩在线观看一区二区 | 91麻豆6部合集magnet| 欧美日韩一区三区| 久久只精品国产| 亚洲三级在线免费观看|