The Pedigree Project  0.1
Public Types | Public Attributes | List of all members
LiteInstrumentationRecord Union Reference

#include <instrument.h>

+ Collaboration diagram for LiteInstrumentationRecord:

Public Types

typedef uintptr_t lite
 For SFINAE expansion in data processing.
 

Public Attributes

struct {
   uint32_t   function
 
data
 
uint8_t buffer [sizeof(data)]
 

Detailed Description

LiteInstrumentationRecord only writes each entered function's address to the instrumentation stream, which can be a relatively significant improvement in performance.

This is done at the cost of flexibility (because there's no flags), and at the cost of integrity (because there's no magic number for verification).

Definition at line 60 of file instrument.h.

Member Data Documentation

uint32_t LiteInstrumentationRecord::function

The kernel is always going to have 32 one bits as the first part of the code addresses it works with, including module code. So, we can write even less data (improving performance) for lite records by simply writing the lower 32 bits of the address.

Definition at line 70 of file instrument.h.


The documentation for this union was generated from the following file: