Lines Matching defs:seg

48 	reg Seg_t*	seg;
77 if(!(seg = vd->seg) )
80 { if(!vd->wild || SEG(vd->wild) != seg)
87 addr = (Vmuchar_t*)(*memoryf)(vm,seg->addr,seg->extent,
88 seg->extent+size-s,vm->disc);
90 seg = NIL(Seg_t*);
92 { /**/ASSERT(addr == (Vmuchar_t*)seg->addr);
93 addr += seg->extent;
119 if(seg)
121 bp = BLOCK(seg->baddr);
125 /**/ ASSERT(SEG(bp) == seg);
138 { if(seg->free)
139 { bp = seg->free;
140 seg->free = NIL(Block_t*);
144 { SEG(bp) = seg;
149 seg->size += size;
150 seg->extent += size;
151 seg->baddr += size;
160 seg = (Seg_t*)addr;
161 seg->vmdt = vd;
162 seg->addr = (Void_t*)(addr - (s ? ALIGN-s : 0));
163 seg->extent = size;
164 seg->baddr = addr + size - (s ? 2*ALIGN : 0);
165 seg->free = NIL(Block_t*);
166 bp = SEGBLOCK(seg);
167 SEG(bp) = seg;
168 SIZE(bp) = seg->baddr - (Vmuchar_t*)bp - 2*sizeof(Head_t);
175 sp = vd->seg;
178 if(seg->addr > sp->addr)
180 seg->next = sp;
182 lastsp->next = seg;
183 else vd->seg = seg;
185 seg->size = SIZE(bp);
190 SEG(t) = seg;
194 if((t = vd->wild) && (seg = SEG(t)) != vd->seg)
201 else seg->free = t;
211 static ssize_t vmtruncate(Vmalloc_t* vm, Seg_t* seg, size_t size, int exact)
213 static ssize_t vmtruncate(vm, seg, size, exact)
215 Seg_t* seg; /* the one to be truncated */
225 caddr = seg->addr;
227 if(size < seg->size)
242 (*memoryf)(vm,caddr,seg->extent,seg->extent-less,vm->disc) != caddr)
245 seg->extent -= less;
246 seg->size -= less;
247 seg->baddr -= less;
248 SEG(BLOCK(seg->baddr)) = seg;
249 SIZE(BLOCK(seg->baddr)) = BUSY;
255 if(seg == vd->seg)
256 { vd->seg = seg->next;
260 { for(last = vd->seg; last->next != seg; last = last->next)
262 last->next = seg->next;
266 if((*memoryf)(vm,caddr,seg->extent,0,vm->disc) == caddr)
271 { seg->next = last->next;
272 last->next = seg;
275 { seg->next = vd->seg;
276 vd->seg = seg;