Mercurial > hg > Game > Cerium
view 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 |
line wrap: on
line source
/*! MemList は空にならない。最低1個は要素が入っていて 1個目は特別扱いする。getFirst すると first->next を返す */ #include "MemorySegment.h" /*! 最初の1個は特別扱いなので、それの後に追加していく */ void addFirst(MemorySegment* e) { e->prev = first; e->next = first->next; first->next->prev = e; first->next = e; } void addLast(MemorySegment* e) { e->next = first; e->prev = last; last->next = e; last = e; } MemorySegment getFirst() { return first->next; } MemorySegment getLast() { return last; } int remove(MemorySegment* e) { e->prev->next = e->next; if (e->next != NULL) { e->next->prev = e->prev; } e->prev = NULL; e->next = NULL; return 1; } void moveToFirst(MemorySegment* e) { remove(e); addFirst(e); }