Files
42_KFS/headers/thread.h

28 lines
420 B
C

#pragma once
#include "process.h"
#include <stdint.h>
#define STACK_SIZE PAGE_SIZE * 4
typedef enum {
NEW,
RUNNING,
WAITING,
STOPPED,
} state_t;
struct tcb {
uint32_t *esp;
uint32_t *esp0;
uint16_t tid;
state_t state;
struct pcb *process;
struct tcb *next;
};
struct tcb *create_thread(struct pcb *process, void (*entry)(void));
void delete_thread(struct tcb *thread);
void switch_thread(uint32_t *esp);