From c4e82e7ea8f1503416e447fa8ae6971c123a829a Mon Sep 17 00:00:00 2001 From: dipohl <dipohl@4ea69e1a-61f1-4043-bf83-b5c94c648137> Date: Sun, 2 Aug 2009 12:43:47 +0000 Subject: [PATCH] Part of the doxygen sourcecode documentation on the homepage. doc_main.txt holds the content for the startpage: http://smartmontools.sourceforge.net/doxygen/ git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2868 4ea69e1a-61f1-4043-bf83-b5c94c648137 --- www/doxygen/doc_main.txt | 130 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 www/doxygen/doc_main.txt diff --git a/www/doxygen/doc_main.txt b/www/doxygen/doc_main.txt new file mode 100644 index 000000000..ed95063a8 --- /dev/null +++ b/www/doxygen/doc_main.txt @@ -0,0 +1,130 @@ +/* + * $Id$ + * + * Home page of code is: http://smartmontools.sourceforge.net + * + * Copyright (C) 2009 Gabriele Pohl + * <smartmontools-support@lists.sourceforge.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * You should have received a copy of the GNU General Public License + * (for example COPYING); If not, see <http://www.gnu.org/licenses/>. + * + */ + +/*! @mainpage Smartmontools Sourcecode Documentation + This is the main index page. Here we will add a short introduction + of the smartmontools software architecture and its components.<br> + Please refer to the further tabs and links to get detailed + information on each class and method. + + @section Links Other Resources + - Smartmontools homepage:<br> + http://smartmontools.sourceforge.net/<br> + + - Description of the software package at sourceforge.net:<br> + http://sourceforge.net/projects/smartmontools/ + + - Browse the current version in SVN-Repository:<br> + http://sourceforge.net/apps/trac/smartmontools/browser/trunk/smartmontools + + - Smartmontools Trac (bug/issue tracking system and wiki)<br> + http://sourceforge.net/apps/trac/smartmontools/ + + @section Introduction + The smartmontools package contains two utility programs (<b>smartctl</b> + and <b>smartd</b>) to control and monitor storage systems using the + <em>Self-Monitoring, Analysis and Reporting Technology System + (SMART)</em> built into most modern ATA and SCSI harddisks. + + Smartmontools supports ATA/ATAPI/SATA-3 to -8 disks and SCSI disks and + tape devices. It should run on any modern Darwin (Mac OS X), Linux, FreeBSD, + NetBSD, OpenBSD, Solaris, OS/2, Cygwin, QNX, eComStation or Windows system. + + @section Architecture Software Architecture + + @subsection os-interface OS Specific Interfaces + Each different port and OS needs to provide it's own interface. + It is meant to isolate the OS dependent parts of the code + and to provide a debugging interface. + + The following ports currently exist: + + Already adapted to <b>new c++ Interface</b> + - os_linux.cpp + - os_win32.cpp + + Still working with old interface + - os_darwin.cpp<br> + - os_freebsd.cpp<br> + - os_netbsd.cpp<br> + - os_openbsd.cpp<br> + - os_os2.cpp<br> + - os_qnxnto.cpp<br> + - os_solaris.cpp<br> + + <hr> + To port smartmontools to the OS of your choice, please: + + -# Contact smartmontools-support@lists.sourceforge.net to check + that it's not already been done.<br><br> + -# Make copies of os_generic.h and os_generic.cpp called os_myOS.h + and os_myOS.cpp.<br><br> + -# Modify configure.in so that case "${host}" includes myOS.<br><br> + -# Verify that ./autogen.sh && ./configure && make compiles the + code. If not, fix any compilation problems. If your OS lacks + some function that is used elsewhere in the code, then add a + AC_CHECK_FUNCS([missingfunction]) line to configure.in, and + surround uses of the function with:<br> + \#ifdef HAVE_MISSINGFUNCTION<br> + ... <br> + \#endif<br> + where the macro HAVE_MISSINGFUNCTION is (or is not) defined in + config.h.<br><br> + -# Now that you have a working build environment, you have to + replace the 'stub' function calls provided in this file.<br><br> + Provide the functions defined in this file by fleshing out the + skeletons below. You can entirely eliminate the function + 'unsupported()'.<br><br> + -# Contact smartmontools-support@lists.sourceforge.net to see + about checking your code into the smartmontools SVN archive. + + <hr> + @subsection device_type-interface Interfaces For The Different Device Types + As the smartmontools have to handle different types of devices, + we have multiple device drivers. + + The outside view presents only the interface classes: + - smart_device + - ata_device + - scsi_device + - smart_interface (The Factory) + + <hr> + + @subsection ata-driver ATA Devices + In this case we access the device via ATA pass through in native mode.<br><br> + By the help of <b>ata_device_with_command_set</b> we currently integrate + the old os-specific legacy drivers, until they will be replaced by + their new implementations of ata_device or scsi_device. + @image html classata__device__with__command__set__coll__graph.png "Collaboration diagram for new ATA pass through old interface" + + <hr> + + @subsection scsi-driver SCSI Devices + Here we use the SCSI instruction set. + @image html classscsi__device__coll__graph.png "Collaboration diagram for SCSI devices" + @image latex classscsi__device__coll__graph.eps "Collaboration diagram for SCSI devices" + <hr> + + @subsection tunnel-driver Tunneling ATA via SCSI + If a controller understands ATA pass through SCSI, + we use this driver. + @image html classtunnelled__device__base__coll__graph.png "Collaboration diagram for tunneling protocols" + @image latex classtunnelled__device__base__coll__graph.eps "Collaboration diagram for tunneling protocols" +*/ + -- GitLab