
	Sysfs Utilities Package - Includes Libsysfs(v. 2.1.0)
	======================================================

Contents
--------
 1. Introduction
 2. How to Install
    2.1 Caveats/Known issues
 3. Licenses
 4. Reporting Bugs


1. Introduction
---------------

This package's purpose is to provide a set of utilities for interfacing
with sysfs, a virtual filesystem in Linux kernel versions 2.5+ that
provides a tree of system devices. While a filesystem is a very useful
interface, we've decided to provide a stable programming interface
that will hopefully make it easier for applications to query system devices
and their attributes.

This package currently includes:

- libsysfs: a library for accessing system devices.
- systool: an application to view system device information by bus, class,
	and topology.
- A number of example usage routines in the "test" directory.
- A comprehensive testsuite, also shipped as part of the "test" directory. This
	testsuite can be used to test _all_ the APIs exported by Libsysfs.
	Please refer the libsysfs.txt file in the "docs" directory for
	details as to how to use the testsuite.


2. How to Install
-----------------

Run the "configure" script to generate Makefiles. Use "make" to build the
library and utilities.

For a successful install, run "make install" as super-user. "make uninstall"
will clean up all installed files.


3. Licenses
-----------

The commands and tests are licensed under the GNU Public License (GPL)
Version2, June 1991. The full text of the GPL is located in this package's
"cmd" directory:

sysfsutils/cmd/GPL

The library is licensed under the GNU Lesser Public License (LGPL)
Version 2.1, February 1999. The full text of the LGPL is located in
this package's "lib" directory:

sysfsutils/lib/LGPL


4. Reporting Bugs
-----------------

Please direct all bugs to either the linux-diag mailing list -
linux-diag-devel@lists.sourceforge.net - or to the authors:

Ananth Mavinakayanahalli <ananth@in.ibm.com>
Daniel Stekloff <dsteklof@us.ibm.com>
Mohan Kumar <mohan@in.ibm.com>
