Implement a proper block layer with partition support.
[pintos-anon] / src / threads / switch.h
index c9ae4ab8b108bbd2b9165058f36b13dfd0319d6a..cc156b6d5eddd8e52378be5e17952d6e650ea5c8 100644 (file)
@@ -1,29 +1,32 @@
-#ifndef HEADER_SWITCH_H
-#define HEADER_SWITCH_H 1
+#ifndef THREADS_SWITCH_H
+#define THREADS_SWITCH_H
 
 #ifndef __ASSEMBLER__
 /* switch_thread()'s stack frame. */
-struct switch_frame 
+struct switch_threads_frame 
   {
-    uint32_t ebx;               /*  0: Saved %ebx. */
-    uint32_t ebp;               /*  4: Saved %ebp. */
-    uint32_t esi;               /*  8: Saved %esi. */
-    uint32_t edi;               /* 12: Saved %edi. */
+    uint32_t edi;               /*  0: Saved %edi. */
+    uint32_t esi;               /*  4: Saved %esi. */
+    uint32_t ebp;               /*  8: Saved %ebp. */
+    uint32_t ebx;               /* 12: Saved %ebx. */
     void (*eip) (void);         /* 16: Return address. */
-    struct thread *cur;         /* 20: thread_switch()'s CUR argument. */
-    struct thread *next;        /* 24: thread_switch()'s NEXT argument. */
+    struct thread *cur;         /* 20: switch_threads()'s CUR argument. */
+    struct thread *next;        /* 24: switch_threads()'s NEXT argument. */
   };
 
 /* Switches from CUR, which must be the running thread, to NEXT,
-   which must also be running thread_switch(), returning CUR in
+   which must also be running switch_threads(), returning CUR in
    NEXT's context. */
 struct thread *switch_threads (struct thread *cur, struct thread *next);
 
-struct switch_thunk_frame 
+/* Stack frame for switch_entry(). */
+struct switch_entry_frame
   {
     void (*eip) (void);
   };
 
+void switch_entry (void);
+
 /* Pops the CUR and NEXT arguments off the stack, for use in
    initializing threads. */
 void switch_thunk (void);
@@ -33,4 +36,4 @@ void switch_thunk (void);
 #define SWITCH_CUR      20
 #define SWITCH_NEXT     24
 
-#endif /* switch.h */
+#endif /* threads/switch.h */