Structure of version 1 mmstat’s mmaps:
version number | fields... |
---|---|
byte = 01 | ... |
There are two types of field structures so far in mmstats:
Buffered fields use multiple buffers for handling values which cannot be written atomically.
Unbuffered structures have ff in the write buffer field.
label size | label | type size | type | write buffer | buffer 1 | buffer 2 |
---|---|---|---|---|---|---|
ushort | char[] | ushort | char[] | byte | varies | varies |
The buffers field length = sizeof(type) * buffers.
The current write buffer is referenced by: write_buffer * sizeof(type)
TODO: field for total number of buffers?
label size | label | type size | type | write buffer | value |
---|---|---|---|---|---|
ushort | char[] | ushort | char[] | byte = ff | varies |
The value field length = sizeof(type).