From 624aa80f8478a9beb3ee9497a535a80ec2d42638 Mon Sep 17 00:00:00 2001
From: zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Wed, 13 May 2009 08:58:08 +0000
Subject: [PATCH] Commit skeleton files for high-level developer manual using
 doxygen.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1771 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 Doxyfile              |  7 ++++--
 doc/Makefile.am       |  4 ++++
 doc/manual/app.txt    |  9 ++++++++
 doc/manual/flash.txt  | 35 +++++++++++++++++++++++++++++
 doc/manual/helper.txt | 48 ++++++++++++++++++++++++++++++++++++++++
 doc/manual/jtag.txt   | 39 +++++++++++++++++++++++++++++++++
 doc/manual/main.txt   | 45 ++++++++++++++++++++++++++++++++++++++
 doc/manual/server.txt | 30 +++++++++++++++++++++++++
 doc/manual/target.txt | 51 +++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 266 insertions(+), 2 deletions(-)
 create mode 100644 doc/manual/app.txt
 create mode 100644 doc/manual/flash.txt
 create mode 100644 doc/manual/helper.txt
 create mode 100644 doc/manual/jtag.txt
 create mode 100644 doc/manual/main.txt
 create mode 100644 doc/manual/server.txt
 create mode 100644 doc/manual/target.txt

diff --git a/Doxyfile b/Doxyfile
index f75d72fe9..fbc39ccbc 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -564,7 +564,9 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT                  = config.h src
+INPUT                  = doc/manual \
+                         src \
+                         config.h
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -582,7 +584,8 @@ INPUT_ENCODING         = UTF-8
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 
 FILE_PATTERNS          = *.h \
-                         *.c
+                         *.c \
+			 *.txt
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories
 # should be searched for input files as well. Possible values are YES and NO.
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 6bc2ea880..e85ed7520 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -3,4 +3,8 @@ openocd_TEXINFOS = fdl.texi
 man_MANS = openocd.1
 EXTRA_DIST = openocd.1
 
+dist-hook:
+	mkdir $(distdir)/manual
+	cp -p $(srcdir)/manual/*.txt $(distdir)/manual
+
 MAINTAINERCLEANFILES = Makefile.in mdate-sh texinfo.tex
diff --git a/doc/manual/app.txt b/doc/manual/app.txt
new file mode 100644
index 000000000..989e6e67d
--- /dev/null
+++ b/doc/manual/app.txt
@@ -0,0 +1,9 @@
+/** @page appdocs OpenOCD Application APIs
+
+The top-level APIs in the OpenOCD library allow applications to integrate
+all of the low-level functionality using a set of simple function calls.
+
+These function calls do not exist in a re-usable form, but
+contributions to create and document them will be welcome.
+
+ */
diff --git a/doc/manual/flash.txt b/doc/manual/flash.txt
new file mode 100644
index 000000000..dbc4b94bf
--- /dev/null
+++ b/doc/manual/flash.txt
@@ -0,0 +1,35 @@
+/** @page flashdocs OpenOCD Flash APIs
+
+OpenOCD provides its Flash APIs for developers to support different
+types of flash devices, some of which are built-in to target devices
+while others may be connected via standard memory interface (e.g. CFI,
+FMI, etc.).
+
+The Flash module provides the following APIs:
+
+  - @subpage flashcfi 
+  - @subpage flashnand
+  - @subpage flashtarget
+
+This section needs to be expanded.
+
+*/
+
+
+/** @page flashcfi OpenOCD CFI Flash API
+
+This section needs to be expanded to describe OpenOCD's CFI Flash API.
+
+*/
+
+/** @page flashnand OpenOCD NAND Flash API
+
+This section needs to be expanded to describe OpenOCD's NAND Flash API.
+
+*/
+
+/** @page flashtarget OpenOCD Target Flash API
+
+This section needs to be expanded to describe OpenOCD's Target Flash API.
+
+*/
diff --git a/doc/manual/helper.txt b/doc/manual/helper.txt
new file mode 100644
index 000000000..91bf2d51b
--- /dev/null
+++ b/doc/manual/helper.txt
@@ -0,0 +1,48 @@
+/** @page helperdocs OpenOCD Helper APIs
+
+OpenOCD uses several low-level APIs as the foundation for high-level APIs:
+
+  - @subpage helperporting
+  - @subpage helperjim
+  - @subpage helpercommand
+  - @subpage helperlogging
+  - @subpage helperbuffers
+
+This section needs to be expanded.
+
+ */
+
+/** @page helperporting OpenOCD Types/Portability APIs
+
+This section needs to be expanded to describe OpenOCD's type and
+portability API.
+
+ */
+
+/** @page helperjim OpenOCD Jim API
+
+The Jim API provides access to a small-footprint TCL implementation.
+
+Visit http://jim.berlios.de/ for more information on Jim.
+
+This section needs to be expanded to describe OpenOCD's Jim API.
+
+ */
+
+/** @page helpercommand OpenOCD Command API
+
+This section needs to be expanded to describe OpenOCD's Command API.
+
+ */
+
+/** @page helperlogging OpenOCD Logging API
+
+This section needs to be expanded to describe OpenOCD's Logging API.
+
+ */
+
+/** @page helperbuffers OpenOCD Byte Buffer API
+
+This section needs to be expanded to describe OpenOCD's Byte Buffer API.
+
+ */
diff --git a/doc/manual/jtag.txt b/doc/manual/jtag.txt
new file mode 100644
index 000000000..b2e5b1946
--- /dev/null
+++ b/doc/manual/jtag.txt
@@ -0,0 +1,39 @@
+/** @page jtagdocs OpenOCD JTAG APIs
+
+This document contains @subpage jtagprimer, which introduces the
+IEEE JTAG interface.
+
+The OpenOCD JTAG library API covers several functional areas:
+
+  - @subpage jtagcable
+  - @subpage jtagtap
+  - @subpage jtagmdriver
+  - @subpage jtagdriver
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagcable OpenOCD JTAG Cable API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagtap OpenOCD JTAG TAP API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagmdriver OpenOCD JTAG Interface API
+
+This section needs to be expanded.
+
+ */
+
+/** @page jtagdriver OpenOCD JTAG Driver API
+
+This section needs to be expanded.
+
+ */
diff --git a/doc/manual/main.txt b/doc/manual/main.txt
new file mode 100644
index 000000000..9a476e349
--- /dev/null
+++ b/doc/manual/main.txt
@@ -0,0 +1,45 @@
+/** @mainpage OpenOCD Reference Manual
+
+The @ref primer page provides introductory materials for new developers.
+
+The @ref oocd page explains how the code has been organized into layers
+of APIs and gives an overview of how they fit together.
+ 
+ */
+
+/** @page oocd OpenOCD Architecture
+
+The OpenOCD library consists of several APIs that build together to
+provide the support functionality.  The following list shows how these
+modules are stacked in the current implementation (from bottom to top):
+
+- @subpage helperdocs
+  - @ref helperporting
+  - @ref helperjim
+  - @ref helpercommand
+  - @ref helperlogging
+- @subpage jtagdocs
+  - @ref jtagcable
+  - @ref jtagtap
+  - @ref jtagmdriver
+  - @ref jtagdriver
+- @subpage targetdocs
+  - @ref targetarm
+  - @ref targetnotarm
+  - @ref targetregister
+  - @ref targetimage
+  - @ref targettrace
+- @subpage flashdocs
+  - @ref flashcfi
+  - @ref flashnand
+  - @ref flashtarget
+- @subpage serverdocs
+  - @ref servergdb
+  - @ref servertelnet
+  - @ref serverhttp
+- @subpage appdocs
+
+Obviously, there are some nuances to the stack that are not shown by
+this linear list of layers.
+
+ */
diff --git a/doc/manual/server.txt b/doc/manual/server.txt
new file mode 100644
index 000000000..2379a93cb
--- /dev/null
+++ b/doc/manual/server.txt
@@ -0,0 +1,30 @@
+/** @page serverdocs OpenOCD Server APIs
+
+OpenOCD provides support for implementing different types of servers.
+Presently, the following servers have APIs that can be used.
+
+  - @subpage servergdb
+  - @subpage servertelnet
+  - @subpage serverhttp
+
+This section needs to be expanded.
+
+ */
+
+/** @page servergdb OpenOCD GDB Server API
+
+This section needs to be expanded.
+
+ */
+
+/** @page servertelnet OpenOCD Telnet Server API
+
+This section needs to be expanded.
+
+ */
+
+/** @page serverhttp OpenOCD HTTP Server API
+
+This section needs to be expanded.
+
+ */
diff --git a/doc/manual/target.txt b/doc/manual/target.txt
new file mode 100644
index 000000000..26f770848
--- /dev/null
+++ b/doc/manual/target.txt
@@ -0,0 +1,51 @@
+/** @page targetdocs OpenOCD Target APIs
+
+OpenOCD provides its Target APIs to allow developers to provide trace and
+debugging support for specific device targets.  These primarily consist of
+ARM cores, but other types have been supported.  New targets should be
+developed by following or using these APIs.
+
+The Target Support module contains APIs that cover several functional areas:
+
+  - @subpage targetarm
+  - @subpage targetnotarm
+  - @subpage targetregister
+  - @subpage targetimage
+  - @subpage targettrace
+
+This section needs to be expanded.
+
+*/
+
+/** @page targetarm OpenOCD ARM Targets
+
+This section needs to describe OpenOCD's ARM target support.
+
+ */
+
+/** @page targetnotarm OpenOCD Non-ARM Targets
+
+This section needs to describe OpenOCD's non-ARM target support.
+
+ */
+
+/** @page targetregister OpenOCD Target Register API
+
+This section needs to describe OpenOCD's Target Register API, as
+provided by 'src/target/register.h'.
+
+ */
+
+/** @page targetimage OpenOCD Target Image API
+
+This section needs to describe OpenOCD's Target Image API, as provided
+by 'src/target/image.h'.
+
+ */
+
+/** @page targettrace OpenOCD Target Trace API
+
+This section needs to describe OpenOCD's Target Trace API, as provided
+by 'src/target/trace.h'.
+
+ */
-- 
GitLab