Lines Matching defs:sip

146 	struct swapinfo *sip;
151 sip = silast;
155 if (sip == NULL)
157 if (!(sip->si_flags & ST_INDEL) &&
158 (spgcnt_t)sip->si_nfpgs > 0) {
161 if (*vpp != sip->si_vp ||
162 *offp < sip->si_soff ||
163 *offp >= sip->si_eoff)
168 } else if (sip->si_nfpgs == 0)
169 sip->si_allocs = 0;
170 if ((sip = sip->si_next) == NULL)
171 sip = swapinfo;
172 } while (sip != silast);
176 soff = swap_getoff(sip);
177 sip->si_nfpgs--;
182 if (sip->si_nfpgs == 0)
186 noff = swap_getoff(sip);
190 CLEARBIT(sip->si_swapslots, btop(noff - sip->si_soff));
193 sip->si_nfpgs--;
195 *vpp = sip->si_vp;
198 ASSERT((spgcnt_t)sip->si_nfpgs >= 0);
199 sip->si_allocs += btop(len);
200 if (sip->si_allocs >= swap_maxcontig) {
201 sip->si_allocs = 0;
202 if ((silast = sip->si_next) == NULL)
206 "swap_alloc:sip %p offset %lx", sip, soff);
214 * Get a free offset on swap device sip.
218 swap_getoff(struct swapinfo *sip)
225 sip->si_alloccnt++;
226 for (sp = &sip->si_swapslots[sip->si_hint >> MAPSHIFT],
227 ep = &sip->si_swapslots[sip->si_mapsize / NBPW]; sp < ep; sp++) {
231 sip->si_checkcnt++;
235 sip->si_hint, 0, 0, 0, 0);
240 for (sp = &sip->si_swapslots[sip->si_hint >> MAPSHIFT],
241 ep = sip->si_swapslots; sp > ep; sp--) {
245 sip->si_checkcnt++;
248 for (sp = sip->si_swapslots,
249 ep = &sip->si_swapslots[sip->si_hint >> MAPSHIFT];
254 sip->si_checkcnt++;
270 aoff = ((char *)sp - (char *)sip->si_swapslots) * NBBY;
272 for (boff = (sip->si_hint % NBBW); boff < NBBW; boff++) {
273 if (!TESTBIT(sip->si_swapslots, aoff + boff))
276 sip->si_checkcnt++;
278 for (boff = 0; boff < (sip->si_hint % NBBW); boff++) {
279 if (!TESTBIT(sip->si_swapslots, aoff + boff))
282 sip->si_checkcnt++;
284 panic("swap_getoff: didn't find slot in word hint %ld", sip->si_hint);
296 if (poff + sip->si_soff >= sip->si_eoff)
298 aoff, boff, ptob(slotnumber), (long)sip->si_eoff);
299 ASSERT(poff < sip->si_eoff);
304 SETBIT(sip->si_swapslots, slotnumber);
305 sip->si_hint = slotnumber + 1; /* hint = next slot */
306 return (poff + sip->si_soff);
315 struct swapinfo *sip;
319 sip = swapinfo;
322 if (sip->si_vp == vp &&
323 sip->si_soff <= off && off < sip->si_eoff) {
324 for (pagenumber = btop(off - sip->si_soff),
329 "sip %p\n",
330 pagenumber, sip, 0, 0, 0);
331 if (!TESTBIT(sip->si_swapslots, pagenumber)) {
335 ptob(pagenumber) + sip->si_soff);
337 CLEARBIT(sip->si_swapslots, pagenumber);
338 sip->si_nfpgs++;
340 ASSERT(sip->si_nfpgs <= sip->si_npgs);
344 } while ((sip = sip->si_next) != NULL);
375 struct swapinfo *sip;
382 sip = swapinfo;
383 if (vp && sip) {
385 if (vp != sip->si_vp || eoff <= sip->si_soff ||
386 offset >= sip->si_eoff)
390 } while ((sip = sip->si_next) != NULL);
441 struct swapinfo *sip, *csip, *tsip;
595 for (sip = swapinfo, nswap = 0;
596 sip != NULL && nswap < nswapfiles;
597 sip = sip->si_next, nswap++) {
599 (sip->si_eoff - sip->si_soff) >> SCTRSHFT;
600 st.ste_pages += sip->si_npgs;
601 st.ste_free += sip->si_nfpgs;
657 for (sip = swapinfo, tsip = csip, tpname = pname, nswap = 0;
658 sip && nswap < tmp_nswapfiles;
659 sip = sip->si_next, tsip++, tpname += plen, nswap++) {
660 plen = sip->si_pnamelen;
666 *tsip = *sip;
668 (void) strcpy(tsip->si_pname, sip->si_pname);
672 if (sip) {
777 struct swapinfo *sip, *csip, *tsip;
890 for (sip = swapinfo, nswap = 0;
891 sip != NULL && nswap < nswapfiles;
892 sip = sip->si_next, nswap++) {
894 (sip->si_eoff - sip->si_soff) >> SCTRSHFT;
895 st.ste_pages += sip->si_npgs;
896 st.ste_free += sip->si_nfpgs;
950 for (sip = swapinfo, tsip = csip, tpname = pname, nswap = 0;
951 (sip != NULL) && (nswap < tmp_nswapfiles);
952 sip = sip->si_next, tsip++, tpname += plen, nswap++) {
953 plen = sip->si_pnamelen;
959 *tsip = *sip;
961 (void) strcpy(tsip->si_pname, sip->si_pname);
965 if (sip != NULL) {
1561 * Free up a physical swap slot on swapinfo sip, currently in use by the
1568 struct swapinfo *sip)
1578 ASSERT(sip->si_vp != NULL);
1591 if (error || pvp != sip->si_vp || poff < sip->si_soff ||
1592 poff >= sip->si_eoff) {
1636 if ((ap != NULL) && (ap->an_pvp == sip->si_vp && ap->an_poff >=
1637 sip->si_soff && ap->an_poff < sip->si_eoff)) {