annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
1 /*!
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
2 MemList は空にならない。最低1個は要素が入っていて
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
3 1個目は特別扱いする。getFirst すると first->next を返す
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
4 */
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
5
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
6 #include "MemorySegment.h"
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
7
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
8 /*!
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
9 最初の1個は特別扱いなので、それの後に追加していく
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
10 */
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
11 void
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
12 addFirst(MemorySegment* e)
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
13 {
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
14 e->prev = first;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
15 e->next = first->next;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
16 first->next->prev = e;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
17 first->next = e;
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
18 }
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
19
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
20 void
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
21 addLast(MemorySegment* e)
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
22 {
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
23 e->next = first;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
24 e->prev = last;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
25 last->next = e;
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
26 last = e;
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
27 }
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
28
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
29 MemorySegment
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
30 getFirst()
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
31 {
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
32 return first->next;
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
33 }
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
34
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
35 MemorySegment
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
36 getLast()
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
37 {
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
38 return last;
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
39 }
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
40
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
41 int
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
42 remove(MemorySegment* e)
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
43 {
368
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
44 e->prev->next = e->next;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
45 if (e->next != NULL) {
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
46 e->next->prev = e->prev;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
47 }
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
48 e->prev = NULL;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
49 e->next = NULL;
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
50
1a80a2aa696c change TaskManager
aaa
parents: 367
diff changeset
51 return 1;
366
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
52 }
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
53
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
54 void
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
55 moveToFirst(MemorySegment* e)
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
56 {
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
57 remove(e);
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
58 addFirst(e);
0251d06467de rename include/TaskManager/* and add memory
aaa
parents:
diff changeset
59 }