<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-10-11)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>ccj</strong></font>
<font color='#225522'><em>(on branch rtems-4-10-branch)</em></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>The patch to the 4.10 branch did not apply correctly. This fixes it.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c.diff?r1=text&tr1=1.4.2.3&r2=text&tr2=1.4.2.4&diff_format=h">M</a></td><td width='1%'>1.4.2.4</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-block.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-buffer.h.diff?r1=text&tr1=1.2.2.1&r2=text&tr2=1.2.2.2&diff_format=h">M</a></td><td width='1%'>1.2.2.2</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-buffer.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-dir.c.diff?r1=text&tr1=1.6.2.2&r2=text&tr2=1.6.2.3&diff_format=h">M</a></td><td width='1%'>1.6.2.3</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-dir.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c.diff?r1=text&tr1=1.5.2.2&r2=text&tr2=1.5.2.3&diff_format=h">M</a></td><td width='1%'>1.5.2.3</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-format.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-group.c.diff?r1=text&tr1=1.4.2.1&r2=text&tr2=1.4.2.2&diff_format=h">M</a></td><td width='1%'>1.4.2.2</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-group.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-inode.c.diff?r1=text&tr1=1.3.2.1&r2=text&tr2=1.3.2.2&diff_format=h">M</a></td><td width='1%'>1.3.2.2</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-inode.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c.diff?r1=text&tr1=1.3.2.1&r2=text&tr2=1.3.2.2&diff_format=h">M</a></td><td width='1%'>1.3.2.2</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-shell.c.diff?r1=text&tr1=1.7.2.3&r2=text&tr2=1.7.2.4&diff_format=h">M</a></td><td width='1%'>1.7.2.4</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-shell.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.h.diff?r1=text&tr1=1.1.2.1&r2=text&tr2=1.1.2.2&diff_format=h">M</a></td><td width='1%'>1.1.2.2</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-trace.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.2.2.1&diff_format=h">M</a></td><td width='1%'>1.2.2.1</td><td width='100%'>cpukit/libfs/src/rfs/rtems-rfs-trace.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c:1.4.2.3 rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c:1.4.2.4
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c:1.4.2.3 Sun Oct 10 23:40:08 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -58,20 +58,7 @@
</font> rtems_rfs_block_get_pos (rtems_rfs_file_system* fs,
rtems_rfs_block_pos* bpos)
{
<font color='#880000'>-#if 0
- rtems_rfs_pos pos = 0;
- if (bpos->bno)
- {
- pos = bpos->boff;
- if (pos == 0)
- pos = rtems_rfs_fs_block_size (fs);
- pos += (bpos->bno - 1) * rtems_rfs_fs_block_size (fs);
- }
-#else
- rtems_rfs_pos pos;
- pos = (bpos->bno * rtems_rfs_fs_block_size (fs)) + bpos->boff;
-#endif
- return pos;
</font><font color='#000088'>+ return (bpos->bno * rtems_rfs_fs_block_size (fs)) + bpos->boff;
</font> }
void
<font color='#997700'>@@ -639,8 +626,6 @@
</font> int b;
for (b = 0; b < RTEMS_RFS_INODE_BLOCKS; b++)
map->blocks[b] = rtems_rfs_block_get_number (buffer, b);
<font color='#880000'>-
- rtems_rfs_buffer_handle_reset (buffer);
</font> }
else
{
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-buffer.h:1.2.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-buffer.h:1.2.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-buffer.h:1.2.2.1 Wed Jun 16 09:40:50 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-buffer.h Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -186,22 +186,6 @@
</font> rtems_rfs_buffer_handle* handle);
/**
<font color='#880000'>- * Reset a handle.
- *
- * @param fs The file system data.
- * @param handle The buffer handle to reset.
- * @return int The error number (errno). No error if 0.
- */
-static inline int
-rtems_rfs_buffer_handle_reset (rtems_rfs_buffer_handle* handle)
-{
- handle->dirty = false;
- handle->bnum = 0;<span style="background-color: #FF0000"> </span>
- handle->buffer = NULL;
- return 0;
-}
-
-/**
</font> * Open a handle.
*
* @param fs The file system data.
<font color='#997700'>@@ -212,7 +196,9 @@
</font> rtems_rfs_buffer_handle_open (rtems_rfs_file_system* fs,
rtems_rfs_buffer_handle* handle)
{
<font color='#880000'>- rtems_rfs_buffer_handle_reset (handle);
</font><font color='#000088'>+ handle->dirty = false;
+ handle->bnum = 0;<span style="background-color: #FF0000"> </span>
+ handle->buffer = NULL;
</font> return 0;
}
<font color='#997700'>@@ -228,6 +214,9 @@
</font> rtems_rfs_buffer_handle* handle)
{
rtems_rfs_buffer_handle_release (fs, handle);
<font color='#000088'>+ handle->dirty = false;
+ handle->bnum = 0;<span style="background-color: #FF0000"> </span>
+ handle->buffer = NULL;
</font> return 0;
}
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-dir.c:1.6.2.2 rtems/cpukit/libfs/src/rfs/rtems-rfs-dir.c:1.6.2.3
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-dir.c:1.6.2.2 Sun Oct 10 23:40:08 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-dir.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -620,10 +620,7 @@
</font> if (remaining <= RTEMS_RFS_DIR_ENTRY_SIZE)
*length += remaining;
<font color='#880000'>- if (elength < RTEMS_RFS_DIR_ENTRY_SIZE)
- elength = 0;
- else
- elength -= RTEMS_RFS_DIR_ENTRY_SIZE;
</font><font color='#000088'>+ elength -= RTEMS_RFS_DIR_ENTRY_SIZE;
</font> if (elength > NAME_MAX)
elength = NAME_MAX;
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.2 rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.3
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c:1.5.2.2 Thu Aug 26 01:35:22 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-format.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -84,8 +84,7 @@
</font> rtems_rfs_fs_block_size (fs));
bits_per_block = rtems_rfs_bits_per_block (fs);
/*
<font color='#880000'>- * There could be more bits that there are blocks, eg 512K disk with 512
- * blocks.
</font><font color='#000088'>+ * There could be more bits than blocks, eg 512K disk with 512 blocks.
</font> */
if (bits_per_block > (rtems_rfs_fs_blocks (fs) - RTEMS_RFS_SUPERBLOCK_SIZE))
bits_per_block = rtems_rfs_fs_blocks (fs) - RTEMS_RFS_SUPERBLOCK_SIZE;
<font color='#997700'>@@ -353,7 +352,7 @@
</font> rtems_rfs_buffer_mark_dirty (&handle);
/*
<font color='#880000'>- * Initialise the inode tables if rerquired to do so.
</font><font color='#000088'>+ * Initialise the inode tables if required to do so.
</font> */
if (initialise_inodes)
{
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-group.c:1.4.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-group.c:1.4.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-group.c:1.4.2.1 Wed Jun 16 21:44:55 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-group.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -46,6 +46,15 @@
</font>
if ((base + size) >= rtems_rfs_fs_blocks (fs))
size = rtems_rfs_fs_blocks (fs) - base;
<font color='#000088'>+
+ /*
+ * Limit the inodes to the same size as the blocks. This is what the
+ * format does and if this is not done the accounting of inodes does
+ * not work. If we are so pushed for inodes that this makes a difference
+ * the format configuration needs reviewing.
+ */
+ if (inodes > size)
+ inodes = size;
</font>
if (rtems_rfs_trace (RTEMS_RFS_TRACE_GROUP_OPEN))
printf ("rtems-rfs: group-open: base=%" PRId32 ", blocks=%zd inodes=%zd\n",
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-inode.c:1.3.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-inode.c:1.3.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-inode.c:1.3.2.1 Wed Jun 16 12:30:51 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-inode.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -296,6 +296,12 @@
</font> rtems_rfs_inode_handle* handle)
{
int rc = 0;
<font color='#000088'>+<span style="background-color: #FF0000"> </span>
+ if (rtems_rfs_trace (RTEMS_RFS_TRACE_INODE_DELETE))
+ printf("rtems-rfs: inode-delete: ino:%" PRIu32 " loaded:%s\n",
+ rtems_rfs_inode_ino (handle),
+ rtems_rfs_inode_is_loaded (handle) ? "yes" : "no");
+
</font> if (rtems_rfs_inode_is_loaded (handle))
{
rtems_rfs_block_map map;
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.3.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.3.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c:1.3.2.1 Wed Jun 16 22:48:39 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems-dir.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -26,6 +26,7 @@
</font> #include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
<font color='#000088'>+#include <unistd.h>
</font>
#include <rtems/rfs/rtems-rfs-dir.h>
#include <rtems/rfs/rtems-rfs-link.h>
<font color='#997700'>@@ -113,7 +114,7 @@
</font> rtems_rfs_ino ino = rtems_rfs_rtems_get_iop_ino (iop);
rtems_rfs_inode_handle inode;
struct dirent* dirent;
<font color='#880000'>- size_t bytes_transfered;
</font><font color='#000088'>+ ssize_t bytes_transferred;
</font> int d;
int rc;
<font color='#997700'>@@ -129,7 +130,7 @@
</font> return rtems_rfs_rtems_error ("dir_read: read inode", rc);
}
<font color='#880000'>- bytes_transfered = 0;
</font><font color='#000088'>+ bytes_transferred = 0;
</font>
for (d = 0; d < count; d++, dirent++)
{
<font color='#997700'>@@ -142,17 +143,17 @@
</font> }
if (rc > 0)
{
<font color='#880000'>- bytes_transfered = rtems_rfs_rtems_error ("dir_read: dir read", rc);
</font><font color='#000088'>+ bytes_transferred = rtems_rfs_rtems_error ("dir_read: dir read", rc);
</font> break;
}
iop->offset += size;
<font color='#880000'>- bytes_transfered += sizeof (struct dirent);
</font><font color='#000088'>+ bytes_transferred += sizeof (struct dirent);
</font> }
rtems_rfs_inode_close (fs, &inode);
rtems_rfs_rtems_unlock (fs);
<font color='#880000'>- return (ssize_t) bytes_transfered;
</font><font color='#000088'>+ return bytes_transferred;
</font> }
/**
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-shell.c:1.7.2.3 rtems/cpukit/libfs/src/rfs/rtems-rfs-shell.c:1.7.2.4
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-shell.c:1.7.2.3 Thu Jun 24 08:28:54 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-shell.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -123,24 +123,24 @@
</font> printf ("RFS Filesystem Data\n");
printf (" flags: %08" PRIx32 "\n", fs->flags);
#if 0
<font color='#880000'>- printf (" device: %08lx\n", rtems_rfs_fs_device (fs));
</font><font color='#000088'>+ printf (" device: %08lx\n", rtems_rfs_fs_device (fs));
</font> #endif
<font color='#880000'>- printf (" blocks: %zu\n", rtems_rfs_fs_blocks (fs));
- printf (" block size: %zu\n", rtems_rfs_fs_block_size (fs));
- printf (" size: %" PRIu64 "\n", rtems_rfs_fs_size (fs));
- printf (" media block size: %" PRIu32 "\n", rtems_rfs_fs_media_block_size (fs));
- printf (" media size: %" PRIu64 "\n", rtems_rfs_fs_media_size (fs));
- printf (" inodes: %" PRIu32 "\n", rtems_rfs_fs_inodes (fs));
- printf (" bad blocks: %" PRIu32 "\n", fs->bad_blocks);
- printf (" max. name length: %" PRIu32 "\n", rtems_rfs_fs_max_name (fs));
- printf (" groups: %d\n", fs->group_count);
- printf (" group blocks: %zd\n", fs->group_blocks);
- printf (" group inodes: %zd\n", fs->group_inodes);
- printf (" inodes per block: %zd\n", fs->inodes_per_block);
- printf (" blocks per block: %zd\n", fs->blocks_per_block);
- printf (" singly blocks: %zd\n", fs->block_map_singly_blocks);
- printf (" doublly blocks: %zd\n", fs->block_map_doubly_blocks);
- printf (" max. held buffers: %" PRId32 "\n", fs->max_held_buffers);
</font><font color='#000088'>+ printf (" blocks: %zu\n", rtems_rfs_fs_blocks (fs));
+ printf (" block size: %zu\n", rtems_rfs_fs_block_size (fs));
+ printf (" size: %" PRIu64 "\n", rtems_rfs_fs_size (fs));
+ printf (" media block size: %" PRIu32 "\n", rtems_rfs_fs_media_block_size (fs));
+ printf (" media size: %" PRIu64 "\n", rtems_rfs_fs_media_size (fs));
+ printf (" inodes: %" PRIu32 "\n", rtems_rfs_fs_inodes (fs));
+ printf (" bad blocks: %" PRIu32 "\n", fs->bad_blocks);
+ printf (" max. name length: %" PRIu32 "\n", rtems_rfs_fs_max_name (fs));
+ printf (" groups: %d\n", fs->group_count);
+ printf (" group blocks: %zd\n", fs->group_blocks);
+ printf (" group inodes: %zd\n", fs->group_inodes);
+ printf (" inodes per block: %zd\n", fs->inodes_per_block);
+ printf (" blocks per block: %zd\n", fs->blocks_per_block);
+ printf (" singly blocks: %zd\n", fs->block_map_singly_blocks);
+ printf (" doublly blocks: %zd\n", fs->block_map_doubly_blocks);
+ printf (" max. held buffers: %" PRId32 "\n", fs->max_held_buffers);
</font>
rtems_rfs_shell_lock_rfs (fs);
<font color='#997700'>@@ -302,8 +302,7 @@
</font> }
}
<font color='#880000'>- if ((start < 0) || (end < 0) ||
- (start >= total) || (end >= total))
</font><font color='#000088'>+ if ((start >= total) || (end >= total))
</font> {
printf ("error: inode out of range (0->%" PRId32 ").\n", total - 1);
return 1;
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.h:1.1.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.h:1.1.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.h:1.1.2.1 Sun Oct 10 23:40:08 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.h Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -28,7 +28,9 @@
</font> /**
* Is tracing enabled ?
*/
<font color='#000088'>+#if !defined (RTEMS_RFS_TRACE)
</font> #define RTEMS_RFS_TRACE 1
<font color='#000088'>+#endif
</font>
/**
* The type of the mask.
<font color='#997700'>@@ -62,21 +64,22 @@
</font> #define RTEMS_RFS_TRACE_INODE_LOAD (1ULL << 20)
#define RTEMS_RFS_TRACE_INODE_UNLOAD (1ULL << 21)
#define RTEMS_RFS_TRACE_INODE_CREATE (1ULL << 22)
<font color='#880000'>-#define RTEMS_RFS_TRACE_LINK (1ULL << 23)
-#define RTEMS_RFS_TRACE_UNLINK (1ULL << 24)
-#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO (1ULL << 25)
-#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK (1ULL << 26)
-#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO_FOUND (1ULL << 27)
-#define RTEMS_RFS_TRACE_DIR_ADD_ENTRY (1ULL << 28)
-#define RTEMS_RFS_TRACE_DIR_DEL_ENTRY (1ULL << 29)
-#define RTEMS_RFS_TRACE_DIR_READ (1ULL << 30)
-#define RTEMS_RFS_TRACE_DIR_EMPTY (1ULL << 31)
-#define RTEMS_RFS_TRACE_SYMLINK (1ULL << 32)
-#define RTEMS_RFS_TRACE_SYMLINK_READ (1ULL << 33)
-#define RTEMS_RFS_TRACE_FILE_OPEN (1ULL << 34)
-#define RTEMS_RFS_TRACE_FILE_CLOSE (1ULL << 35)
-#define RTEMS_RFS_TRACE_FILE_IO (1ULL << 36)
-#define RTEMS_RFS_TRACE_FILE_SET (1ULL << 37)
</font><font color='#000088'>+#define RTEMS_RFS_TRACE_INODE_DELETE (1ULL << 23)
+#define RTEMS_RFS_TRACE_LINK (1ULL << 24)
+#define RTEMS_RFS_TRACE_UNLINK (1ULL << 25)
+#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO (1ULL << 26)
+#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO_CHECK (1ULL << 27)
+#define RTEMS_RFS_TRACE_DIR_LOOKUP_INO_FOUND (1ULL << 28)
+#define RTEMS_RFS_TRACE_DIR_ADD_ENTRY (1ULL << 29)
+#define RTEMS_RFS_TRACE_DIR_DEL_ENTRY (1ULL << 30)
+#define RTEMS_RFS_TRACE_DIR_READ (1ULL << 31)
+#define RTEMS_RFS_TRACE_DIR_EMPTY (1ULL << 32)
+#define RTEMS_RFS_TRACE_SYMLINK (1ULL << 33)
+#define RTEMS_RFS_TRACE_SYMLINK_READ (1ULL << 34)
+#define RTEMS_RFS_TRACE_FILE_OPEN (1ULL << 35)
+#define RTEMS_RFS_TRACE_FILE_CLOSE (1ULL << 36)
+#define RTEMS_RFS_TRACE_FILE_IO (1ULL << 37)
+#define RTEMS_RFS_TRACE_FILE_SET (1ULL << 38)
</font>
/**
* Call to check if this part is bring traced. If RTEMS_RFS_TRACE is defined to
<font color='#006600'>diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2 rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2.2.1
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2 Fri Mar 26 23:04:40 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c Mon Oct 11 16:12:48 2010
</font><font color='#997700'>@@ -78,6 +78,7 @@
</font> "inode-load",
"inode-unload",
"inode-create",
<font color='#000088'>+ "inode-delete",
</font> "link",
"unlink",
"dir-lookup-ino",
</pre>
<p> </p>
<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>