comparison TaskManager/kernel/memory/MemList.cc @ 368:1a80a2aa696c draft

change TaskManager
author aaa
date Mon, 27 Jul 2009 18:26:50 +0900
parents TaskManager/kernel/memory/MemList.cpp@b96f80683af6
children 93b33cecba37
comparison
equal deleted inserted replaced
367:b96f80683af6 368:1a80a2aa696c
1 /*!
2 MemList は空にならない。最低1個は要素が入っていて
3 1個目は特別扱いする。getFirst すると first->next を返す
4 */
5
6 #include "MemorySegment.h"
7
8 /*!
9 最初の1個は特別扱いなので、それの後に追加していく
10 */
11 void
12 addFirst(MemorySegment* e)
13 {
14 e->prev = first;
15 e->next = first->next;
16 first->next->prev = e;
17 first->next = e;
18 }
19
20 void
21 addLast(MemorySegment* e)
22 {
23 e->next = first;
24 e->prev = last;
25 last->next = e;
26 last = e;
27 }
28
29 MemorySegment
30 getFirst()
31 {
32 return first->next;
33 }
34
35 MemorySegment
36 getLast()
37 {
38 return last;
39 }
40
41 int
42 remove(MemorySegment* e)
43 {
44 e->prev->next = e->next;
45 if (e->next != NULL) {
46 e->next->prev = e->prev;
47 }
48 e->prev = NULL;
49 e->next = NULL;
50
51 return 1;
52 }
53
54 void
55 moveToFirst(MemorySegment* e)
56 {
57 remove(e);
58 addFirst(e);
59 }