43 if (n ==
SEG->scb[
SEG->cur].n)
48 if (
SEG->load_idx[n] >= 0) {
49 cur =
SEG->load_idx[n];
51 if (
SEG->scb[cur].age !=
SEG->youngest) {
53 SEG->scb[cur].age->younger->older =
SEG->scb[cur].age->older;
54 SEG->scb[cur].age->older->younger =
SEG->scb[cur].age->younger;
56 SEG->scb[cur].age->younger =
SEG->youngest->younger;
57 SEG->scb[cur].age->older =
SEG->youngest;
58 SEG->scb[cur].age->older->younger =
SEG->scb[cur].age;
59 SEG->scb[cur].age->younger->older =
SEG->scb[cur].age;
61 SEG->youngest =
SEG->scb[cur].age;
64 return SEG->cur = cur;
68 if (!
SEG->nfreeslots) {
70 SEG->oldest =
SEG->oldest->younger;
71 cur =
SEG->oldest->cur;
72 SEG->oldest->cur = -1;
75 if (
SEG->scb[cur].n >= 0) {
76 SEG->load_idx[
SEG->scb[cur].n] = -1;
79 if (
SEG->scb[cur].dirty) {
87 cur =
SEG->freeslot[--
SEG->nfreeslots];
92 SEG->scb[cur].dirty = 0;
106 G_debug(1,
"Segment pagein: zero read");
116 G_warning(
"Segment pagein: short count during read(), got %d, "
124 SEG->load_idx[n] = cur;
127 SEG->youngest =
SEG->youngest->younger;
128 SEG->scb[cur].age =
SEG->youngest;
129 SEG->youngest->cur = cur;
131 return SEG->cur = cur;
int seg_pagein(SEGMENT *SEG, int n)
Internal use only.
int seg_pageout(SEGMENT *SEG, int i)
Internal use only.