Apache 2.0 is using ScanDoc to document the API's and global variables in the code. This will explain the basics of how to document using Scandoc. To start a scandoc block, use /** To end a scandoc block, use */ In the middle of the block, there are multiple tags we can use: Description of this functions purpose @param parameter_name description @tip Any information the programmer should know @deffunc function prototype. The deffunc is not always necessary. ScanDoc does not have a full parser in it, so any prototype that use a macro in the return type declaration is too complex for scandoc. Those functions require a deffunc. An example: /** * return the final element of the pathname * @param pathname The path to get the final element of * @return the final element of the path * @tip Examples: *
* "/foo/bar/gum" -> "gum" * "/foo/bar/gum/" -> "" * "gum" -> "gum" * "wi\\n32\\stuff" -> "stuff" ** @deffunc const char * ap_filename_of_pathname(const char *pathname) */ At the top of the header file, we always include /** * @package Name of library header */ ScanDoc uses a new html file for each package. The html files are named: Name of library header.html, so try to be concise with your names