Lines Matching refs:gl

380 cmd_nuke(struct g_bde_key *gl, int dfd , int key)
386 sbuf = malloc(gl->sectorsize);
387 memset(sbuf, 0, gl->sectorsize);
388 offset = (gl->lsector[key] & ~(gl->sectorsize - 1));
392 i = write(dfd, sbuf, gl->sectorsize);
394 if (i != (int)gl->sectorsize)
400 cmd_write(struct g_bde_key *gl, struct g_bde_softc *sc, int dfd , int key, const char *l_opt)
408 sbuf = malloc(gl->sectorsize);
416 off[0] &= (gl->sectorsize - 1);
417 if (off[0] + G_BDE_LOCKSIZE > gl->sectorsize)
423 off[0] += (gl->lsector[key] & ~(gl->sectorsize - 1));
424 gl->lsector[key] = off[0];
435 } else if (gl->flags & GBDE_F_SECT0) {
439 i = read(dfd, sbuf, gl->sectorsize);
440 if (i != (int)gl->sectorsize)
446 i = write(dfd, sbuf, gl->sectorsize);
447 if (i != (int)gl->sectorsize)
456 random_bits(sbuf, gl->sectorsize);
459 random_bits(gl->spare, sizeof(gl->spare));
462 q = sbuf + (off[0] % gl->sectorsize);
463 i = g_bde_encode_lock(sc->sha2, gl, q);
468 offset = gl->lsector[key] & ~(gl->sectorsize - 1);
472 i = write(dfd, sbuf, gl->sectorsize);
473 if (i != (int)gl->sectorsize)
478 printf("s0 = %jd\n", (intmax_t)gl->sector0);
479 printf("sN = %jd\n", (intmax_t)gl->sectorN);
480 printf("l[0] = %jd\n", (intmax_t)gl->lsector[0]);
481 printf("l[1] = %jd\n", (intmax_t)gl->lsector[1]);
482 printf("l[2] = %jd\n", (intmax_t)gl->lsector[2]);
483 printf("l[3] = %jd\n", (intmax_t)gl->lsector[3]);
484 printf("k = %jd\n", (intmax_t)gl->keyoffset);
485 printf("ss = %jd\n", (intmax_t)gl->sectorsize);
490 cmd_destroy(struct g_bde_key *gl, int nkey)
494 bzero(&gl->sector0, sizeof gl->sector0);
495 bzero(&gl->sectorN, sizeof gl->sectorN);
496 bzero(&gl->keyoffset, sizeof gl->keyoffset);
497 gl->flags &= GBDE_F_SECT0;
498 bzero(gl->mkey, sizeof gl->mkey);
501 gl->lsector[i] = ~0;
519 cmd_init(struct g_bde_key *gl, int dfd, const char *f_opt, int i_opt, const char *l_opt)
535 bzero(gl, sizeof *gl);
596 gl->sectorsize = sector_size;
643 gl->flags |= GBDE_F_SECT0;
645 gl->sector0 = first_sector * gl->sectorsize;
652 gl->sectorN = (last_sector + 1) * gl->sectorsize;
656 o %= (gl->sectorN - gl->sector0);
657 o &= ~(gl->sectorsize - 1);
658 gl->keyoffset = o;
675 o %= gl->sectorN;
676 o &= ~(gl->sectorsize - 1);
677 } while(o < gl->sector0);
679 if (o == gl->lsector[u2])
685 gl->lsector[u] = o;
690 while (o < gl->sectorN);
691 gl->lsector[u] = o;
693 qsort(gl->lsector, G_BDE_MAXKEYS, sizeof gl->lsector[0], sorthelp);
696 if (gl->flags & GBDE_F_SECT0) {
723 random_bits(gl->mkey, sizeof gl->mkey);
724 random_bits(gl->salt, sizeof gl->salt);
748 struct g_bde_key *gl;
857 gl = &sc.key;
867 cmd_init(gl, dfd, f_opt, i_opt, L_opt);
869 cmd_write(gl, &sc, dfd, 0, L_opt);
877 cmd_write(gl, &sc, dfd, n_opt - 1, L_opt);
882 cmd_destroy(gl, nkey);
884 cmd_write(gl, &sc, dfd, nkey, l_opt);
893 cmd_nuke(gl, dfd, i);
895 cmd_nuke(gl, dfd, n_opt - 1);