package frama-c

  1. Overview
  2. Docs

doc/mthread/Mthread/Mt_types/index.html

Module Mthread.Mt_typesSource

Kind of access to zones

Sourcetype rw =
  1. | Read
  2. | Write of Frama_c_kernel.Locations.location
  3. | ReadAloc of Eva__.Analysis_location.t
  4. | WriteAloc of Eva__.Analysis_location.t
Sourcemodule RW : sig ... end

Multithread events

Sourcetype event =
  1. | CreateThread of Eva__.Thread.t
  2. | StartThread of Eva__.Thread.t
  3. | SuspendThread of Eva__.Thread.t
  4. | CancelThread of Eva__.Thread.t
  5. | ThreadExit of Mt_memory.Types.value
  6. | MutexLock of Eva__.Mutex.t
  7. | MutexRelease of Eva__.Mutex.t
  8. | CreateQueue of Eva__.Mqueue.t * int option
  9. | SendMsg of Eva__.Mqueue.t * Mt_memory.Types.slice * int
    (*

    SendMsg(q, (msg, size))

    • q: the queue
    • msg: content of the message
    • size: size of the message
    *)
  10. | ReceiveMsg of Eva__.Mqueue.t * Mt_memory.Types.pointer * int
    (*

    ReceiveMsg(q, ptr, size)

    • q: the queue
    • ptr: loc to which the message must be written
    • size: max size to read
    *)
  11. | VarAccess of rw * Frama_c_kernel.Locations.Zone.t
    (*

    Access to some shared variables

    *)
  12. | Dummy of string * Mt_memory.Types.value list
Sourcemodule Event : sig ... end

Maps from statements to multithread events, together with the context in which they occur

Sourcemodule EventsSet : sig ... end
Sourcetype events_set = EventsSet.t
Sourcemodule Trace : sig ... end

Execution trace, mapping execution stacks to sets of events occurring at this point

Live threads/taken mutexes at a given point of execution

Sourcetype presence_flag =
  1. | NotPresent
  2. | Present
  3. | MaybePresent
Sourcemodule type Presence = sig ... end
Sourcemodule ThreadPresence : Presence with type key = Eva__.Thread.t and module KeySet = Eva__Private.Thread.Set
Sourcemodule MutexPresence : Presence with type key = Eva__.Mutex.t and module KeySet = Eva__Private.Mutex.Set
OCaml

Innovation. Community. Security.