This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH RFA: Split stack [6/7]: libgcc
Hello Ian,
a couple of minor nits:
* Ian Lance Taylor wrote on Thu, Sep 23, 2010 at 01:20:12AM CEST:
> --- gcc/doc/libgcc.texi (revision 164490)
> +++ gcc/doc/libgcc.texi (working copy)
> +@subsection Split stack functions and variables
> +@deftypefn {Runtime Function} {void *} __splitstack_find (void *@var{segment_arg}, void *@var{sp}, size_t @var{len}, void **@var{next_segment}, void **@var{next_sp}, void **@var{initial_sp})
You can line-wrap @deftypefn lines using a single @ right before the
newline.
> +When using @option{-fsplit-stack}, this call may be used to iterate
> +over the stack segments. It may be called like this:
> +@smallexample
> + void *next_segment = NULL;
> + void *next_sp = NULL;
> + void *initial_sp = NULL;
> + void *stack;
> + size_t stack_size;
> + while ((stack = __splitstack_find (next_segment, next_sp,
> + &stack_size, &next_segment,
> + &next_sp, &initial_sp))
> + != NULL)
> + @{
> + /* Stack segment starts at stack and is
> + stack_size bytes long. */
> + @}
> +@end smallexample
> +
> +There is no way to iterate over the stack segments of a different
> +thread. However, what is permitted is for one thread to call this
> +with the @var{segment_arg} and @var{sp} arguments NULL, to pass
> +@var{next_segment}, @var{next_sp}, and @var{initial_sp} to a different
> +thread, and then to suspend one way or another. A different thread
> +may run the subsequent @code{__splitstack_find} iterations. Of
> +course, this will only work if the first thread is suspend while the
suspended
> +second thread is calling @code{__splitstack_find}. If not, the second
> +thread could be looking at the stack while it is changing, and
> +anything could happen.
> +@end deftypefn
> +
> +@defvar __morestack_segments
> +@defvarx __morestack_current_segment
> +@defvarx __morestack_initial_sp
> +Internal variables used by the @option{-fsplit-stack} implementation.
> +@end defvar
Cheers,
Ralf