Files
42_KFS/headers/thread.h
2025-11-05 16:19:21 +01:00

28 lines
435 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 {
uint8_t *esp;
uint8_t *esp0;
uint16_t tid;
state_t state;
struct pcb *process;
struct tcb *next;
};
struct tcb *create_thread(struct pcb *process, void (*routine)(void));
void delete_thread(struct tcb *thread);
void switch_thread(struct tcb *thread_to_switch);