summaryrefslogtreecommitdiff
path: root/kernel/old/include/user.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/old/include/user.h')
-rw-r--r--kernel/old/include/user.h138
1 files changed, 0 insertions, 138 deletions
diff --git a/kernel/old/include/user.h b/kernel/old/include/user.h
deleted file mode 100644
index 4d9402f..0000000
--- a/kernel/old/include/user.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
-** @file user.h
-**
-** @author CSCI-452 class of 20245
-**
-** @brief Declarations of user-level code management routines
-*/
-
-#ifndef USER_H_
-#define USER_H_
-
-#include <common.h>
-
-#include <procs.h>
-#include <x86/arch.h>
-
-// default value for EFLAGS in new processes
-#define DEFAULT_EFLAGS (EFL_MB1 | EFL_IF)
-
-/*
-** General (C and/or assembly) definitions
-*/
-
-#ifndef ASM_SRC
-
-/*
-** Start of C-only definitions
-*/
-
-/*
-** Types
-*/
-
-/*
-** Blob file organization
-**
-** The file begins with a four-byte magic number and a four-byte integer
-** indicating the number of ELF files contained in the blob. This is
-** followed by an array of 32-byte file table entries, and then the contents
-** of the ELF files in the order they appear in the program file table.
-**
-** Bytes Contents
-** ----- ----------------------------
-** 0 - 3 File magic number ("BLB\0")
-** 4 - 7 Number of ELF files in blob ("n")
-** 8 - n*32+8 Program file table
-** n*32+9 - ? ELF file contents
-**
-** Each program file table entry contains the following information:
-**
-** name File name (up to 19 characters long)
-** offset Byte offset to the ELF header for this file
-** size Size of this ELF file, in bytes
-** flags Flags related to this file
-*/
-
-// user program blob header
-typedef struct header_s {
- char magic[4];
- uint32_t num;
-} header_t;
-
-// length of the file name field
-#define NAMELEN 20
-
-// program descriptor
-typedef struct prog_s {
- char name[NAMELEN]; // truncated name (15 chars)
- uint32_t offset; // offset from the beginning of the blob
- uint32_t size; // size of this ELF module
- uint32_t flags; // miscellaneous flags
-} prog_t;
-
-/*
-** Globals
-*/
-
-/*
-** Prototypes
-*/
-
-/**
-** Name: user_init
-**
-** Initializes the user support module.
-*/
-void user_init( void );
-
-/**
-** Name: user_locate
-**
-** Locates a user program in the user code archive.
-**
-** @param what The ID of the user program to find
-**
-** @return pointer to the program table entry in the code archive, or NULL
-*/
-prog_t *user_locate( uint_t what );
-
-/**
-** Name: user_duplicate
-**
-** Duplicates the memory setup for an existing process.
-**
-** @param new The PCB for the new copy of the program
-** @param old The PCB for the existing the program
-**
-** @return the status of the duplicate attempt
-*/
-int user_duplicate( pcb_t *new, pcb_t *old );
-
-/**
-** Name: user_load
-**
-** Loads a user program from the user code archive into memory.
-** Allocates all needed frames and sets up the VM tables.
-**
-** @param prog A pointer to the program table entry to be loaded
-** @param pcb The PCB for the program being loaded
-** @param args The argument vector for the program
-**
-** @return the status of the load attempt
-*/
-int user_load( prog_t *prog, pcb_t *pcb, const char **args );
-
-/**
-** Name: user_cleanup
-**
-** "Unloads" a user program. Deallocates all memory frames and
-** cleans up the VM structures.
-**
-** @param pcb The PCB of the program to be cleaned up
-*/
-void user_cleanup( pcb_t *pcb );
-
-#endif /* !ASM_SRC */
-
-#endif