gem5  v22.1.0.0
Classes | Namespaces | Macros | Typedefs | Functions
bitunion.hh File Reference
#include <functional>
#include <iostream>
#include <type_traits>
#include <typeinfo>
#include "base/bitfield.hh"
#include "base/compiler.hh"
#include "sim/serialize_handlers.hh"

Go to the source code of this file.

Classes

class  gem5::BitfieldTypeImpl< Base >
 
struct  gem5::BitfieldTypeImpl< Base >::TypeDeducer
 
struct  gem5::BitfieldTypeImpl< Base >::TypeDeducer::T< void(C::*)(Type1 &, Type2)>
 
struct  gem5::BitfieldTypeImpl< Base >::TypeDeducer::Wrapper
 
class  gem5::BitfieldType< Base >
 
class  gem5::BitfieldROType< Base >
 
class  gem5::BitfieldWOType< Base >
 
class  gem5::bitfield_backend::Unsigned< Storage, first, last >
 
class  gem5::bitfield_backend::Signed< Storage, first, last >
 
class  gem5::bitfield_backend::BitfieldTypes< Storage >
 
class  gem5::bitfield_backend::BitUnionOperators< Base >
 
struct  gem5::bitfield_backend::BitUnionBaseType< T >
 
struct  gem5::bitfield_backend::BitUnionBaseType< BitUnionType< T > >
 
struct  gem5::ParseParam< BitUnionType< T > >
 
struct  gem5::ShowParam< BitUnionType< T > >
 
struct  std::hash< gem5::BitUnionType< T > >
 

Namespaces

 gem5
 Reference material can be found at the JEDEC website: UFS standard http://www.jedec.org/standards-documents/results/jesd220 UFS HCI specification http://www.jedec.org/standards-documents/results/jesd223.
 
 gem5::bitfield_backend
 
 std
 Overload hash function for BasicBlockRange type.
 

Macros

#define __BitUnion(type, name)
 
#define EndBitUnion(name)
 This closes off the class and union started by the above macro. More...
 
#define __SubBitUnion(name, fieldType, ...)
 
#define EndSubBitUnion(name)
 This closes off the union created above and gives it a name. More...
 
#define SubBitUnion(name, first, last)    __SubBitUnion(name, Bitfield, first, last)
 Regular bitfields These define macros for read/write regular bitfield based subbitfields. More...
 
#define SignedSubBitUnion(name, first, last)    __SubBitUnion(name, SignedBitfield, first, last)
 Regular bitfields These define macros for read/write regular bitfield based subbitfields. More...
 
#define BitUnion(type, name)   __BitUnion(type, name)
 Use this to define an arbitrary type overlayed with bitfields. More...
 
#define BitUnion64(name)   __BitUnion(uint64_t, name)
 Use this to define conveniently sized values overlayed with bitfields. More...
 
#define BitUnion32(name)   __BitUnion(uint32_t, name)
 
#define BitUnion16(name)   __BitUnion(uint16_t, name)
 
#define BitUnion8(name)   __BitUnion(uint8_t, name)
 

Typedefs

template<typename T >
using gem5::BitUnionType = bitfield_backend::BitUnionOperators< T >
 
template<typename T >
using gem5::BitUnionBaseType = typename bitfield_backend::BitUnionBaseType< T >::Type
 

Functions

template<typename T >
static std::ostream & gem5::bitfield_backend::bitfieldBackendPrinter (std::ostream &os, const T &t)
 
template<>
std::ostream & gem5::bitfield_backend::bitfieldBackendPrinter (std::ostream &os, const char &t)
 
template<>
std::ostream & gem5::bitfield_backend::bitfieldBackendPrinter (std::ostream &os, const unsigned char &t)
 
template<typename T >
std::ostream & gem5::operator<< (std::ostream &os, const BitUnionType< T > &bu)
 A default << operator which casts a bitunion to its underlying type and passes it to bitfield_backend::bitfieldBackendPrinter. More...
 

Macro Definition Documentation

◆ __BitUnion

#define __BitUnion (   type,
  name 
)
Value:
class BitfieldUnderlyingClasses##name : \
{ \
protected: \
typedef type __StorageType; \
gem5::bitfield_backend::BitUnionOperators< \
BitfieldUnderlyingClasses##name> >; \
BitfieldUnderlyingClasses##name>; \
public: \
union { \
type __storage;
const std::string & name()
Definition: trace.cc:49

Definition at line 405 of file bitunion.hh.

◆ __SubBitUnion

#define __SubBitUnion (   name,
  fieldType,
  ... 
)
Value:
class \
{ \
public: \
union { \
fieldType<__VA_ARGS__> __storage;

Definition at line 439 of file bitunion.hh.

◆ BitUnion16

#define BitUnion16 (   name)    __BitUnion(uint16_t, name)

Definition at line 496 of file bitunion.hh.

◆ BitUnion32

#define BitUnion32 (   name)    __BitUnion(uint32_t, name)

Definition at line 495 of file bitunion.hh.

◆ BitUnion8

#define BitUnion8 (   name)    __BitUnion(uint8_t, name)

Definition at line 497 of file bitunion.hh.


Generated on Wed Dec 21 2022 10:22:53 for gem5 by doxygen 1.9.1