Data Structures | |
| struct | SegList |
| Structure defining the nodes of linked lists of segments. More... | |
Defines | |
| #define | SegEnd(x) ((x)->pos + (x)->len) |
Typedefs | |
| typedef SegList | SegList |
| Structure defining the nodes of linked lists of segments. | |
Functions | |
| int | TMM_SegListSize (SegList *list) |
| Returns size of list in nodes. | |
| SegList * | TMM_OrderedInsert (SegList *list, SegList *node) |
| Inserts a node into the list in sorted order. | |
| void | TMM_RemoveFromList (SegList *node) |
| Deletes a node from the list. Does not deallocate. | |
| SegList * | TMM_CopySegList (SegList *list) |
| Makes a newly-allocated copy of a segment list. | |
| SegList * | TMM_CreateSegList (int pos, int len, SegList *prev, SegList *next) |
| Creates a new node for a segment list. | |
| SegList * | TMM_SeekSegListHead (SegList *list) |
| Returns the head of the passed list. | |
| SegList * | TMM_SeekSegListEnd (SegList *list) |
| Returns the tail of the passed list. | |
| SegList * | TMM_AppendSegList (SegList *list, SegList *node) |
| Appends a node or nodes to the end of the list. | |
| int | TMM_FreeSegList (SegList *list) |
| Frees a linked list of segments from memory. | |
| int | TMM_CompSegList (const SegList *l1, const SegList *l2) |
| Compares two segments for sorting. | |
| SegList * | TMM_SortSegList (SegList *list) |
| Sorts the list in ascending order of segment address. | |
| SegList * | TMM_RemoveAreaFromSegList (SegList *list, int pos, int len) |
| Removes a memory area from the list. | |
| SegList * | TMM_MergeSegList (SegList *list) |
| Merges end-to-end segments. | |
| int | TMM_AreaIntersectsSeg (ToySegment *seg1, ToySegment *seg2) |
| Returns nonzero if the segments overlap, 0 if not. | |
| SegList * | TMM_AddAreaToSegList (SegList *list, int pos, int len) |
| Adds another segment to the list, if the new segment doesn't overlap with any existing ones. | |
| void | TMM_PrintSegList (SegList *list) |
| Prints the list of segments. | |
| int | TMM_SubtractSegs (ToySegment *seg1, ToySegment *seg2, ToySegment segOut[2]) |
| Returns # of resultant segments. | |
| int | TMM_FindSegSpace (SegList *list, int n) |
| Tries to find space for a segment int a list of free memory segments. | |
|
|
Structure defining the nodes of linked lists of segments. Doubly linked because they work without bother, and I'm lazy. |
|
||||||||||||||||
|
Adds another segment to the list, if the new segment doesn't overlap with any existing ones.
Definition at line 146 of file ToySegmentList.c. References len, pos, TMM_AppendSegList(), TMM_AreaIntersectsSeg(), TMM_CreateSegList(), TMM_MergeSegList(), TMM_SeekSegListHead(), and TMM_SortSegList(). |
|
||||||||||||
|
Appends a node or nodes to the end of the list.
Definition at line 344 of file ToySegmentList.c. References SegList::next, SegList::prev, TMM_SeekSegListEnd(), and TMM_SeekSegListHead(). Referenced by TMM_AddAreaToSegList(), TMM_CopySegList(), and TMM_RemoveAreaFromSegList(). |
|
||||||||||||
|
Returns nonzero if the segments overlap, 0 if not.
Definition at line 420 of file ToySegmentList.c. Referenced by TMM_AddAreaToSegList(), and TMM_SubtractSegs(). |
|
||||||||||||
|
Compares two segments for sorting.
Definition at line 215 of file ToySegmentList.c. References pos, and SegList::seg. Referenced by TMM_SortSegList(). |
|
|
Makes a newly-allocated copy of a segment list.
Definition at line 132 of file ToySegmentList.c. References len, SegList::next, pos, SegList::seg, TMM_AppendSegList(), TMM_CreateSegList(), and TMM_SeekSegListHead(). |
|
||||||||||||||||||||
|
Creates a new node for a segment list.
Definition at line 362 of file ToySegmentList.c. References len, SegList::next, pos, SegList::prev, and SegList::seg. Referenced by TMM_AddAreaToSegList(), TMM_AllocateHeap(), TMM_CopySegList(), TMM_Create(), TMM_PagedAllocateProcess(), TMM_ReallocateHeap(), and TMM_RemoveAreaFromSegList(). |
|
||||||||||||
|
Tries to find space for a segment int a list of free memory segments.
Definition at line 119 of file ToySegmentList.c. References len, SegList::next, pos, SegList::seg, and TMM_SeekSegListHead(). |
|
|
Frees a linked list of segments from memory.
Definition at line 403 of file ToySegmentList.c. References SegList::next, and TMM_SeekSegListHead(). Referenced by TMM_EnablePaging(), TMM_Free(), TMM_PagedTerminateProcess(), and TMM_TerminateProcess(). |
|
|
Merges end-to-end segments.
Definition at line 182 of file ToySegmentList.c. References len, SegList::next, SegList::prev, SegList::seg, and TMM_SeekSegListHead(). Referenced by TMM_AddAreaToSegList(). |
|
||||||||||||
|
Inserts a node into the list in sorted order. Note - not for use with circular lists. Definition at line 66 of file ToySegmentList.c. References SegList::next, pos, SegList::prev, SegList::seg, and TMM_SeekSegListHead(). Referenced by TMM_AllocateHeap(), and TMM_ReallocateHeap(). |
|
|
Prints the list of segments.
Definition at line 329 of file ToySegmentList.c. References len, SegList::next, pos, SegList::seg, and TMM_SeekSegListHead(). |
|
||||||||||||||||
|
Removes a memory area from the list.
Definition at line 248 of file ToySegmentList.c. References len, SegList::next, pos, SegList::prev, SegList::seg, TMM_AppendSegList(), TMM_CreateSegList(), TMM_SeekSegListEnd(), TMM_SeekSegListHead(), TMM_SortSegList(), and TMM_SubtractSegs(). |
|
|
Deletes a node from the list. Does not deallocate.
Definition at line 19 of file ToySegmentList.c. References SegList::next, and SegList::prev. Referenced by TMM_FreeHeap(), and TMM_ReallocateHeap(). |
|
|
Returns the tail of the passed list.
Definition at line 392 of file ToySegmentList.c. References SegList::next. Referenced by TMM_AppendSegList(), and TMM_RemoveAreaFromSegList(). |
|
|
Returns the head of the passed list.
Definition at line 381 of file ToySegmentList.c. References SegList::prev. Referenced by TMM_AddAreaToSegList(), TMM_AppendSegList(), TMM_CopySegList(), TMM_FindSegSpace(), TMM_FreeSegList(), TMM_MergeSegList(), TMM_OrderedInsert(), TMM_PrintProcessMemory(), TMM_PrintProcessTable(), TMM_PrintSegList(), TMM_RemoveAreaFromSegList(), TMM_SegListSize(), TMM_SortSegList(), TMM_StoreInteger(), TMM_StoreString(), and TMM_TerminateProcess(). |
|
|
Returns size of list in nodes.
Definition at line 97 of file ToySegmentList.c. References SegList::next, and TMM_SeekSegListHead(). |
|
|
Sorts the list in ascending order of segment address.
Definition at line 222 of file ToySegmentList.c. References SegList::next, SegList::prev, SegList::seg, TMM_CompSegList(), and TMM_SeekSegListHead(). Referenced by TMM_AddAreaToSegList(), and TMM_RemoveAreaFromSegList(). |
|
||||||||||||||||
|
Returns # of resultant segments. -1 means they don't intersect. 0 means they cancelled out. 1 or 2 means the result is in segOut. Definition at line 438 of file ToySegmentList.c. References len, pos, and TMM_AreaIntersectsSeg(). Referenced by TMM_RemoveAreaFromSegList(). |
1.3-rc3