src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp
changeset 58132 caa25ab47aca
parent 53244 9807daeb47c4
child 58133 515fc9f6b2d6
equal deleted inserted replaced
58131:3054503bad7d 58132:caa25ab47aca
    41 #define REMOVE_ID(k) JfrTraceId::remove(k);
    41 #define REMOVE_ID(k) JfrTraceId::remove(k);
    42 #define RESTORE_ID(k) JfrTraceId::restore(k);
    42 #define RESTORE_ID(k) JfrTraceId::restore(k);
    43 
    43 
    44 class JfrTraceFlag {
    44 class JfrTraceFlag {
    45  private:
    45  private:
    46   mutable jbyte _flags;
    46   mutable jshort _flags;
    47  public:
    47  public:
    48   JfrTraceFlag() : _flags(0) {}
    48   JfrTraceFlag() : _flags(0) {}
    49   explicit JfrTraceFlag(jbyte flags) : _flags(flags) {}
    49   bool is_set(jshort flag) const {
    50   void set_flag(jbyte flag) const {
       
    51     _flags |= flag;
       
    52   }
       
    53   void clear_flag(jbyte flag) const {
       
    54     _flags &= (~flag);
       
    55   }
       
    56   jbyte flags() const { return _flags; }
       
    57   bool is_set(jbyte flag) const {
       
    58     return (_flags & flag) != 0;
    50     return (_flags & flag) != 0;
    59   }
    51   }
    60   jbyte* const flags_addr() const {
    52 
    61     return &_flags;
    53   jshort flags() const {
       
    54     return _flags;
       
    55   }
       
    56 
       
    57   void set_flags(jshort flags) const {
       
    58     _flags = flags;
       
    59   }
       
    60 
       
    61   jbyte* flags_addr() const {
       
    62     return (jbyte*)&_flags;
       
    63   }
       
    64   jbyte* meta_addr() const {
       
    65     return ((jbyte*)&_flags) + 1;
    62   }
    66   }
    63 };
    67 };
    64 
    68 
    65 #define DEFINE_TRACE_FLAG mutable JfrTraceFlag _trace_flags
    69 #define DEFINE_TRACE_FLAG mutable JfrTraceFlag _trace_flags
    66 
    70 
    67 #define DEFINE_TRACE_FLAG_ACCESSOR                 \
    71 #define DEFINE_TRACE_FLAG_ACCESSOR                 \
    68   void set_trace_flag(jbyte flag) const {          \
    72   bool is_trace_flag_set(jshort flag) const {      \
    69     _trace_flags.set_flag(flag);                   \
    73     return _trace_flags.is_set(flag);              \
    70   }                                                \
    74   }                                                \
    71   jbyte trace_flags() const {                      \
    75   jshort trace_flags() const {                     \
    72     return _trace_flags.flags();                   \
    76     return _trace_flags.flags();                   \
    73   }                                                \
    77   }                                                \
    74   bool is_trace_flag_set(jbyte flag) const {       \
    78   void set_trace_flags(jshort flags) const {       \
    75     return _trace_flags.is_set(flag);              \
    79     _trace_flags.set_flags(flags);                 \
    76   }                                                \
    80   }                                                \
    77   jbyte* const trace_flags_addr() const {          \
    81   jbyte* trace_flags_addr() const {                \
    78     return _trace_flags.flags_addr();              \
    82     return _trace_flags.flags_addr();              \
       
    83   }                                                \
       
    84   jbyte* trace_meta_addr() const {                 \
       
    85     return _trace_flags.meta_addr();               \
    79   }
    86   }
    80 
    87 
    81 #endif // SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP
    88 #endif // SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP