]> git.saurik.com Git - apple/xnu.git/blobdiff - iokit/IOKit/IOInterruptAccountingPrivate.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / iokit / IOKit / IOInterruptAccountingPrivate.h
index b1dd7e369229b8f0c9d7cb4b7a6692ab5ebfdfd8..ca42aa7f29de47f68cb72b4fd99a2241c2c5acff 100644 (file)
@@ -134,13 +134,13 @@ static const char * const kInterruptAccountingStatisticNameArray[IA_NUM_INTERRUP
  * two processors at once (and the interrupt should serve to force out stores), and the second level
  * handler should be synchonized by the work loop it runs on.
  */
-#if __x86_64__ || __arm64
+#if __x86_64__ || __arm64__
 #define IA_ADD_VALUE(target, value) \
     (*(target) += (value))
-#else
+#else /* !(__x86_64__ || __arm64__) */
 #define IA_ADD_VALUE(target, value) \
     (OSAddAtomic64((value), (target)))
-#endif
+#endif /* !(__x86_64__ || __arm64__) */
 
 /*
  * TODO: Should this be an OSObject?  Or properly pull in its methods as member functions?
@@ -160,6 +160,9 @@ struct IOInterruptAccountingData {
         */
        int interruptIndex;
 
+       bool enablePrimaryTimestamp;
+       volatile uint64_t primaryTimestamp __attribute__((aligned(8)));
+
        /*
         * As long as we are based on the simple reporter, all our channels will be 64 bits.  Align the data
         * to allow for safe atomic updates (we don't want to cross a cache line on any platform, but for some