diff --git a/include/platform/context.h b/include/platform/context.h index 92b7a03..e2b4efd 100644 --- a/include/platform/context.h +++ b/include/platform/context.h @@ -33,6 +33,8 @@ struct process_context_t void load_context(struct process_context_t *context); +void context_construct(struct process_context_t *context); + void *get_context_pc(struct process_context_t *context); void set_context_pc(struct process_context_t *context, void *pc); diff --git a/src/x86/context.c b/src/x86/context.c index bbc3107..60cbc18 100644 --- a/src/x86/context.c +++ b/src/x86/context.c @@ -6,6 +6,12 @@ #include "system.h" #include +void context_construct(struct process_context_t *context) +{ + memset(context, 0, sizeof(struct process_context_t)); + context->flags = DEFAULT_FLAGS; +} + void *get_context_pc(struct process_context_t *context) { return (void*) context->eip;