📄 blk.h
字号:
<a name=L61 href="source/kernel/blk_drv/blk.h#L61">61</a> #if (<a href="ident?i=MAJOR_NR">MAJOR_NR</a> == 1) <a name=L62 href="source/kernel/blk_drv/blk.h#L62">62</a> <b><i>/* ram disk */</i></b> <a name=L63 href="source/kernel/blk_drv/blk.h#L63">63</a> #define <a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>"ramdisk"</i> <a name=L64 href="source/kernel/blk_drv/blk.h#L64">64</a> #define <a href="ident?i=DEVICE_REQUEST">DEVICE_REQUEST</a> <a href="ident?i=do_rd_request">do_rd_request</a> <a name=L65 href="source/kernel/blk_drv/blk.h#L65">65</a> #define <a href="ident?i=DEVICE_NR">DEVICE_NR</a>(device) ((device) & 7) <a name=L66 href="source/kernel/blk_drv/blk.h#L66">66</a> #define <a href="ident?i=DEVICE_ON">DEVICE_ON</a>(device) <a name=L67 href="source/kernel/blk_drv/blk.h#L67">67</a> #define <a href="ident?i=DEVICE_OFF">DEVICE_OFF</a>(device) <a name=L68 href="source/kernel/blk_drv/blk.h#L68">68</a> <a name=L69 href="source/kernel/blk_drv/blk.h#L69">69</a> #elif (<a href="ident?i=MAJOR_NR">MAJOR_NR</a> == 2) <a name=L70 href="source/kernel/blk_drv/blk.h#L70">70</a> <b><i>/* floppy */</i></b> <a name=L71 href="source/kernel/blk_drv/blk.h#L71">71</a> #define <a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>"floppy"</i> <a name=L72 href="source/kernel/blk_drv/blk.h#L72">72</a> #define <a href="ident?i=DEVICE_INTR">DEVICE_INTR</a> do_floppy <a name=L73 href="source/kernel/blk_drv/blk.h#L73">73</a> #define <a href="ident?i=DEVICE_REQUEST">DEVICE_REQUEST</a> <a href="ident?i=do_fd_request">do_fd_request</a> <a name=L74 href="source/kernel/blk_drv/blk.h#L74">74</a> #define <a href="ident?i=DEVICE_NR">DEVICE_NR</a>(device) ((device) & 3) <a name=L75 href="source/kernel/blk_drv/blk.h#L75">75</a> #define <a href="ident?i=DEVICE_ON">DEVICE_ON</a>(device) <a href="ident?i=floppy_on">floppy_on</a>(<a href="ident?i=DEVICE_NR">DEVICE_NR</a>(device)) <a name=L76 href="source/kernel/blk_drv/blk.h#L76">76</a> #define <a href="ident?i=DEVICE_OFF">DEVICE_OFF</a>(device) <a href="ident?i=floppy_off">floppy_off</a>(<a href="ident?i=DEVICE_NR">DEVICE_NR</a>(device)) <a name=L77 href="source/kernel/blk_drv/blk.h#L77">77</a> <a name=L78 href="source/kernel/blk_drv/blk.h#L78">78</a> #elif (<a href="ident?i=MAJOR_NR">MAJOR_NR</a> == 3) <a name=L79 href="source/kernel/blk_drv/blk.h#L79">79</a> <b><i>/* harddisk */</i></b> <a name=L80 href="source/kernel/blk_drv/blk.h#L80">80</a> #define <a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>"harddisk"</i> <a name=L81 href="source/kernel/blk_drv/blk.h#L81">81</a> #define <a href="ident?i=DEVICE_INTR">DEVICE_INTR</a> do_hd <a name=L82 href="source/kernel/blk_drv/blk.h#L82">82</a> #define <a href="ident?i=DEVICE_REQUEST">DEVICE_REQUEST</a> <a href="ident?i=do_hd_request">do_hd_request</a> <a name=L83 href="source/kernel/blk_drv/blk.h#L83">83</a> #define <a href="ident?i=DEVICE_NR">DEVICE_NR</a>(device) (<a href="ident?i=MINOR">MINOR</a>(device)/5) <a name=L84 href="source/kernel/blk_drv/blk.h#L84">84</a> #define <a href="ident?i=DEVICE_ON">DEVICE_ON</a>(device) <a name=L85 href="source/kernel/blk_drv/blk.h#L85">85</a> #define <a href="ident?i=DEVICE_OFF">DEVICE_OFF</a>(device) <a name=L86 href="source/kernel/blk_drv/blk.h#L86">86</a> <a name=L87 href="source/kernel/blk_drv/blk.h#L87">87</a> #elif <a name=L88 href="source/kernel/blk_drv/blk.h#L88">88</a> <b><i>/* unknown blk device */</i></b> <a name=L89 href="source/kernel/blk_drv/blk.h#L89">89</a> #error <i>"unknown blk device"</i> <a name=L90 href="source/kernel/blk_drv/blk.h#L90">90</a> <a name=L91 href="source/kernel/blk_drv/blk.h#L91">91</a> #endif <a name=L92 href="source/kernel/blk_drv/blk.h#L92">92</a> <a name=L93 href="source/kernel/blk_drv/blk.h#L93">93</a> #define <a href="ident?i=CURRENT">CURRENT</a> (<a href="ident?i=blk_dev">blk_dev</a>[<a href="ident?i=MAJOR_NR">MAJOR_NR</a>].current_request) <a name=L94 href="source/kernel/blk_drv/blk.h#L94">94</a> #define <a href="ident?i=CURRENT_DEV">CURRENT_DEV</a> <a href="ident?i=DEVICE_NR">DEVICE_NR</a>(<a href="ident?i=CURRENT">CURRENT</a>->dev) <a name=L95 href="source/kernel/blk_drv/blk.h#L95">95</a> <a name=L96 href="source/kernel/blk_drv/blk.h#L96">96</a> #ifdef <a href="ident?i=DEVICE_INTR">DEVICE_INTR</a> <a name=L97 href="source/kernel/blk_drv/blk.h#L97">97</a> void (*<a href="ident?i=DEVICE_INTR">DEVICE_INTR</a>)(void) = <a href="ident?i=NULL">NULL</a>; <a name=L98 href="source/kernel/blk_drv/blk.h#L98">98</a> #endif <a name=L99 href="source/kernel/blk_drv/blk.h#L99">99</a> static void (<a href="ident?i=DEVICE_REQUEST">DEVICE_REQUEST</a>)(void);<a name=L100 href="source/kernel/blk_drv/blk.h#L100">100</a> <a name=L101 href="source/kernel/blk_drv/blk.h#L101">101</a> extern inline void <a href="ident?i=unlock_buffer">unlock_buffer</a>(struct <a href="ident?i=buffer_head">buffer_head</a> * bh)<a name=L102 href="source/kernel/blk_drv/blk.h#L102">102</a> {<a name=L103 href="source/kernel/blk_drv/blk.h#L103">103</a> if (!bh->b_lock)<a name=L104 href="source/kernel/blk_drv/blk.h#L104">104</a> <a href="ident?i=printk">printk</a>(<a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>": free buffer being unlocked\n"</i>);<a name=L105 href="source/kernel/blk_drv/blk.h#L105">105</a> bh->b_lock=0;<a name=L106 href="source/kernel/blk_drv/blk.h#L106">106</a> <a href="ident?i=wake_up">wake_up</a>(&bh->b_wait);<a name=L107 href="source/kernel/blk_drv/blk.h#L107">107</a> }<a name=L108 href="source/kernel/blk_drv/blk.h#L108">108</a> <a name=L109 href="source/kernel/blk_drv/blk.h#L109">109</a> extern inline void <a href="ident?i=end_request">end_request</a>(int uptodate)<a name=L110 href="source/kernel/blk_drv/blk.h#L110">110</a> {<a name=L111 href="source/kernel/blk_drv/blk.h#L111">111</a> <a href="ident?i=DEVICE_OFF">DEVICE_OFF</a>(<a href="ident?i=CURRENT">CURRENT</a>->dev);<a name=L112 href="source/kernel/blk_drv/blk.h#L112">112</a> if (<a href="ident?i=CURRENT">CURRENT</a>->bh) {<a name=L113 href="source/kernel/blk_drv/blk.h#L113">113</a> <a href="ident?i=CURRENT">CURRENT</a>->bh->b_uptodate = uptodate;<a name=L114 href="source/kernel/blk_drv/blk.h#L114">114</a> <a href="ident?i=unlock_buffer">unlock_buffer</a>(<a href="ident?i=CURRENT">CURRENT</a>->bh);<a name=L115 href="source/kernel/blk_drv/blk.h#L115">115</a> }<a name=L116 href="source/kernel/blk_drv/blk.h#L116">116</a> if (!uptodate) {<a name=L117 href="source/kernel/blk_drv/blk.h#L117">117</a> <a href="ident?i=printk">printk</a>(<a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>" I/O error\n\r"</i>);<a name=L118 href="source/kernel/blk_drv/blk.h#L118">118</a> <a href="ident?i=printk">printk</a>(<i>"dev %04x, block %d\n\r"</i>,<a href="ident?i=CURRENT">CURRENT</a>->dev,<a name=L119 href="source/kernel/blk_drv/blk.h#L119">119</a> <a href="ident?i=CURRENT">CURRENT</a>->bh->b_blocknr);<a name=L120 href="source/kernel/blk_drv/blk.h#L120">120</a> }<a name=L121 href="source/kernel/blk_drv/blk.h#L121">121</a> <a href="ident?i=wake_up">wake_up</a>(&<a href="ident?i=CURRENT">CURRENT</a>->waiting);<a name=L122 href="source/kernel/blk_drv/blk.h#L122">122</a> <a href="ident?i=wake_up">wake_up</a>(&<a href="ident?i=wait_for_request">wait_for_request</a>);<a name=L123 href="source/kernel/blk_drv/blk.h#L123">123</a> <a href="ident?i=CURRENT">CURRENT</a>->dev = -1;<a name=L124 href="source/kernel/blk_drv/blk.h#L124">124</a> <a href="ident?i=CURRENT">CURRENT</a> = <a href="ident?i=CURRENT">CURRENT</a>->next;<a name=L125 href="source/kernel/blk_drv/blk.h#L125">125</a> }<a name=L126 href="source/kernel/blk_drv/blk.h#L126">126</a> <a name=L127 href="source/kernel/blk_drv/blk.h#L127">127</a> #define <a href="ident?i=INIT_REQUEST">INIT_REQUEST</a> \<a name=L128 href="source/kernel/blk_drv/blk.h#L128">128</a> repeat: \<a name=L129 href="source/kernel/blk_drv/blk.h#L129">129</a> if (!<a href="ident?i=CURRENT">CURRENT</a>) \<a name=L130 href="source/kernel/blk_drv/blk.h#L130">130</a> return; \<a name=L131 href="source/kernel/blk_drv/blk.h#L131">131</a> if (<a href="ident?i=MAJOR">MAJOR</a>(<a href="ident?i=CURRENT">CURRENT</a>->dev) != <a href="ident?i=MAJOR_NR">MAJOR_NR</a>) \<a name=L132 href="source/kernel/blk_drv/blk.h#L132">132</a> <a href="ident?i=panic">panic</a>(<a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>": request list destroyed"</i>); \<a name=L133 href="source/kernel/blk_drv/blk.h#L133">133</a> if (<a href="ident?i=CURRENT">CURRENT</a>->bh) { \<a name=L134 href="source/kernel/blk_drv/blk.h#L134">134</a> if (!<a href="ident?i=CURRENT">CURRENT</a>->bh->b_lock) \<a name=L135 href="source/kernel/blk_drv/blk.h#L135">135</a> <a href="ident?i=panic">panic</a>(<a href="ident?i=DEVICE_NAME">DEVICE_NAME</a> <i>": block not locked"</i>); \<a name=L136 href="source/kernel/blk_drv/blk.h#L136">136</a> }<a name=L137 href="source/kernel/blk_drv/blk.h#L137">137</a> <a name=L138 href="source/kernel/blk_drv/blk.h#L138">138</a> #endif<a name=L139 href="source/kernel/blk_drv/blk.h#L139">139</a> <a name=L140 href="source/kernel/blk_drv/blk.h#L140">140</a> #endif<a name=L141 href="source/kernel/blk_drv/blk.h#L141">141</a> </pre><hr><div align=center> [<b><i>源代码浏览</i></b>] [<a href="diff/kernel/blk_drv/blk.h">区别标定</a>] [<a href="ident">标识符搜索</a>] [<a href="search">文本搜索</a>] [<a href="find">文件搜索</a>] </div><hr>本网页由 <a href="http:blurb.html">LXR引擎</a> 自动生成.<br></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -