Lines Matching refs:wp

116 g_bde_crypt_read(struct g_bde_work *wp)
128 sc = wp->softc;
130 for (n = 0; o < wp->length; n++, o += sc->sectorsize) {
131 d = (u_char *)wp->ksp->data + wp->ko + n * G_BDE_SKEYLEN;
132 g_bde_kkey(sc, &ki, DIR_DECRYPT, wp->offset + o);
134 d = (u_char *)wp->data + o;
151 g_bde_crypt_write(struct g_bde_work *wp)
161 sc = wp->softc;
164 for (n = 0; o < wp->length; n++, o += sc->sectorsize) {
166 s = (u_char *)wp->data + o;
167 d = (u_char *)wp->sp->data + o;
172 d = (u_char *)wp->ksp->data + wp->ko + n * G_BDE_SKEYLEN;
173 g_bde_kkey(sc, &ki, DIR_ENCRYPT, wp->offset + o);
193 g_bde_crypt_delete(struct g_bde_work *wp)
202 sc = wp->softc;
203 d = wp->sp->data;
211 for (o = 0; o < wp->length; o += sc->sectorsize) {
269 g_bde_map_sector(struct g_bde_work *wp)
277 sc = wp->softc;
281 zone = wp->offset / kp->zone_cont;
282 zoff = wp->offset % kp->zone_cont;
285 wp->ko = (zoff / kp->sectorsize) * G_BDE_SKEYLEN;
294 if (len < wp->length)
295 wp->length = len;
298 wp->so = zone * kp->zone_width + zoff;
299 wp->so += kp->keyoffset;
300 wp->so %= kp->media_width;
301 if (wp->so + wp->length > kp->media_width)
302 wp->length = kp->media_width - wp->so;
303 wp->so += kp->sector0;
306 wp->kso = zone * kp->zone_width + kp->zone_cont;
307 wp->kso += kp->keyoffset;
308 wp->kso %= kp->media_width;
309 wp->kso += kp->sector0;
316 if (wp->kso >= ko)
317 wp->kso += kp->sectorsize;
319 if (wp->so >= ko) {
321 wp->so += kp->sectorsize;
322 } else if ((wp->so + wp->length) > ko) {
324 wp->length = ko - wp->so;
330 (intmax_t)wp->offset,
331 (intmax_t)wp->length,
332 (intmax_t)wp->so,
333 (intmax_t)wp->kso,
334 wp->ko);
336 KASSERT(wp->so + wp->length <= kp->sectorN,
337 ("wp->so (%jd) + wp->length (%jd) > EOM (%jd), offset = %jd",
338 (intmax_t)wp->so,
339 (intmax_t)wp->length,
341 (intmax_t)wp->offset));
343 KASSERT(wp->kso + kp->sectorsize <= kp->sectorN,
344 ("wp->kso (%jd) + kp->sectorsize > EOM (%jd), offset = %jd",
345 (intmax_t)wp->kso,
347 (intmax_t)wp->offset));
349 KASSERT(wp->so >= kp->sector0,
350 ("wp->so (%jd) < BOM (%jd), offset = %jd",
351 (intmax_t)wp->so,
353 (intmax_t)wp->offset));
355 KASSERT(wp->kso >= kp->sector0,
356 ("wp->kso (%jd) <BOM (%jd), offset = %jd",
357 (intmax_t)wp->kso,
359 (intmax_t)wp->offset));