Lines Matching refs:ap

68 struct	alts_mempart *ap = &alts_part;	/* pointer to incore alts tables */  variable
106 ap->ap_flag |= ALTS_ADDPART; in updatebadsec()
109 ent_sort(ap->ap_gbadp, ap->ap_gbadcnt); in updatebadsec()
110 ent_compress(ap->ap_gbadp, ap->ap_gbadcnt); in updatebadsec()
123 if (ap->ap_tblp == NULL) { in read_altsctr()
125 ap->ap_tbl_secsiz = byte_to_secsiz(ALTS_PARTTBL_SIZE, NBPSCTR); in read_altsctr()
126 ap->ap_tblp = (struct alts_parttbl *)malloc(ap->ap_tbl_secsiz); in read_altsctr()
127 if (ap->ap_tblp == NULL) { in read_altsctr()
137 if ((ap->ap_memmapp = (uchar_t *)malloc(part->p_size)) == NULL) { in read_altsctr()
142 ap->ap_tblp->alts_map_len = (part->p_size + 8 - 1) / 8; in read_altsctr()
143 ap->ap_map_secsiz = byte_to_secsiz(ap->ap_tblp->alts_map_len, in read_altsctr()
145 ap->ap_map_sectot = ap->ap_map_secsiz / NBPSCTR; in read_altsctr()
146 if ((ap->ap_mapp = (uchar_t *)malloc(ap->ap_map_secsiz)) == NULL) { in read_altsctr()
152 (void) memset(ap->ap_memmapp, 0, part->p_size); in read_altsctr()
153 (void) memset(ap->ap_mapp, 0, ap->ap_map_secsiz); in read_altsctr()
154 ap->part = *part; /* struct copy */ in read_altsctr()
161 if (ap->ap_flag & ALTS_ADDPART) { in read_altsctr()
182 blkaddr_t altsp_srtsec = ap->part.p_start; in chk_badsec()
183 blkaddr_t altsp_endsec = ap->part.p_start + ap->part.p_size - 1; in chk_badsec()
187 for (cnt = 0; cnt < ap->ap_gbadcnt; cnt++) { in chk_badsec()
188 badsec = (ap->ap_gbadp)[cnt].bad_start; in chk_badsec()
192 if ((ap->ap_memmapp)[badsec - altsp_srtsec] != ALTS_BAD) { in chk_badsec()
194 ap->ap_tbl_secsiz / NBPSCTR - 1))) { in chk_badsec()
199 if ((badsec >= altsp_srtsec+ap->ap_tblp->alts_map_base) && in chk_badsec()
200 (badsec <= (altsp_srtsec + ap->ap_tblp->alts_map_base + in chk_badsec()
201 ap->ap_map_sectot - 1))) { in chk_badsec()
206 if ((badsec >= altsp_srtsec+ap->ap_tblp->alts_ent_base) && in chk_badsec()
207 (badsec <= (altsp_srtsec + ap->ap_tblp->alts_ent_base + in chk_badsec()
208 ap->ap_ent_secsiz / NBPSCTR - 1))) { in chk_badsec()
213 (ap->ap_memmapp)[badsec - altsp_srtsec] = ALTS_BAD; in chk_badsec()
214 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
217 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
223 status = ent_bsearch(ap->ap_entp, ap->ap_tblp->alts_ent_used, in chk_badsec()
224 &((ap->ap_gbadp)[cnt])); in chk_badsec()
230 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
244 blkaddr_t altsp_srtsec = ap->part.p_start; in init_altsctr()
245 blkaddr_t altsp_endsec = ap->part.p_start + ap->part.p_size - 1; in init_altsctr()
248 ap->ap_entp = NULL; in init_altsctr()
249 ap->ap_ent_secsiz = 0; in init_altsctr()
250 ap->ap_tblp->alts_sanity = ALTS_SANITY; in init_altsctr()
251 ap->ap_tblp->alts_version = ALTS_VERSION1; in init_altsctr()
252 ap->ap_tblp->alts_map_len = (ap->part.p_size + 8 - 1) / 8; in init_altsctr()
253 ap->ap_tblp->alts_ent_used = 0; in init_altsctr()
254 ap->ap_tblp->alts_ent_base = 0; in init_altsctr()
255 ap->ap_tblp->alts_ent_end = 0; in init_altsctr()
256 ap->ap_tblp->alts_resv_base = ap->part.p_size - 1; in init_altsctr()
258 ap->ap_tblp->alts_pad[cnt] = 0; in init_altsctr()
260 for (cnt = 0; cnt < ap->ap_gbadcnt; cnt++) { in init_altsctr()
261 badsec = (ap->ap_gbadp)[cnt].bad_start; in init_altsctr()
268 (ap->ap_memmapp)[badsec - altsp_srtsec] = ALTS_BAD; in init_altsctr()
269 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in init_altsctr()
274 ap->ap_tblp->alts_map_base = in init_altsctr()
275 altsmap_alloc(ap->ap_tbl_secsiz / NBPSCTR, in init_altsctr()
276 ap->part.p_size, ap->ap_map_sectot, ALTS_MAP_UP); in init_altsctr()
277 if (ap->ap_tblp->alts_map_base == 0) { in init_altsctr()
293 if (absdsk_io(alts_fd, 0, (char *)ap->ap_tblp,
294 ap->ap_tbl_secsiz, CMD_READ) == FAILURE) {
300 if (ap->ap_tblp->alts_sanity != ALTS_SANITY) {
308 if (absdsk_io(alts_fd, ap->ap_tblp->alts_map_base,
309 (char *)ap->ap_mapp, ap->ap_map_secsiz, CMD_READ) == FAILURE) {
319 if (ap->ap_tblp->alts_ent_used == 0) {
320 ap->ap_entp = NULL;
321 ap->ap_ent_secsiz = 0;
323 ap->ap_ent_secsiz = byte_to_secsiz(
324 (ap->ap_tblp->alts_ent_used*ALTS_ENT_SIZE),NBPSCTR);
325 if ((ap->ap_entp =
326 (struct alts_ent *)malloc(ap->ap_ent_secsiz)) == NULL) {
334 if (absdsk_io(alts_fd, ap->ap_tblp->alts_ent_base,
335 (char *)ap->ap_entp, ap->ap_ent_secsiz,
353 if (ap->ap_tblp == NULL) in wr_altsctr()
355 if (absdsk_io(alts_fd, 0, (char *)ap->ap_tblp, in wr_altsctr()
356 ap->ap_tbl_secsiz, CMD_WRITE) == FAILURE) { in wr_altsctr()
361 if (absdsk_io(alts_fd, ap->ap_tblp->alts_map_base, in wr_altsctr()
362 (char *)ap->ap_mapp, ap->ap_map_secsiz, CMD_WRITE) == FAILURE) { in wr_altsctr()
367 if (ap->ap_tblp->alts_ent_used != 0) { in wr_altsctr()
368 if (absdsk_io(alts_fd, ap->ap_tblp->alts_ent_base, in wr_altsctr()
369 (char *)ap->ap_entp, ap->ap_ent_secsiz, in wr_altsctr()
394 ap->ap_gbadp = NULL; in get_badsec()
395 ap->ap_gbadcnt = 0; in get_badsec()
397 ap->ap_gbadp = (struct alts_ent *)malloc(cnt*ALTS_ENT_SIZE); in get_badsec()
398 (void) memset(ap->ap_gbadp,0,cnt*ALTS_ENT_SIZE); in get_badsec()
400 for (growbadp = ap->ap_gbadp, cnt=0, blc_p=badsl_chain; in get_badsec()
422 ap->ap_gbadcnt = cnt; in get_badsec()
459 if (ap->ap_gbadcnt == 0) in gen_alts_ent()
462 ent_used = ap->ap_tblp->alts_ent_used + ap->ap_gbadcnt; in gen_alts_ent()
463 ap->ap_ent_secsiz = byte_to_secsiz(ent_used*ALTS_ENT_SIZE,NBPSCTR); in gen_alts_ent()
464 entp=(struct alts_ent *) malloc (ap->ap_ent_secsiz); in gen_alts_ent()
465 ent_used = ent_merge(entp, ap->ap_entp, ap->ap_tblp->alts_ent_used, in gen_alts_ent()
466 ap->ap_gbadp, ap->ap_gbadcnt); in gen_alts_ent()
467 if (ap->ap_entp) in gen_alts_ent()
468 free(ap->ap_entp); in gen_alts_ent()
469 if (ap->ap_gbadp) in gen_alts_ent()
470 free(ap->ap_gbadp); in gen_alts_ent()
471 ap->ap_entp = entp; in gen_alts_ent()
472 ap->ap_ent_secsiz = byte_to_secsiz(ent_used*ALTS_ENT_SIZE, NBPSCTR); in gen_alts_ent()
473 ap->ap_tblp->alts_ent_used = ent_used; in gen_alts_ent()
474 ap->ap_gbadp = NULL; in gen_alts_ent()
475 ap->ap_gbadcnt = 0; in gen_alts_ent()
481 ap->ap_tblp->alts_ent_base = in gen_alts_ent()
482 altsmap_alloc(ap->ap_tblp->alts_map_base + ap->ap_map_sectot, in gen_alts_ent()
483 ap->part.p_size, in gen_alts_ent()
484 ap->ap_ent_secsiz / NBPSCTR, ALTS_MAP_UP); in gen_alts_ent()
485 if (ap->ap_tblp->alts_ent_base == 0) { in gen_alts_ent()
490 ap->ap_tblp->alts_ent_end = ap->ap_tblp->alts_ent_base + in gen_alts_ent()
491 (ap->ap_ent_secsiz / NBPSCTR) - 1; in gen_alts_ent()
506 for (i = 0; i < ap->ap_tblp->alts_ent_used; i++) { in assign_altsctr()
507 if ((ap->ap_entp)[i].bad_start == (uint32_t)ALTS_ENT_EMPTY) in assign_altsctr()
509 if ((ap->ap_entp)[i].good_start != 0) in assign_altsctr()
511 cluster = (ap->ap_entp)[i].bad_end-(ap->ap_entp)[i].bad_start +1; in assign_altsctr()
513 altsmap_alloc(ap->part.p_size-1, ap->ap_tblp->alts_map_base + in assign_altsctr()
514 ap->ap_map_sectot - 1, cluster, ALTS_MAP_DOWN); in assign_altsctr()
518 " sector %u.\n", (ap->ap_entp)[i].bad_start); in assign_altsctr()
522 (ap->ap_entp)[i].good_start = alts_ind + ap->part.p_start; in assign_altsctr()
524 (ap->ap_memmapp)[alts_ind+j] = ALTS_BAD; in assign_altsctr()
539 for (i = 0; i < ap->part.p_size; i++) { in expand_map()
540 (ap->ap_memmapp)[i] = altsmap_getbit(i); in expand_map()
556 for (i = 0, bytesz = 7; i < ap->part.p_size; i++) { in compress_map()
557 mask |= ((ap->ap_memmapp)[i] << bytesz--); in compress_map()
559 (ap->ap_mapp)[maplen++] = mask; in compress_map()
569 (ap->ap_mapp)[maplen] = mask; in compress_map()
586 if ((ap->ap_mapp)[slot] & mask) in altsmap_getbit()
604 if ((ap->ap_memmapp)[i] == ALTS_BAD) { in altsmap_alloc()
768 int cnt = ap->ap_tblp->alts_ent_used; in chk_bad_altsctr()
774 numsec = (ap->ap_entp)[i].bad_end - (ap->ap_entp)[i].bad_start; in chk_bad_altsctr()
775 if ((badsec >= (ap->ap_entp)[i].good_start) && in chk_bad_altsctr()
776 (badsec <= ((ap->ap_entp)[i].good_start + numsec))) { in chk_bad_altsctr()
802 ap->ap_tblp = NULL; in print_altsec()
803 ap->ap_flag &= ~ALTS_ADDPART; in print_altsec()
817 for (i=0, totalloc=0; i<ap->part.p_size; i++) { in print_altsctr()
818 if ((ap->ap_memmapp)[i]) in print_altsctr()
826 avail = ap->part.p_size - totalloc; in print_altsctr()
827 avail = avail - (ap->ap_tbl_secsiz/NBPSCTR) in print_altsctr()
828 - ap->ap_map_sectot; in print_altsctr()
829 avail = avail-(ap->ap_tblp->alts_ent_end -ap->ap_tblp->alts_ent_base+1); in print_altsctr()
835 for (i=0; i<ap->ap_tblp->alts_ent_used; i++) { in print_altsctr()
837 (ap->ap_entp)[i].bad_start, in print_altsctr()
838 (ap->ap_entp)[i].good_start, in print_altsctr()
839 ((ap->ap_entp)[i].bad_end - (ap->ap_entp)[i].bad_start + 1)); in print_altsctr()