Bitfields and tagged unions in C: verification through automatic generation

Authors

David Cock

    School of Computer Science and Engineering
    University of New South Wales
    Sydney 2052 Australia
    
    NICTA, Sydney, Australia

Abstract

We present a tool for automatic generation of packed bitfields and tagged unions for systems-level C, along with automatic, machine checked refinement proofs in Isabelle/HOL. Our approach provides greater predictability than compiler-specific bitfield implementations, and provides a basis for formal reasoning about these typically non-type-safe operations. The tool is used in the implementation of the seL4 microkernel, and hence also in the lowest-level refinement step of the L4.verified pro ject which aims to prove the functional correctness of seL4. Within seL4, it has eliminated the need for unions entirely.

BibTeX Entry

  @inproceedings{Cock_08,
    title            = {Bitfields and Tagged Unions in {C}: Verification through Automatic Generation},
    series           = {{CEUR} Workshop Proceedings},
    booktitle        = {Proceedings of the 5th International Verification Workshop},
    author           = {David Cock},
    year             = {2008},
    month            = {Aug},
    volume           = {372},
    editor           = {Bernhard Beckert and Gerwin Klein},
    address          = {Sydney, Australia},
    pages            = {44--55}
  }

Download

Served by Apache on Linux on seL4