bryce@hoser.berkeley.edu (Bryce Nesbitt) (01/21/88)
;NAME
; SetStack -- use a different process stack
; V1.0 Tuesday 19-Jan-88 04:14:15 By Bryce Nesbitt
;
;SYNOPSIS
; SetStack(newstack,size)
; a1 d0
;
; char *newstack;
; long size;
;
;FUNCTION
; This function points the current process' stack to a new memory
; location. The active part of the old stack is duplicated, so no
; context is lost. SetStack() also tickles the proper fields in the task
; structure to tell the system about the change. At this time it does
; not deallocate the old stack.
;
;USAGE
; Typically this is used by a process that needs a larger stack than it
; might have been started with. The stack size can be found with:
;
; #include "libraries/dosextens.h"
; ...
; stack=*(ULONG *)( ((struct Process *)FindTask(0L))->pr_ReturnAddr );
;
; Or in English, the long word at the address pointed to by pr_ReturnAddr.
;
;WARNINGS
; A future revision of exec may do stack blowout checking every time a
; process/task is switched out. This protective feature will not be
; available to programs that use funky methods of swapping stacks.
;
; This only works for processes, tasks are not eligible.
;
; Don't skimp on stack... you'll get burned. Any call to the dos.library,
; for example, takes just under 1600 bytes *minimum*.
;
;INPUTS
; newstack - Pointer to memory block for stack. Must be longword aligned.
; size - The size of the block. Must be an even multiple of 4 bytes.
;
;SEE ALSO
; AddTask(),AmigaLine6
|\ /| . Ack! (NAK, SOH, EOT)
{o O} . bryce@hoser.berkeley.EDU -or- ucbvax!hoser!bryce (or try "cogsci")
(")
U "As an engineer, I only set the value of a product... not the cost."
-Bryce Nesbitt