summaryrefslogtreecommitdiff
path: root/static/netbsd/man4/utoppy.4 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man4/utoppy.4 4.html')
-rw-r--r--static/netbsd/man4/utoppy.4 4.html235
1 files changed, 0 insertions, 235 deletions
diff --git a/static/netbsd/man4/utoppy.4 4.html b/static/netbsd/man4/utoppy.4 4.html
deleted file mode 100644
index 96b45781..00000000
--- a/static/netbsd/man4/utoppy.4 4.html
+++ /dev/null
@@ -1,235 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">UTOPPY(4)</td>
- <td class="head-vol">Device Drivers Manual</td>
- <td class="head-rtitle">UTOPPY(4)</td>
- </tr>
-</table>
-<div class="manual-text">
-<section class="Sh">
-<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
-<p class="Pp"><code class="Nm">utoppy</code> &#x2014; <span class="Nd">USB
- driver for the Topfield TF5000PVR range of digital video
- recorders</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="Cd">utoppy* at uhub? port ?</code></p>
-<p class="Pp">
- <br/>
- <code class="In">#include
- &lt;<a class="In">dev/usb/utoppy.h</a>&gt;</code></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">The <code class="Nm">utoppy</code> driver provides support for the
- Topfield TF5000PVR range of DVB recorders (nicknamed
- &#x2018;<code class="Li">Toppy</code>&#x2019;) which are popular in Europe
- and Australia. These recorders have a USB device interface which can be used
- to transfer recordings to and from the unit's hard disk. The USB interface
- can also be used to upload binary images for execution on the Toppy's MIPS
- cpu.</p>
-<p class="Pp">The Toppy's USB protocol has not been officially documented by
- Topfield, but the basic features have been reverse engineered by others in
- order to write replacements for the official
- &#x2018;<code class="Li">Altair</code>&#x2019; download/upload program from
- Topfield.</p>
-<p class="Pp">Existing replacements for Altair suffer from the fact that they
- are ultimately built on top of <a class="Xr">ugen(4)</a>. This has a number
- of detrimental side-effects:</p>
-<ol class="Bl-enum">
- <li>Performance suffers since all Toppy command packets have to cross the
- user-kernel interface.</li>
- <li>The userland programs are full of clutter to deal with interpreting the
- command/status packets, not to mention byte-swapping and host endian
- issues.</li>
- <li>Signals can interrupt a data transfer at a critical point, leaving the
- Toppy in an undefined state. For example, interrupting a download with
- &#x2018;<code class="Li">Turbo</code>&#x2019; mode enabled will leave the
- Toppy completely unresponsive to the remote control, and prevent
- timer-based recordings from starting.</li>
-</ol>
-<p class="Pp">The <code class="Nm">utoppy</code> driver provides a clean and
- stable interface to the Toppy protocol, and ensures that an interrupt caused
- by a signal does not leave the Toppy in an undefined state.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="UTOPPY_INTERFACE"><a class="permalink" href="#UTOPPY_INTERFACE">UTOPPY
- INTERFACE</a></h1>
-<p class="Pp">Use the following header file to get access to the utoppy specific
- structures and defines.</p>
-<div class="Bd Pp Li">
-<pre>#include &lt;dev/usb/utoppy.h&gt;</pre>
-</div>
-<p class="Pp">The <code class="Nm">utoppy</code> driver can be accessed through
- the <span class="Pa">/dev/utoppyN</span> character device. The primary means
- of controlling the driver is by issuing a series of
- <a class="Xr">ioctl(2)</a> system calls followed by
- <a class="Xr">read(2)</a> or <a class="Xr">write(2)</a> system calls as
- appropriate.</p>
-<p class="Pp">The following <a class="Xr">ioctl(2)</a> commands are supported by
- the <code class="Nm">utoppy</code> driver:</p>
-<dl class="Bl-tag">
- <dt id="UTOPPYIOTURBO"><a class="permalink" href="#UTOPPYIOTURBO"><code class="Dv">UTOPPYIOTURBO</code></a>
- <var class="Fa">int *mode</var></dt>
- <dd>This command can be used to enable or disable
- &#x2018;<code class="Li">Turbo</code>&#x2019; mode for subsequent
- <code class="Dv">UTOPPYIOREADFILE</code> or
- <code class="Dv">UTOPPYIOWRITEFILE</code> commands (see below). If
- <var class="Fa">num</var> is non-zero, Turbo mode will be enabled.
- Otherwise Turbo mode will be disabled. In non-Turbo mode, the Toppy's USB
- interface is capable of sustaining around 5.6 Mbit/s during a file
- transfer. With Turbo mode enabled, it can sustain just over 16 Mbit/s. Of
- course, these figures are valid only if the Toppy is connected via a USB
- 2.0 interface. Performance using an older USB 1 interface will be
- significantly lower.</dd>
- <dt id="UTOPPYIOCANCEL"><a class="permalink" href="#UTOPPYIOCANCEL"><code class="Dv">UTOPPYIOCANCEL</code></a>
- <var class="Fa">void</var></dt>
- <dd>This command can be used to abort an in-progress
- <code class="Dv">UTOPPYIOREADDIR</code>,
- <code class="Dv">UTOPPYIOREADFILE</code>, or
- <code class="Dv">UTOPPYIOWRITEFILE</code> command.</dd>
- <dt id="UTOPPYIOREBOOT"><a class="permalink" href="#UTOPPYIOREBOOT"><code class="Dv">UTOPPYIOREBOOT</code></a>
- <var class="Fa">void</var></dt>
- <dd>This command will cause the Toppy to reboot cleanly.</dd>
- <dt id="UTOPPYIOSTATS"><a class="permalink" href="#UTOPPYIOSTATS"><code class="Dv">UTOPPYIOSTATS</code></a>
- <var class="Fa">struct utoppy_stats *stats</var></dt>
- <dd>This command retrieves statistics for the Toppy's hard disk.
- <div class="Bd Pp Li">
- <pre>struct utoppy_stats {
- uint64_t us_hdd_size; /* Size of the disk, in bytes */
- uint64_t us_hdd_free; /* Free space, in bytes */
-};</pre>
- </div>
- </dd>
- <dt>UTOPPYIORENAME <var class="Fa">struct utoppy_rename *rename</var></dt>
- <dd>This command is used to rename a file or directory on the Toppy's hard
- disk. The full pathname to each file must be provided.
- <div class="Bd Pp Li">
- <pre>struct utoppy_rename {
- char *ur_old_path; /* Path to existing file */
- char *ur_new_path; /* Path to new file */
-};</pre>
- </div>
- </dd>
- <dt>UTOPPYIOMKDIR <var class="Fa">char *path</var></dt>
- <dd>This command creates the directory specified by
- <var class="Fa">path</var>.</dd>
- <dt>UTOPPYIODELETE <var class="Fa">char *path</var></dt>
- <dd>This command deletes the file or directory specified by
- <var class="Fa">path</var>.</dd>
- <dt>UTOPPYIOREADDIR <var class="Fa">char *path</var></dt>
- <dd>This command initiates a read of the contents of the directory specified
- by <var class="Fa">path</var>. After issuing this command, the directory
- contents must be read using consecutive <a class="Xr">read(2)</a> system
- calls. Each <a class="Xr">read(2)</a> will transfer one or more directory
- entries into the user-supplied buffer. The buffer must be large enough to
- receive at least one directory entry. When <a class="Xr">read(2)</a>
- returns zero, all directory entries have been read.
- <p class="Pp">A directory entry is described using the following data
- structure:</p>
- <div class="Bd Pp Li">
- <pre>struct utoppy_dirent {
- char ud_path[UTOPPY_MAX_FILENAME_LEN + 1];
- enum {
- UTOPPY_DIRENT_UNKNOWN,
- UTOPPY_DIRENT_DIRECTORY,
- UTOPPY_DIRENT_FILE
- } ud_type;
- off_t ud_size;
- time_t ud_mtime;
- uint32_t ud_attributes;
-};</pre>
- </div>
- <p class="Pp">The <var class="Va">ud_path</var> field contains the name of
- the directory entry.</p>
- <p class="Pp">The <var class="Va">ud_type</var> field specifies whether the
- entry corresponds to a file or a sub-directory.</p>
- <p class="Pp">The <var class="Va">ud_size</var> field is valid for files
- only, and specifies the file's size in bytes.</p>
- <p class="Pp">The <var class="Va">ud_mtime</var> field describes the file or
- directory's modification time, specified as seconds from the Unix epoch.
- The timestamp is relative to the current timezone, so
- <a class="Xr">localtime(3)</a> can be used to convert it into human
- readable form. Note that the Toppy sets directory timestamps to a
- predefined value so they are not particularly useful.</p>
- <p class="Pp">The <var class="Va">ud_attributes</var> field is not used at
- this time.</p>
- </dd>
- <dt>UTOPPYIOREADFILE <var class="Fa">struct utoppy_readfile *</var></dt>
- <dd>This command is used to initiate reading a file from the Toppy's hard
- disk. The full pathname, together with the file offset at which to start
- reading, is specified using the following data structure:
- <div class="Bd Pp Li">
- <pre>struct utoppy_readfile {
- char *ur_path;
- off_t ur_offset;
-};</pre>
- </div>
- <p class="Pp">After issuing this command, the file must be read using
- consecutive <a class="Xr">read(2)</a> system calls. When
- <a class="Xr">read(2)</a> returns zero, the entire file has been
- read.</p>
- </dd>
- <dt>UTOPPYIOWRITEFILE <var class="Fa">struct utoppy_writefile *</var></dt>
- <dd>This command is used to initiate writing to a file on the Toppy's hard
- disk. The file to be written is described using the following data
- structure:
- <div class="Bd Pp Li">
- <pre>struct utoppy_writefile {
- char *uw_path;
- off_t uw_offset;
- off_t uw_size;
- time_t uw_mtime;
-};</pre>
- </div>
- <p class="Pp">The <var class="Va">uw_path</var> field specifies the full
- pathname of the file to be written.</p>
- <p class="Pp">The <var class="Va">uw_offset</var> field specifies the file
- offset at which to start writing, assuming the file already exists.
- Otherwise, <var class="Va">uw_offset</var> must be zero.</p>
- <p class="Pp">The protocol requires that the Toppy must be informed of a
- file's size in advance of the file being written. This is accomplished
- using the <var class="Va">uw_size</var> field. It may be possible to
- work around this limitation in a future version of the driver.</p>
- <p class="Pp">The <var class="Va">uw_mtime</var> field specifies the file's
- timestamp expressed as seconds from the Unix epoch in the local
- timezone.</p>
- </dd>
-</dl>
-<p class="Pp">Due to limitations with the protocol, a
- <code class="Nm">utoppy</code> device can be opened by only one application
- at a time. Also, only a single <code class="Dv">UTOPPYIOREADDIR</code>,
- <code class="Dv">UTOPPYIOREADFILE</code>, or
- <code class="Dv">UTOPPYIOWRITEFILE</code> command can be in progress at any
- given time.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
-<dl class="Bl-tag Bl-compact">
- <dt><span class="Pa">/dev/utoppy0</span></dt>
- <dd>device node</dd>
-</dl>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
- ALSO</a></h1>
-<p class="Pp"><a class="Xr">utoppya(1)</a>, <a class="Xr">usb(4)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The <code class="Nm">utoppy</code> driver appeared in
- <span class="Ux">NetBSD 4.0</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
-<p class="Pp"><span class="An">Steve C. Woodford</span>
- &lt;<a class="Mt" href="mailto:scw@netbsd.org">scw@netbsd.org</a>&gt;</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">April 3, 2006</td>
- <td class="foot-os">NetBSD 10.1</td>
- </tr>
-</table>