⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 posix18.htm

📁 ST20 Embedded Toolset R2.0.5用于开发基于ST20芯片机顶盒软件的开发平台,2.0.5版本,国内找不到的.在国外论坛上花了N天才找到!
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Quadralay WebWorks Publisher Professional Edition 6.0.5">
<meta name="TEMPLATEBASE" content="book_html">
<meta name="LASTUPDATED" content="12/04/03 16:07:18">
<title>17.7.10 Concurrency support  </title>

<STYLE TYPE="text/css">
<!--
	span.Signal { text-transform: uppercase; font-family: Verdana }
-->
</STYLE>

</head>

<body link="#3366CC" vlink="#9999CC" text="#000000" alink="#0000CC" bgcolor="#FFFFFF"
background="images/backgrnd.gif">

<p><img src="images/stlogo.gif" width="106" height="83" align="left"
alt="logo here!"> </p>

<table width="331" border="0" align="right" cellpadding="0" cellspacing="0">
  <tr>
    <td><a href="a_refman.htm"><img src="images/navtoc.gif" width="84" height="23"
    border="0" alt="TOC"> </a></td>
    <td><a href="posix17.htm"><img src="images/navprev.gif" width="80" height="23"
    border="0" alt="PREV"> </a></td>
    <td><a href="posix19.htm"><img src="images/navnext.gif" width="83" height="23"
    border="0" alt="NEXT"> </a></td>
    <td><a href="a_refmaa.htm"><img src="images/navidx.gif" width="84" height="23"
    border="0" alt="INDEX"> </a></td>
  </tr>
</table>

<p><br clear="all">
</p>

<hr align="left">

<blockquote>
<h3>
  <a name="1204656"> </a><font color="#003366"  face="Verdana, Arial, Helvetica, sans-serif">17.7.10 	 Concurrency support</font>
</h3>


<p>
  <a name="1204657"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">The POSIX I/O code can be set to callback to user supplied mutex functions, which allows the internal data structures to be protected. These callbacks are registered using the function:</font>
</p>


<a name="1204658"> </a><font size=2 face=Courier><strong>void* device_setmutexfn(DeviceMutexCallbackFn <font size=2 face=Courier><strong><em>fn</em></strong></font>, void* <font size=2 face=Courier><strong><em>data</em></strong></font>);<br></strong></font>



<p>
  <a name="1204659"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif"><font size=2 face=Courier><strong><em>fn</em></strong></font> must have the prototype:</font>
</p>


<a name="1204660"> </a><font size=2 face=Courier><strong>void DeviceMutexCallbackFn(_ST_mutexop, void*);<br></strong></font>



<p>
  <a name="1204661"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">where <font size=2 face=Courier><strong>_ST_mutexop</strong></font> is <font size=2 face=Courier><strong>_ST_mutexop_lock</strong></font> to lock the mutex and <font size=2 face=Courier><strong>_ST_mutexop_unlock</strong></font> to unlock it.</font>
</p>


<p>
  <a name="1204662"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif"><em>Note:	 This lock is always released before calling into any functions in a device driver. This means that the device driver must be responsible for protecting its own data structures from concurrent access by multiple threads.</em></font>
</p>

<p>
  <a name="1204663"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">When OS20 is used, the application does not have to manage the POSIX I/O mutex; a mutex function is provided and registered with <font size=2 face=Courier><strong>device_setmutexfn()</strong></font> by the OS20 function <font size=2 face=Courier><strong>kernel_initialize()</strong></font>. However, the application may override this default mutex function after <font size=2 face=Courier><strong>kernel_initialize()</strong></font> has been called. The OS20 source file that implements concurrency support for device I/O is supplied in the file:</font>
</p>


<a name="1204664"> </a><font size=2 face=Courier><strong>src/os20/clibprot/deviceprot.c<br></strong></font>



<p>
  <a name="1204665"> </a><font size=2  face="Verdana, Arial, Helvetica, sans-serif">To provide alternative mutual exclusion, or if using an operating system other than OS20, concurrency support may be set up manually.</font>
</p>


<p>
  <a name="1208117"> </a><font size=2 face="Verdana, Arial, Helvetica, sans-serif"><em>Note:	 If setting up concurrency support for POSIX I/O functions then concurrency support must also be provided for the debug support functions if they are used. See <a href="libsdeb3.htm#1204431"><font  color="#0000ff" face="Verdana, Arial, Helvetica, sans-serif"><i>Section

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -