base: Tag API methods and variables in bitunion.hh

Change-Id: I322645801e9832014f54d4ed633796b082b06c6b
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32958
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/base/bitunion.hh b/src/base/bitunion.hh
index 7af053e..bf183ae 100644
--- a/src/base/bitunion.hh
+++ b/src/base/bitunion.hh
@@ -121,6 +121,7 @@
     BitfieldType(const BitfieldType &) = default;
 
     operator Type () const { return Impl::operator Type(); }
+
     Type operator=(const Type val) { return Impl::operator=(val); }
     Type
     operator=(BitfieldType<Base> const & other)
@@ -321,10 +322,14 @@
         union { \
             type __storage;
 
-//This closes off the class and union started by the above macro. It is
-//followed by a typedef which makes "name" refer to a BitfieldOperator
-//class inheriting from the class and union just defined, which completes
-//building up the type for the user.
+/**
+ * This closes off the class and union started by the above macro. It is
+ * followed by a typedef which makes "name" refer to a BitfieldOperator
+ * class inheriting from the class and union just defined, which completes
+ * building up the type for the user.
+ *
+ * @ingroup api_bitunion
+ */
 #define EndBitUnion(name) \
         }; \
     }; \
@@ -343,11 +348,15 @@
         union { \
             fieldType<__VA_ARGS__> __storage;
 
-//This closes off the union created above and gives it a name. Unlike the top
-//level BitUnion, we're interested in creating an object instead of a type.
-//The operators are defined in the macro itself instead of a class for
-//technical reasons. If someone determines a way to move them to one, please
-//do so.
+/**
+ * This closes off the union created above and gives it a name. Unlike the top
+ * level BitUnion, we're interested in creating an object instead of a type.
+ * The operators are defined in the macro itself instead of a class for
+ * technical reasons. If someone determines a way to move them to one, please
+ * do so.
+ *
+ * @ingroup api_bitunion
+ */
 #define EndSubBitUnion(name) \
         }; \
         inline operator __StorageType () const \
@@ -357,20 +366,36 @@
         { return __storage = _storage;} \
     } name;
 
-//Regular bitfields
-//These define macros for read/write regular bitfield based subbitfields.
+/**
+ * Regular bitfields
+ * These define macros for read/write regular bitfield based subbitfields.
+ *
+ * @ingroup api_bitunion
+ */
 #define SubBitUnion(name, first, last) \
     __SubBitUnion(name, Bitfield, first, last)
 
-//Regular bitfields
-//These define macros for read/write regular bitfield based subbitfields.
+/**
+ * Regular bitfields
+ * These define macros for read/write regular bitfield based subbitfields.
+ *
+ * @ingroup api_bitunion
+ */
 #define SignedSubBitUnion(name, first, last) \
     __SubBitUnion(name, SignedBitfield, first, last)
 
-//Use this to define an arbitrary type overlayed with bitfields.
+/**
+ * Use this to define an arbitrary type overlayed with bitfields.
+ *
+ * @ingroup api_bitunion
+ */
 #define BitUnion(type, name) __BitUnion(type, name)
 
-//Use this to define conveniently sized values overlayed with bitfields.
+/**
+ * Use this to define conveniently sized values overlayed with bitfields.
+ *
+ * @ingroup api_bitunion
+ */
 #define BitUnion64(name) __BitUnion(uint64_t, name)
 #define BitUnion32(name) __BitUnion(uint32_t, name)
 #define BitUnion16(name) __BitUnion(uint16_t, name)
@@ -392,6 +417,9 @@
 
 //Also, BitUnionBaseType can be used on a BitUnion type directly.
 
+/**
+ * @ingroup api_bitunion
+ */
 template <typename T>
 using BitUnionType = BitfieldBackend::BitUnionOperators<T>;
 
@@ -410,6 +438,9 @@
     };
 }
 
+/**
+ * @ingroup api_bitunion
+ */
 template <typename T>
 using BitUnionBaseType = typename BitfieldBackend::BitUnionBaseType<T>::Type;
 
@@ -460,8 +491,12 @@
     }
 }
 
-//A default << operator which casts a bitunion to its underlying type and
-//passes it to BitfieldBackend::bitfieldBackendPrinter.
+/**
+ * A default << operator which casts a bitunion to its underlying type and
+ * passes it to BitfieldBackend::bitfieldBackendPrinter.
+ *
+ * @ingroup api_bitunion
+ */
 template <typename T>
 std::ostream &
 operator << (std::ostream &os, const BitUnionType<T> &bu)