From 8744faff12dda80e67a31331b72caf682a2beebf Mon Sep 17 00:00:00 2001 From: Gareth Rees Date: Mon, 22 Oct 2012 23:00:21 +0100 Subject: [PATCH] Add note about semi-opaque structure types. Copied from Perforce Change: 180018 ServerID: perforce.ravenbrook.com --- mps/manual/source/topic/interface.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mps/manual/source/topic/interface.rst b/mps/manual/source/topic/interface.rst index 02bee822f7a..941924cb9b9 100644 --- a/mps/manual/source/topic/interface.rst +++ b/mps/manual/source/topic/interface.rst @@ -78,6 +78,13 @@ Types mps_arena_s *``, but the implementation of ``struct mps_arena_s`` is not public. + There are a few structure types that are declared in ``mps.h`` but + whose implementation is not public. These only exist so that code + can be inlined using macros. The most important of these is the + :term:`scan state` structure ``mps_ss_s``, which is accessed by + scanning macros such as :c:func:`MPS_SCAN_BEGIN` and + :c:func:`MPS_FIX12`. + 4. A *derived type* is a structure or function type based on transparent and opaque types and on built-in C types. The degree to which you may or must depend upon the implementation of a