<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <result>
    <project>
      <id>320632</id>
      <name>libuiomux</name>
      <created_at>2009-03-28T00:48:48Z</created_at>
      <updated_at>2009-10-12T06:18:25Z</updated_at>
      <description>UIOMux is a conflict manager for system resources, including UIO devices.

UIOMux consists of a user-level shared library, libuiomux, which manages a shared memory segment containing mutexes for each managed resource. This segment and its mutexes are shared amongst all processes and threads on the system, to provide system-wide locking. In this way, libuiomux can be used to manage contention across multiple simultaneous processes and threads.

UIOMux allows simultaneous locking of access to multiple resources, with deterministic locking and unlocking order to avoid circular waiting. Processes or threads requring simultaneous access to more than one resource should lock and unlock them simultaneously via libuiomux.

UIOMux will save and restore of memory-mapped IO registers associated with a UIO device. Registers are saved on uiomux_unlock() and restored on uiomux_lock(), if intervening users have used the device.

Additionally, UIOMux can be queried for whether or not a resource is available on the currently running system.</description>
      <homepage_url>http://linux-sh.org/cgi-bin/moin.cgi/Multimedia</homepage_url>
      <download_url>http://github.com/kfish/libuiomux/tree/master</download_url>
      <url_name>uiomux</url_name>
      <user_count>2</user_count>
      <average_rating></average_rating>
      <rating_count>0</rating_count>
      <analysis_id>725827</analysis_id>
      <analysis>
        <id>725827</id>
        <project_id>320632</project_id>
        <updated_at>2009-12-04T02:17:24Z</updated_at>
        <logged_at>2009-12-04T02:17:20Z</logged_at>
        <min_month>2008-06-01T00:00:00Z</min_month>
        <max_month>2009-10-01T00:00:00Z</max_month>
        <twelve_month_contributor_count>1</twelve_month_contributor_count>
        <total_code_lines>1739</total_code_lines>
        <main_language_id>42</main_language_id>
        <main_language_name>C</main_language_name>
      </analysis>
      <licenses>
        <license>
          <name>lgpl</name>
          <nice_name>GNU Lesser General Public License 2.1</nice_name>
        </license>
      </licenses>
    </project>
  </result>
</response>
