Lines Matching refs:ap
66 struct alts_mempart *ap = &alts_part; /* pointer to incore */ variable
100 ap->ap_flag |= ALTS_ADDPART;
103 ent_sort(ap->ap_gbadp, ap->ap_gbadcnt);
104 ent_compress(ap->ap_gbadp, ap->ap_gbadcnt);
118 if (ap->ap_tblp == NULL) {
120 ap->ap_tbl_secsiz = byte_to_secsiz(ALTS_PARTTBL_SIZE, NBPSCTR);
121 ap->ap_tblp = (struct alts_parttbl *)malloc(ap->ap_tbl_secsiz);
122 if (ap->ap_tblp == NULL) {
132 if ((ap->ap_memmapp = (uchar_t *)malloc(part->p_size)) == NULL) {
137 ap->ap_tblp->alts_map_len = (part->p_size + 8 - 1) / 8;
138 ap->ap_map_secsiz = byte_to_secsiz(ap->ap_tblp->alts_map_len,
140 ap->ap_map_sectot = ap->ap_map_secsiz / NBPSCTR;
141 if ((ap->ap_mapp = (uchar_t *)malloc(ap->ap_map_secsiz)) == NULL) {
147 (void) memset(ap->ap_memmapp, 0, part->p_size);
148 (void) memset(ap->ap_mapp, 0, ap->ap_map_secsiz);
149 ap->part = *part; /* struct copy */
156 if (ap->ap_flag & ALTS_ADDPART)
179 blkaddr_t altsp_srtsec = ap->part.p_start; in chk_badsec()
180 blkaddr_t altsp_endsec = ap->part.p_start + ap->part.p_size - 1; in chk_badsec()
184 for (cnt = 0; cnt < ap->ap_gbadcnt; cnt++) { in chk_badsec()
185 badsec = (ap->ap_gbadp)[cnt].bad_start; in chk_badsec()
189 if ((ap->ap_memmapp)[badsec - altsp_srtsec] != ALTS_BAD) { in chk_badsec()
191 ap->ap_tbl_secsiz / NBPSCTR - 1))) { in chk_badsec()
196 if ((badsec >= altsp_srtsec+ap->ap_tblp->alts_map_base) && in chk_badsec()
197 (badsec <= (altsp_srtsec + ap->ap_tblp->alts_map_base + in chk_badsec()
198 ap->ap_map_sectot - 1))) { in chk_badsec()
203 if ((badsec >= altsp_srtsec+ap->ap_tblp->alts_ent_base) && in chk_badsec()
204 (badsec <= (altsp_srtsec + ap->ap_tblp->alts_ent_base + in chk_badsec()
205 ap->ap_ent_secsiz / NBPSCTR - 1))) { in chk_badsec()
210 (ap->ap_memmapp)[badsec - altsp_srtsec] = ALTS_BAD; in chk_badsec()
211 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
214 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
220 status = ent_bsearch(ap->ap_entp, ap->ap_tblp->alts_ent_used, in chk_badsec()
221 &((ap->ap_gbadp)[cnt])); in chk_badsec()
227 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in chk_badsec()
241 blkaddr_t altsp_srtsec = ap->part.p_start; in init_altsctr()
242 blkaddr_t altsp_endsec = ap->part.p_start + ap->part.p_size - 1; in init_altsctr()
245 ap->ap_entp = NULL; in init_altsctr()
246 ap->ap_ent_secsiz = 0; in init_altsctr()
247 ap->ap_tblp->alts_sanity = ALTS_SANITY; in init_altsctr()
248 ap->ap_tblp->alts_version = ALTS_VERSION1; in init_altsctr()
249 ap->ap_tblp->alts_map_len = (ap->part.p_size + 8 - 1) / 8; in init_altsctr()
250 ap->ap_tblp->alts_ent_used = 0; in init_altsctr()
251 ap->ap_tblp->alts_ent_base = 0; in init_altsctr()
252 ap->ap_tblp->alts_ent_end = 0; in init_altsctr()
253 ap->ap_tblp->alts_resv_base = ap->part.p_size - 1; in init_altsctr()
255 ap->ap_tblp->alts_pad[cnt] = 0; in init_altsctr()
257 for (cnt = 0; cnt < ap->ap_gbadcnt; cnt++) { in init_altsctr()
258 badsec = (ap->ap_gbadp)[cnt].bad_start; in init_altsctr()
265 (ap->ap_memmapp)[badsec - altsp_srtsec] = ALTS_BAD; in init_altsctr()
266 (ap->ap_gbadp)[cnt].bad_start = (uint32_t)ALTS_ENT_EMPTY; in init_altsctr()
271 ap->ap_tblp->alts_map_base = in init_altsctr()
272 altsmap_alloc(ap->ap_tbl_secsiz / NBPSCTR, in init_altsctr()
273 ap->part.p_size, ap->ap_map_sectot, ALTS_MAP_UP); in init_altsctr()
274 if (ap->ap_tblp->alts_map_base == NULL) { in init_altsctr()
296 ap->ap_tbl_secsiz / UBSIZE, (char *)ap->ap_tblp, in get_altsctr()
302 if (ap->ap_tblp->alts_sanity != ALTS_SANITY) in get_altsctr()
307 (ap->ap_tblp->alts_map_base) + altsec_offset, in get_altsctr()
308 ap->ap_map_secsiz / UBSIZE, (char *)ap->ap_mapp, 0, NULL); in get_altsctr()
317 if (ap->ap_tblp->alts_ent_used == 0) { in get_altsctr()
318 ap->ap_entp = NULL; in get_altsctr()
319 ap->ap_ent_secsiz = 0; in get_altsctr()
321 ap->ap_ent_secsiz = byte_to_secsiz( in get_altsctr()
322 (ap->ap_tblp->alts_ent_used*ALTS_ENT_SIZE), NBPSCTR); in get_altsctr()
323 if ((ap->ap_entp = in get_altsctr()
324 (struct alts_ent *)malloc(ap->ap_ent_secsiz)) == NULL) { in get_altsctr()
331 (ap->ap_tblp->alts_ent_base) + altsec_offset, in get_altsctr()
332 ap->ap_ent_secsiz / UBSIZE, (char *)ap->ap_entp, in get_altsctr()
352 if (ap->ap_tblp == NULL) in wr_altsctr()
355 ap->ap_tbl_secsiz / UBSIZE, (char *)ap->ap_tblp, 0, NULL); in wr_altsctr()
358 status, ap->ap_tbl_secsiz / 512); in wr_altsctr()
363 if (ata_rdwr(DIR_WRITE, cur_file, (ap->ap_tblp->alts_map_base) + in wr_altsctr()
364 altsec_offset, ap->ap_map_secsiz / UBSIZE, in wr_altsctr()
365 (char *)ap->ap_mapp, 0, NULL) == FAILURE) { in wr_altsctr()
370 if (ap->ap_tblp->alts_ent_used != 0) { in wr_altsctr()
372 (ap->ap_tblp->alts_ent_base)+ altsec_offset, in wr_altsctr()
373 ap->ap_ent_secsiz / UBSIZE, in wr_altsctr()
374 (char *)ap->ap_entp, 0, NULL) == FAILURE) { in wr_altsctr()
400 ap->ap_gbadp = NULL; in get_badsec()
401 ap->ap_gbadcnt = 0; in get_badsec()
403 ap->ap_gbadp = malloc(cnt*ALTS_ENT_SIZE); in get_badsec()
404 if (ap->ap_gbadp == NULL) { in get_badsec()
409 (void) memset(ap->ap_gbadp, 0, cnt*ALTS_ENT_SIZE); in get_badsec()
411 for (growbadp = ap->ap_gbadp, cnt = 0, blc_p = badsl_chain; in get_badsec()
431 ap->ap_gbadcnt = cnt; in get_badsec()
467 if (ap->ap_gbadcnt == 0) in gen_alts_ent()
470 ent_used = ap->ap_tblp->alts_ent_used + ap->ap_gbadcnt; in gen_alts_ent()
471 ap->ap_ent_secsiz = byte_to_secsiz(ent_used*ALTS_ENT_SIZE, NBPSCTR); in gen_alts_ent()
472 entp = malloc(ap->ap_ent_secsiz); in gen_alts_ent()
475 ap->ap_ent_secsiz); in gen_alts_ent()
479 ent_used = ent_merge(entp, ap->ap_entp, ap->ap_tblp->alts_ent_used, in gen_alts_ent()
480 ap->ap_gbadp, ap->ap_gbadcnt); in gen_alts_ent()
481 if (ap->ap_entp) in gen_alts_ent()
482 free(ap->ap_entp); in gen_alts_ent()
483 if (ap->ap_gbadp) in gen_alts_ent()
484 free(ap->ap_gbadp); in gen_alts_ent()
485 ap->ap_entp = entp; in gen_alts_ent()
486 ap->ap_ent_secsiz = byte_to_secsiz(ent_used*ALTS_ENT_SIZE, NBPSCTR); in gen_alts_ent()
487 ap->ap_tblp->alts_ent_used = ent_used; in gen_alts_ent()
488 ap->ap_gbadp = NULL; in gen_alts_ent()
489 ap->ap_gbadcnt = 0; in gen_alts_ent()
495 ap->ap_tblp->alts_ent_base = in gen_alts_ent()
496 altsmap_alloc((blkaddr_t)ap->ap_tblp->alts_map_base + in gen_alts_ent()
497 ap->ap_map_sectot, (blkaddr_t)ap->part.p_size, in gen_alts_ent()
498 ap->ap_ent_secsiz / NBPSCTR, ALTS_MAP_UP); in gen_alts_ent()
499 if (ap->ap_tblp->alts_ent_base == NULL) { in gen_alts_ent()
504 ap->ap_tblp->alts_ent_end = ap->ap_tblp->alts_ent_base + in gen_alts_ent()
505 (ap->ap_ent_secsiz / NBPSCTR) - 1; in gen_alts_ent()
521 for (i = 0; i < ap->ap_tblp->alts_ent_used; i++) { in assign_altsctr()
522 if ((ap->ap_entp)[i].bad_start == (uint32_t)ALTS_ENT_EMPTY) in assign_altsctr()
524 if ((ap->ap_entp)[i].good_start != 0) in assign_altsctr()
526 cluster = (ap->ap_entp)[i].bad_end-(ap->ap_entp)[i].bad_start +1; in assign_altsctr()
528 altsmap_alloc(ap->part.p_size-1, ap->ap_tblp->alts_map_base + in assign_altsctr()
529 ap->ap_map_sectot - 1, cluster, ALTS_MAP_DOWN); in assign_altsctr()
533 (ap->ap_entp)[i].bad_start); in assign_altsctr()
537 (ap->ap_entp)[i].good_start = alts_ind +ap->part.p_start; in assign_altsctr()
539 (ap->ap_memmapp)[alts_ind+j] = ALTS_BAD; in assign_altsctr()
554 for (i = 0; i < ap->part.p_size; i++) { in expand_map()
555 (ap->ap_memmapp)[i] = altsmap_getbit(i); in expand_map()
571 for (i = 0, bytesz = 7; i < ap->part.p_size; i++) { in compress_map()
572 mask |= ((ap->ap_memmapp)[i] << bytesz--); in compress_map()
574 (ap->ap_mapp)[maplen++] = mask; in compress_map()
584 (ap->ap_mapp)[maplen] = mask; in compress_map()
602 if ((ap->ap_mapp)[slot] & mask)
624 if ((ap->ap_memmapp)[i] == ALTS_BAD) {
793 int cnt = ap->ap_tblp->alts_ent_used;
799 numsec = (ap->ap_entp)[i].bad_end - (ap->ap_entp)[i].bad_start;
800 if ((badsec >= (ap->ap_entp)[i].good_start) &&
801 (badsec <= ((ap->ap_entp)[i].good_start + numsec))) {