/* * The maximum useful size of accesses for which we set up watchpoints is the * max range of slots we check on an access.
*/ #define MAX_ENCODABLE_SIZE (SLOT_RANGE * (1 + KCSAN_CHECK_ADJACENT))
/* * Number of bits we use to store size info.
*/ #define WATCHPOINT_SIZE_BITS bits_per(MAX_ENCODABLE_SIZE) /* * This encoding for addresses discards the upper (1 for is-write + SIZE_BITS); * however, most 64-bit architectures do not use the full 64-bit address space. * Also, in order for a false positive to be observable 2 things need to happen: * * 1. different addresses but with the same encoded address race; * 2. and both map onto the same watchpoint slots; * * Both these are assumed to be very unlikely. However, in case it still * happens, the report logic will filter out the false positive (see report.c).
*/ #define WATCHPOINT_ADDR_BITS (BITS_PER_LONG-1 - WATCHPOINT_SIZE_BITS)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.