| 584 | } |
| 585 | |
| 586 | class DiskStatReader { |
| 587 | public: |
| 588 | bool operator()(DiskStat* stat) const { |
| 589 | return read_disk_stat(stat); |
| 590 | } |
| 591 | template <typename T, size_t offset> |
| 592 | static T get_field(void*) { |
| 593 | return *(T*)((char*)&CachedReader<DiskStat>::get_value( |
| 594 | DiskStatReader()) + offset); |
| 595 | } |
| 596 | }; |
| 597 | |
| 598 | #define BVAR_DEFINE_DISK_STAT_FIELD(field) \ |
| 599 | PassiveStatus<BVAR_MEMBER_TYPE(&DiskStat::field)> g_##field( \ |