jon.recoil.org

Module Ast.Memory_barrier

type t =
  1. | SY
    (*

    full system barrier operation; the default; use this for dmb/dsb without arguments

    *)
  2. | LD
    (*

    waits only for loads to complete

    *)
  3. | ST
    (*

    waits only for stores to complete

    *)
  4. | ISH
    (*

    waits only for the inner sharable domain

    *)
  5. | ISHLD
    (*

    waits only for loads and only for the inner sharable domain

    *)
  6. | ISHST
    (*

    waits only for stores and only for the inner sharable domain

    *)
  7. | NSH
    (*

    only out to the point of unification

    *)
  8. | NSHLD
    (*

    waits only for loads and only out to the point of unification

    *)
  9. | NSHST
    (*

    only for stores to complete and only out to the point of unification

    *)
  10. | OSH
    (*

    only to the outer shareable domain

    *)
  11. | OSHLD
    (*

    waits only for loads and only to the outer shareable domain

    *)
  12. | OSHST
    (*

    waits only for stores and only to the outer shareable domain

    *)