/**
 * @defgroup api_drain The Drain API.
 *
 * These methods relate to the "Drainable" interface.
 */

/**
 * @defgroup api_serialize The Serialize API.
 *
 * These methods related to the "Serialize" interface.
 */

/**
 * @defgroup api_eventq The Event Queue API.
 *
 * These methods relate to the event queue interface.
 */

/**
 * @defgroup api_stats The Stats API.
 *
 * These methods relate to the statistics I/O interface.
 */

/**
 * @defgroup api_simobject The SimObject API.
 *
 * These methods relate to the SimObject interface.
 */

/**
 * @defgroup api_addr_range The AddrRange API.
 *
 * These methods relate to the AddrRange and AddrRangeMap interfaces.
 */

/**
 * @defgroup api_atomic_op The AtomicOpFunctor API.
 *
 * These methods relate to the AtomicOpFunctor and the related interfaces.
 */

/**
 * @defgroup api_bitfield The bit manipulating API.
 *
 * These are a collection of methods for bit manipulations.
 */

/**
 * @defgroup api_bitunion The BitUnion API.
 *
 * These are a collection of methods and macros of the BitUnion system of
 * defining bitfields on top of an underlying class.
 */

/**
 * @defgroup api_base_utils The utility functions and constants API.
 *
 * These are a collection of utility functions and constants defined in
 * src/base.
 */

/**
 * @defgroup api_callback The CallbackQueue API.
 *
 * These methods relate to the CallbackQueue interface.
 */

/**
 * @defgroup api_channel_addr The ChannelAddr and ChannelAddrRange API.
 *
 * These methods relate to the interface of ChannelAddr and ChannelAddrRange.
 */

/**
 * @defgroup api_chunk_generator The ChunkGenerator API.
 *
 * These methods relate to the ChunkGenerator interface.
 */

/**
 * @defgroup api_coroutine The Coroutine API.
 *
 * These methods relate to the Coroutine interface.
 */

/**
 * @defgroup api_fiber The Fiber API.
 *
 * These methods relate to the Fiber interface.
 */

/**
 * @defgroup api_flags The Flags API.
 *
 * These methods relate to the Flags interface.
 */

/**
 * @defgroup api_inet The inet API.
 *
 * These methods relate to EthAddr, IpAddress, TCP, UDP interfaces.
 */

/**
 * @defgroup api_logger The Logger API.
 *
 * These methods and macros provide access to gem5's logging system.
 */

/**
 * @defgroup api_poll_event The PollEvent API.
 *
 * These methods relate to the PollEvent interface.
 */

/**
 * @defgroup api_poll_queue The PollQueue API.
 *
 * These methods relate to the PollQueue interface.
 */

/**
 * @defgroup api_remote_gdb The RemoteGDB API.
 *
 * These methods relate to the BaseRemoteGDB and BaseGdbRegCache interfaces.
 */

/**
 * @defgroup api_sat_counter The SatCounter API.
 *
 * These methods relate to the SatCounter interface.
 */

/**
 * @defgroup api_socket The Socket API.
 *
 * These methods relate to the Socket interface.
 */

/**
 * @defgroup api_stl_helpers The C++ STL helpers API.
 *
 * These are methods providing additional functionality to C++ STL.
 */

/**
 * @defgroup api_trace The Trace API.
 *
 * These methods relate to the selective debugging trace facility.
 */
