#include <pageframetable.h>
Collaboration diagram for Zygoma::PageFrameTableIterator:

It would be possible to just use pointers to PageFrames as iterators over the table, except for 2 things. First, we need a UDT (user-defined type) to differentiate a page frame table iterator from a regular physical address in function overloads, and second, we need a conversion function that will deliver the page from physical base address given the page frame table iterator
Public Types | |
| typedef std::random_access_iterator_tag | iterator_category |
| typedef PageFrame | value_type |
| typedef std::ptrdiff_t | difference_type |
| typedef PageFrame * | pointer |
| typedef PageFrame & | reference |
Public Member Functions | |
| PageFrameTableIterator (PageFrameTable &, difference_type offset=0) | |
Constructs a page frame table iterator starting at offset page frames from the beginning of the table. | |
| PageFrameTableIterator (const PageFrameTableIterator &rhs) | |
| Copy constructs a page frame table iterator. | |
| PageFrameTableIterator & | operator= (const PageFrameTableIterator &rhs) |
| Copy assigns a page frame table iterator. | |
| ~PageFrameTableIterator () | |
| Destructs a page frame table iterator. | |
| reference | operator * () |
| Dereference operator. | |
| reference | operator[] (difference_type) |
| Indexing operator. | |
| pointer | operator-> () |
| Member access operator. | |
| PhysicalAddress | baseAddress () const |
| Conversion to PhysicalAddress. | |
Iterator arithmentic operators. | |
| PageFrameTableIterator & | operator++ () |
| Preincrement operator. | |
| PageFrameTableIterator & | operator++ (int) |
| Postincrement operator. | |
| PageFrameTableIterator & | operator-- () |
| Predecrement operator. | |
| PageFrameTableIterator & | operator-- (int) |
| Postdecrement operator. | |
| PageFrameTableIterator & | operator+= (difference_type) |
| Increment operator. | |
| PageFrameTableIterator & | operator- (difference_type) |
| Decrement operator. | |
| difference_type | operator- (const PageFrameTableIterator &) |
| Difference operator. | |
Comparison operations | |
| bool | equals (const PageFrameTableIterator &rhs) const |
| bool | lessThan (const PageFrameTableIterator &rhs) const |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Constructs a page frame table iterator starting at
|
|
|
Copy constructs a page frame table iterator.
|
|
|
Destructs a page frame table iterator.
|
|
|
Conversion to PhysicalAddress.
|
|
|
|
|
|
|
|
|
Dereference operator.
|
|
|
Postincrement operator.
|
|
|
Preincrement operator.
|
|
|
Increment operator.
|
|
|
Difference operator.
|
|
|
Decrement operator.
|
|
|
Postdecrement operator.
|
|
|
Predecrement operator.
|
|
|
Member access operator.
|
|
|
Copy assigns a page frame table iterator.
|
|
|
Indexing operator. I'm not sure if this should really be an iterator operation.
|
1.4.2