Typedef some common structs
This commit is contained in:
parent
52f88785c4
commit
eec052bafa
2 changed files with 17 additions and 13 deletions
|
@ -1,6 +1,6 @@
|
|||
#include <proc.h>
|
||||
|
||||
struct Cpu cpus[NCPU];
|
||||
Cpu cpus[NCPU];
|
||||
|
||||
/**
|
||||
* Must be called with interrupts disabled, to prevent race with process being
|
||||
|
@ -14,8 +14,8 @@ int cpuid() {
|
|||
/**
|
||||
* Return this CPU's cpu struct. Interrupts must be disabled.
|
||||
*/
|
||||
struct Cpu *mycpu(void) {
|
||||
int id = cpuid();
|
||||
struct Cpu *c = &cpus[id];
|
||||
Cpu *mycpu(void) {
|
||||
int id = cpuid();
|
||||
Cpu *c = &cpus[id];
|
||||
return c;
|
||||
}
|
||||
|
|
22
kern/proc.h
22
kern/proc.h
|
@ -1,6 +1,8 @@
|
|||
#ifndef PROC_H
|
||||
#define PROC_H
|
||||
|
||||
#include <config.h>
|
||||
#include <riscv.h>
|
||||
#include <spinlock.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum {
|
||||
|
@ -13,7 +15,7 @@ typedef enum {
|
|||
} ProcessState;
|
||||
|
||||
/** Saved registers for kernel context switches. */
|
||||
struct Context {
|
||||
typedef struct Context {
|
||||
uint64_t ra;
|
||||
uint64_t sp;
|
||||
|
||||
|
@ -30,18 +32,18 @@ struct Context {
|
|||
uint64_t s9;
|
||||
uint64_t s10;
|
||||
uint64_t s11;
|
||||
};
|
||||
} Context;
|
||||
|
||||
/** Per-CPU state. */
|
||||
struct Cpu {
|
||||
typedef struct cpu_t {
|
||||
struct Process *proc; // The process running on this cpu, or null.
|
||||
struct Context context; // swtch() here to enter scheduler().
|
||||
int noff; // Depth of push_off() nesting.
|
||||
int intena; // Were interrupts enabled before push_off()?
|
||||
};
|
||||
} Cpu;
|
||||
|
||||
/** Saved registers for kernel context switches. */
|
||||
typedef struct {
|
||||
typedef struct TrapFrame_t {
|
||||
/* 0 */ uint64_t kernel_satp; // kernel page table
|
||||
/* 8 */ uint64_t kernel_sp; // top of process's kernel stack
|
||||
/* 16 */ uint64_t kernel_trap; // usertrap()
|
||||
|
@ -78,11 +80,13 @@ typedef struct {
|
|||
/* 264 */ uint64_t t4;
|
||||
/* 272 */ uint64_t t5;
|
||||
/* 280 */ uint64_t t6;
|
||||
} TrapFrame_t;
|
||||
} TrapFrame;
|
||||
|
||||
struct Cpu *mycpu(void);
|
||||
Cpu *mycpu(void);
|
||||
|
||||
extern struct Cpu cpus[NCPU];
|
||||
extern Cpu cpus[NCPU];
|
||||
|
||||
/** Per-process state */
|
||||
struct Proc {};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue