Update documentation, fix EXT2 inode selection bug
diff --git a/doc/Makefile b/doc/Makefile
index 6f05775..869b207 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -17,11 +17,6 @@
 watch:
 	sphinx-autobuild "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
 
-dox: doxygen
-doxygen:
-	doxygen lisp.doxyfile
-	doxygen kernel.doxyfile
-
 # Catch-all target: route all unknown targets to Sphinx using the new
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
 %: Makefile
diff --git a/doc/architecture.rst b/doc/architecture.rst
index b946a54..5cdc414 100644
--- a/doc/architecture.rst
+++ b/doc/architecture.rst
@@ -42,11 +42,8 @@
 ~~~~~~~~~~~~~~~~~~
 
 PCI device drivers must register a ``struct pci_device_driver`` in order to
-interface with a certain device (or class of devices). The relevant fields of
-``struct pci_device_driver`` are shown here:
-
-.. doxygenstruct:: pci_device_driver
-    :project: Kernel
+interface with a certain device (or class of devices). See
+``include/kernel/dri/pci/pci.h`` for details.
 
 A PCI device driver must pass an instance of this structure to
 ``pci_register_device_driver`` (in ``include/kernel/dri/pci/pci.h``. If
diff --git a/doc/build.rst b/doc/build.rst
index 3826238..3150dc7 100644
--- a/doc/build.rst
+++ b/doc/build.rst
@@ -37,3 +37,18 @@
 
 There are some additional dependencies for building a GRUB ISO but I don't
 remember them at the time of writing.
+
+Common Issues
+-------------
+
+If when launching Bluejay in QEMU with ``make qemu`` you see the message ::
+
+    [ DEBUG ] mb.mods_addr = <whatever>, 0x<whatever>
+
+Followed by a page fault (``#PF``), your QEMU is out of date. You can either run
+the GRUB ISO (with ``make qemu-iso``), which is slower, or upgrade your QEMU to
+at least version 6.0.
+
+This is because prior to 6.0 QEMU's integrated bootloader did not support
+multiboot modules. This message is caused by the kernel attempting to read a
+module that was loaded incorrectly.
diff --git a/doc/conf.py b/doc/conf.py
index 39e52ea..0a41b0a 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -16,11 +16,6 @@
 	'breathe'
 ]
 
-breathe_projects = {
-	'Kernel': '_dox_kernel/xml',
-	'Lisp': '_dox_lisp/xml'
-}
-
 breathe_default_project = 'Kernel'
 
 templates_path = ['_templates']
@@ -30,6 +25,3 @@
 html_theme = 'sphinx_rtd_theme'
 
 html_static_path = ['_static']
-
-def setup(app):
-	app.add_stylesheet('custom.css')
diff --git a/doc/filesystem.rst b/doc/filesystem.rst
index df5373e..3632c6f 100644
--- a/doc/filesystem.rst
+++ b/doc/filesystem.rst
@@ -21,3 +21,30 @@
 very low-level API for dealing with files -- including the usual read(),
 write(), readdir(), etc -- but this should not be used for much longer. A high
 level API utilizing file descriptors will be implemented to make this simpler.
+
+Filesystem Drivers
+------------------
+
+The current filesystem driver(s) available in Bluejay are:
+
+- ``ext2``
+    - Read-only support, write support is in progress
+
+Creating a Virtual Drive in QEMU
+--------------------------------
+
+By default ``make qemu`` will load ``hd0_$(FS).img`` as the virtual hard drive
+for Bluejay. ``FS`` defaults to ``ext2`` but can be set in your ``Jmk.options``
+to any value. If this file does not exist it will be created using
+``mkfs.$(FS)``, ie ``mkfs.ext2`` by default. The default size of the file system
+is 35 megabytes, although you can create one of any size manually if you want.
+35 megabytes is plenty for testing though.
+
+The ``make mount`` command will mount the current virtual hard drive in
+``$(ROOT)/mnt`` (where ``$(ROOT)`` is the root directory of the Bluejay sources,
+not ``/``). This command requires superuser privileges. If you want to give your
+(host) user account write permissions use ``chown -R user:group /path/to/mnt``
+where ``user`` and ``group`` are the user and group you want to own the files.
+
+Currently Bluejay ignores file permissions so it doesn't matter who you set the
+owner to.
diff --git a/doc/index.rst b/doc/index.rst
index ca3da7b..90900ce 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -14,9 +14,7 @@
    architecture
    filesystem
    lisp-std
-   lisp-api
    logging
-   kernel-api
 
 Bluejay is an operating system inspired by UNIX and early Lisp machines.
 Currently it only targets x86. There are no plans to port to other platforms.
diff --git a/doc/kernel-api.rst b/doc/kernel-api.rst
deleted file mode 100644
index e609259..0000000
--- a/doc/kernel-api.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-Kernel API Docs
-===============
-
-.. doxygenindex::
-	:project: Kernel
diff --git a/doc/lisp-api.rst b/doc/lisp-api.rst
deleted file mode 100644
index d9c9abf..0000000
--- a/doc/lisp-api.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Lisp C API Docs
-===============
-
-.. doxygenindex::
-	:project: Lisp
-
diff --git a/doc/make.bat b/doc/make.bat
deleted file mode 100644
index 2119f51..0000000
--- a/doc/make.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@ECHO OFF

-

-pushd %~dp0

-

-REM Command file for Sphinx documentation

-

-if "%SPHINXBUILD%" == "" (

-	set SPHINXBUILD=sphinx-build

-)

-set SOURCEDIR=.

-set BUILDDIR=_build

-

-if "%1" == "" goto help

-

-%SPHINXBUILD% >NUL 2>NUL

-if errorlevel 9009 (

-	echo.

-	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx

-	echo.installed, then set the SPHINXBUILD environment variable to point

-	echo.to the full path of the 'sphinx-build' executable. Alternatively you

-	echo.may add the Sphinx directory to PATH.

-	echo.

-	echo.If you don't have Sphinx installed, grab it from

-	echo.http://sphinx-doc.org/

-	exit /b 1

-)

-

-%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

-goto end

-

-:help

-%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

-

-:end

-popd