fFirstEntry
Inode* FirstEntry() const { return fFirstEntry; }
Inode* fFirstEntry;
for (inode = fFirstEntry; inode != NULL; inode = next) {
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
Inode* current = fFirstEntry;
fFirstEntry = inode;
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
for (Inode* inode = fFirstEntry; inode != NULL; inode = inode->Next()) {
if (fLimit != maxSize / sizeof(HTreeEntry) - fFirstEntry) {
(uint32)(maxSize / sizeof(HTreeEntry) - fFirstEntry), fBlockNum);
HTreeEntry* end = (HTreeEntry*)block + fCount + fFirstEntry - 1;
bool endOfBlock = fCurrentEntry >= (fCount + fFirstEntry);
fFirstEntry = 1; // Skip fake directory entry
(const HTreeCountLimit*)&entries[fFirstEntry];
HTreeCountLimit* countLimit = (HTreeCountLimit*)&entries[fFirstEntry];
memmove(&entries[fFirstEntry + count / 2], &secondBlockEntries[1],
fCurrentEntry + 2, fCurrentEntry + 1, count + fFirstEntry
(count + fFirstEntry - fCurrentEntry - 1) * sizeof(HTreeEntry));
if (fCurrentEntry == fFirstEntry) {
HTreeCountLimit* countLimit = (HTreeCountLimit*)&entries[fFirstEntry];
return (ext2_htree_tail*)(&entries[fFirstEntry + limit]);
(fFirstEntry + fCount) * sizeof(HTreeEntry));
fFirstEntry = offset / sizeof(HTreeEntry);
fCurrentEntry = fFirstEntry;
fFirstEntry(1),
fFirstEntry);
&((HTreeEntry*)block)[fFirstEntry]);
uint16 fFirstEntry;
fFirstEntry(0),
fFirstEntry = 0;
fFirstEntry = fLastEntry;
Entry& entry = fEntries[fFirstEntry];
if (fLastEntry == fFirstEntry)
fFirstEntry = (fFirstEntry + 1) % kEntryCount;
int32 fFirstEntry;
trace_entry* fFirstEntry;
return fFirstEntry;
if (entry == fFirstEntry)
fFirstEntry, fAfterLastEntry, fBuffer));
fAfterLastEntry, fFirstEntry, fEntries));
if (fFirstEntry > fAfterLastEntry)
return start >= (addr_t)fFirstEntry || end <= (addr_t)fAfterLastEntry;
return start >= (addr_t)fFirstEntry && end <= (addr_t)fAfterLastEntry;
TRACE((" skip start %p, %lu*4 bytes\n", fFirstEntry, fFirstEntry->size));
trace_entry* newFirst = NextEntry(fFirstEntry);
if (fFirstEntry->flags & BUFFER_ENTRY) {
} else if (fFirstEntry->flags & ENTRY_INITIALIZED) {
fFirstEntry = fAfterLastEntry = fBuffer;
fFirstEntry = newFirst;
while (fFirstEntry > fAfterLastEntry) {
if (fFirstEntry <= fAfterLastEntry) {
size_t space = fFirstEntry - fAfterLastEntry;
space += fFirstEntry->size;
TRACE((" out: start %p, entries %ld\n", fFirstEntry, fEntries));
metaData->fFirstEntry = metaData->fBuffer;
|| (addr_t)fFirstEntry % sizeof(trace_entry) != 0
|| (addr_t)fFirstEntry < bufferStart
|| (addr_t)fFirstEntry + sizeof(trace_entry) >= bufferEnd
trace_entry* entry = fFirstEntry;
if (entry != fFirstEntry) {