> "The mark routine will be called by the garbage collector during its
> ``mark'' phase...", "...mark function needs to identify these objects
> using rb_gc_mark(value)."
>
> But "my structure" is not my and it does not "know" anything about Ruby.
> The structure references other C-structures wrapped by Ruby objects. How
> can I determine the value of the referenced C-structures while I have
> only a pointer to the containing C-structure? I need at least VALUE of
> the latter.

You're going to have to maintain some mapping from those C struct pointers
to the corresponding Ruby objects; I don't think there's any way around
that. In FXRuby I use an STL map to store these pairs but any kind of
dictionary ADT would do the trick.