Lines Matching refs:spi

261 sbd_swap_pgr_info(sbd_pgr_info_t *spi)
263 sbd_swap_section_hdr(&spi->pgr_sms_header);
264 if (spi->pgr_data_order == SMS_DATA_ORDER)
266 spi->pgr_sms_header.sms_chksum += SMS_DATA_ORDER - spi->pgr_data_order;
267 spi->pgr_rsvholder_indx = BSWAP_32(spi->pgr_rsvholder_indx);
268 spi->pgr_numkeys = BSWAP_32(spi->pgr_numkeys);
282 sbd_pgr_info_t *spi = NULL;
287 spi = (sbd_pgr_info_t *)kmem_zalloc(sz, KM_SLEEP);
288 spi->pgr_data_order = SMS_DATA_ORDER;
289 spi->pgr_sms_header.sms_size = sz;
290 spi->pgr_sms_header.sms_id = SMS_ID_PGR_INFO;
291 spi->pgr_sms_header.sms_data_order = SMS_DATA_ORDER;
293 ret = sbd_write_meta_section(slu, (sm_section_hdr_t *)spi);
294 kmem_free(spi, sz);
302 sbd_pgr_info_t *spi = NULL;
310 ret = sbd_read_meta_section(slu, (sm_section_hdr_t **)&spi,
321 if (spi->pgr_data_order != SMS_DATA_ORDER) {
322 sbd_swap_pgr_info(spi);
325 pgr->pgr_flags = spi->pgr_flags;
327 pgr->pgr_rsv_type = spi->pgr_rsv_type;
328 pgr->pgr_rsv_scope = spi->pgr_rsv_scope;
335 endoffset = (uint8_t *)spi;
336 endoffset += spi->pgr_sms_header.sms_size;
337 keyoffset = (uint8_t *)(spi + 1);
338 for (i = 1; i <= spi->pgr_numkeys; i++) {
341 if (spi->pgr_data_order != SMS_DATA_ORDER) {
407 (i == spi->pgr_rsvholder_indx)) {
412 kmem_free(spi, spi->pgr_sms_header.sms_size);
419 kmem_free(spi, spi->pgr_sms_header.sms_size);
431 sbd_pgr_info_t *spi;
450 spi = (sbd_pgr_info_t *)kmem_zalloc(totalsz, KM_SLEEP);
451 spi->pgr_flags = pgr->pgr_flags;
452 spi->pgr_rsv_type = pgr->pgr_rsv_type;
453 spi->pgr_rsv_scope = pgr->pgr_rsv_scope;
454 spi->pgr_data_order = SMS_DATA_ORDER;
455 spi->pgr_numkeys = 0;
457 spi->pgr_sms_header.sms_size = totalsz;
458 spi->pgr_sms_header.sms_id = SMS_ID_PGR_INFO;
459 spi->pgr_sms_header.sms_data_order = SMS_DATA_ORDER;
466 spi_key = (sbd_pgr_key_info_t *)((uint8_t *)spi + sz);
476 spi->pgr_numkeys++;
478 spi->pgr_rsvholder_indx = spi->pgr_numkeys;
488 ret = sbd_write_meta_section(slu, (sm_section_hdr_t *)spi);
489 kmem_free(spi, totalsz);