/* StackFrame.h             -*-objc-*-
 *
 * Copyright Niels Möller <nisse@lysator.liu.se> 1995
 *
 * Freely distributable under the terms and conditions of the
 * GNU General Public License.
 */

#ifndef STACKFRAME_H_INCLUDED
#define STACKFRAME_H_INCLUDED

#include <objc/Object.h>
#include <frame_stack.h>

@interface StackFrame : Object
{
  frame_id frame;
}
+ (void) c_init; /* Dummy method, used to make sure the stack is
		  * initialized. */
+ (frame_id) pushCatch: object;
+ (frame_id) pushProtect: reciever send: (SEL) selector;
+ (frame_id) pushProtectCall: (void (*)(void)) function;
+ (frame_id) pushProtectCall: (void (*)(void *)) function with: (void *) arg;
+ (frame_id) findFrameMatching: object;
+ (void) unwind: (frame_id) frame;
+ (void) freeFrame: (frame_id) frame;
- rawFree;     /* Just free, without any cleanup */
- (void) cleanup;
- (BOOL) matches: tag;
@end /* StackFrame */
#endif STACKFRAME_H_INCLUDED
