Home
last modified time | relevance | path

Searched refs:geo (Results 1 – 25 of 48) sorted by relevance

12

/linux-4.19.296/lib/
Dbtree.c137 static void dec_key(struct btree_geo *geo, unsigned long *key) in dec_key() argument
142 for (i = geo->keylen - 1; i >= 0; i--) { in dec_key()
150 static unsigned long *bkey(struct btree_geo *geo, unsigned long *node, int n) in bkey() argument
152 return &node[n * geo->keylen]; in bkey()
155 static void *bval(struct btree_geo *geo, unsigned long *node, int n) in bval() argument
157 return (void *)node[geo->no_longs + n]; in bval()
160 static void setkey(struct btree_geo *geo, unsigned long *node, int n, in setkey() argument
163 longcpy(bkey(geo, node, n), key, geo->keylen); in setkey()
166 static void setval(struct btree_geo *geo, unsigned long *node, int n, in setval() argument
169 node[geo->no_longs + n] = (unsigned long) val; in setval()
[all …]
/linux-4.19.296/fs/xfs/libxfs/
Dxfs_dir2.h78 int (*leaf_max_ents)(struct xfs_da_geometry *geo);
95 int (*free_max_bests)(struct xfs_da_geometry *geo);
97 xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *geo,
99 int (*db_to_fdindex)(struct xfs_da_geometry *geo,
146 extern void xfs_dir2_data_freescan_int(struct xfs_da_geometry *geo,
205 xfs_dir2_byte_to_db(struct xfs_da_geometry *geo, xfs_dir2_off_t by) in xfs_dir2_byte_to_db() argument
207 return (xfs_dir2_db_t)(by >> geo->blklog); in xfs_dir2_byte_to_db()
214 xfs_dir2_dataptr_to_db(struct xfs_da_geometry *geo, xfs_dir2_dataptr_t dp) in xfs_dir2_dataptr_to_db() argument
216 return xfs_dir2_byte_to_db(geo, xfs_dir2_dataptr_to_byte(dp)); in xfs_dir2_dataptr_to_db()
223 xfs_dir2_byte_to_off(struct xfs_da_geometry *geo, xfs_dir2_off_t by) in xfs_dir2_byte_to_off() argument
[all …]
Dxfs_sb.c1087 struct xfs_fsop_geom *geo, in xfs_fs_geometry() argument
1090 memset(geo, 0, sizeof(struct xfs_fsop_geom)); in xfs_fs_geometry()
1092 geo->blocksize = sbp->sb_blocksize; in xfs_fs_geometry()
1093 geo->rtextsize = sbp->sb_rextsize; in xfs_fs_geometry()
1094 geo->agblocks = sbp->sb_agblocks; in xfs_fs_geometry()
1095 geo->agcount = sbp->sb_agcount; in xfs_fs_geometry()
1096 geo->logblocks = sbp->sb_logblocks; in xfs_fs_geometry()
1097 geo->sectsize = sbp->sb_sectsize; in xfs_fs_geometry()
1098 geo->inodesize = sbp->sb_inodesize; in xfs_fs_geometry()
1099 geo->imaxpct = sbp->sb_imax_pct; in xfs_fs_geometry()
[all …]
Dxfs_attr_leaf.c96 struct xfs_da_geometry *geo, in xfs_attr3_leaf_firstused_from_disk() argument
116 ASSERT(geo->blksize > USHRT_MAX); in xfs_attr3_leaf_firstused_from_disk()
117 to->firstused = geo->blksize; in xfs_attr3_leaf_firstused_from_disk()
123 struct xfs_da_geometry *geo, in xfs_attr3_leaf_firstused_to_disk() argument
140 ASSERT(from->firstused == geo->blksize); in xfs_attr3_leaf_firstused_to_disk()
154 struct xfs_da_geometry *geo, in xfs_attr3_leaf_hdr_from_disk() argument
171 xfs_attr3_leaf_firstused_from_disk(geo, to, from); in xfs_attr3_leaf_hdr_from_disk()
185 xfs_attr3_leaf_firstused_from_disk(geo, to, from); in xfs_attr3_leaf_hdr_from_disk()
196 struct xfs_da_geometry *geo, in xfs_attr3_leaf_hdr_to_disk() argument
213 xfs_attr3_leaf_firstused_to_disk(geo, to, from); in xfs_attr3_leaf_hdr_to_disk()
[all …]
Dxfs_dir2_leaf.c93 struct xfs_da_geometry *geo = mp->m_dir_geo; in xfs_dir3_leaf_check_int() local
107 ltp = xfs_dir2_leaf_tail_p(geo, leaf); in xfs_dir3_leaf_check_int()
114 if (hdr->count > ops->leaf_max_ents(geo)) in xfs_dir3_leaf_check_int()
371 ASSERT(bno >= xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET) && in xfs_dir3_leaf_get_buf()
372 bno < xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET)); in xfs_dir3_leaf_get_buf()
374 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, bno), in xfs_dir3_leaf_get_buf()
425 ldb = xfs_dir2_da_to_db(args->geo, blkno); in xfs_dir2_block_to_leaf()
426 ASSERT(ldb == xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET)); in xfs_dir2_block_to_leaf()
437 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_to_leaf()
465 (xfs_dir2_data_aoff_t)((char *)hdr + args->geo->blksize - in xfs_dir2_block_to_leaf()
[all …]
Dxfs_da_format.c410 xfs_dir2_max_leaf_ents(struct xfs_da_geometry *geo) in xfs_dir2_max_leaf_ents() argument
412 return (geo->blksize - sizeof(struct xfs_dir2_leaf_hdr)) / in xfs_dir2_max_leaf_ents()
423 xfs_dir3_max_leaf_ents(struct xfs_da_geometry *geo) in xfs_dir3_max_leaf_ents() argument
425 return (geo->blksize - sizeof(struct xfs_dir3_leaf_hdr)) / in xfs_dir3_max_leaf_ents()
576 xfs_dir2_free_max_bests(struct xfs_da_geometry *geo) in xfs_dir2_free_max_bests() argument
578 return (geo->blksize - sizeof(struct xfs_dir2_free_hdr)) / in xfs_dir2_free_max_bests()
592 xfs_dir2_db_to_fdb(struct xfs_da_geometry *geo, xfs_dir2_db_t db) in xfs_dir2_db_to_fdb() argument
594 return xfs_dir2_byte_to_db(geo, XFS_DIR2_FREE_OFFSET) + in xfs_dir2_db_to_fdb()
595 (db / xfs_dir2_free_max_bests(geo)); in xfs_dir2_db_to_fdb()
602 xfs_dir2_db_to_fdindex(struct xfs_da_geometry *geo, xfs_dir2_db_t db) in xfs_dir2_db_to_fdindex() argument
[all …]
Dxfs_dir2.c228 args->geo = dp->i_mount->m_dir_geo; in xfs_dir_init()
265 args->geo = dp->i_mount->m_dir_geo; in xfs_dir_createname()
361 args->geo = dp->i_mount->m_dir_geo; in xfs_dir_lookup()
433 args->geo = dp->i_mount->m_dir_geo; in xfs_dir_removename()
494 args->geo = dp->i_mount->m_dir_geo; in xfs_dir_replace()
570 count = args->geo->fsbcount; in xfs_dir2_grow_inode()
576 *dbp = xfs_dir2_da_to_db(args->geo, (xfs_dablk_t)bno); in xfs_dir2_grow_inode()
606 rval = XFS_FSB_TO_B(args->dp->i_mount, last) == args->geo->blksize; in xfs_dir2_isblock()
607 if (rval != 0 && args->dp->i_d.di_size != args->geo->blksize) in xfs_dir2_isblock()
626 *vp = last == args->geo->leafblk + args->geo->fsbcount; in xfs_dir2_isleaf()
[all …]
Dxfs_dir2_node.c261 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, fbno), in xfs_dir3_free_get_buf()
368 ASSERT(fdb == xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET)); in xfs_dir2_leaf_to_node()
379 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf); in xfs_dir2_leaf_to_node()
381 (uint)dp->i_d.di_size / args->geo->blksize) in xfs_dir2_leaf_to_node()
465 if (leafhdr.count == dp->d_ops->leaf_max_ents(args->geo)) { in xfs_dir2_leafn_add()
500 lep->address = cpu_to_be32(xfs_dir2_db_off_to_dataptr(args->geo, in xfs_dir2_leafn_add()
629 newdb = xfs_dir2_dataptr_to_db(args->geo, in xfs_dir2_leafn_lookup_for_addname()
647 newfdb = dp->d_ops->db_to_fdb(args->geo, newdb); in xfs_dir2_leafn_lookup_for_addname()
659 xfs_dir2_db_to_da(args->geo, in xfs_dir2_leafn_lookup_for_addname()
671 fi = dp->d_ops->db_to_fdindex(args->geo, curdb); in xfs_dir2_leafn_lookup_for_addname()
[all …]
Dxfs_dir2_block.c367 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_addname()
627 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup()
633 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_lookup()
680 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup_int()
718 ((char *)hdr + xfs_dir2_dataptr_to_off(args->geo, addr)); in xfs_dir2_block_lookup_int()
783 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_removename()
789 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_removename()
857 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_replace()
863 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_replace()
931 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf); in xfs_dir2_leaf_to_block()
[all …]
Dxfs_dir2_data.c58 struct xfs_da_geometry *geo; in __xfs_dir3_data_check() local
61 geo = mp->m_dir_geo; in __xfs_dir3_data_check()
83 btp = xfs_dir2_block_tail_p(geo, hdr); in __xfs_dir3_data_check()
103 endp = xfs_dir3_data_endp(geo, hdr); in __xfs_dir3_data_check()
191 addr = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, in __xfs_dir3_data_check()
567 struct xfs_da_geometry *geo, in xfs_dir2_data_freescan_int() argument
593 endp = xfs_dir3_data_endp(geo, hdr); in xfs_dir2_data_freescan_int()
657 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, blkno), in xfs_dir3_data_init()
693 t = args->geo->blksize - (uint)dp->d_ops->data_entry_offset; in xfs_dir3_data_init()
806 endptr = xfs_dir3_data_endp(args->geo, hdr); in xfs_dir2_data_make_free()
[all …]
Dxfs_attr_leaf.h90 void xfs_attr3_leaf_hdr_from_disk(struct xfs_da_geometry *geo,
93 void xfs_attr3_leaf_hdr_to_disk(struct xfs_da_geometry *geo,
/linux-4.19.296/fs/xfs/
Dxfs_dir2_readdir.c59 struct xfs_da_geometry *geo = args->geo; in xfs_dir2_sf_getdents() local
70 if (xfs_dir2_dataptr_to_db(geo, ctx->pos) > geo->datablk) in xfs_dir2_sf_getdents()
79 dot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, in xfs_dir2_sf_getdents()
81 dotdot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, in xfs_dir2_sf_getdents()
110 off = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, in xfs_dir2_sf_getdents()
127 ctx->pos = xfs_dir2_db_off_to_dataptr(geo, geo->datablk + 1, 0) & in xfs_dir2_sf_getdents()
150 struct xfs_da_geometry *geo = args->geo; in xfs_dir2_block_getdents() local
156 if (xfs_dir2_dataptr_to_db(geo, ctx->pos) > geo->datablk) in xfs_dir2_block_getdents()
169 wantoff = xfs_dir2_dataptr_to_off(geo, ctx->pos); in xfs_dir2_block_getdents()
176 endptr = xfs_dir3_data_endp(geo, hdr); in xfs_dir2_block_getdents()
[all …]
/linux-4.19.296/drivers/lightnvm/
Dpblk-init.c178 struct nvm_geo *geo = &dev->geo; in pblk_rwb_init() local
184 pgs_in_buffer = (max(geo->mw_cunits, geo->ws_opt) + geo->ws_opt) in pblk_rwb_init()
185 * geo->all_luns; in pblk_rwb_init()
199 power_seg_sz = get_count_order(geo->csecs); in pblk_rwb_init()
207 static int pblk_set_addrf_12(struct pblk *pblk, struct nvm_geo *geo, in pblk_set_addrf_12() argument
210 struct nvm_addrf_12 *src = (struct nvm_addrf_12 *)&geo->addrf; in pblk_set_addrf_12()
214 power_len = get_count_order(geo->num_ch); in pblk_set_addrf_12()
215 if (1 << power_len != geo->num_ch) { in pblk_set_addrf_12()
221 power_len = get_count_order(geo->num_lun); in pblk_set_addrf_12()
222 if (1 << power_len != geo->num_lun) { in pblk_set_addrf_12()
[all …]
Dcore.c125 int lunid = (ch * dev->geo.num_lun) + lun; in nvm_remove_tgt_dev()
152 int num_ch = num_lun / dev->geo.num_lun; in nvm_create_tgt_dev()
153 int num_ch_mod = num_lun % dev->geo.num_lun; in nvm_create_tgt_dev()
154 int bch = lun_begin / dev->geo.num_lun; in nvm_create_tgt_dev()
155 int blun = lun_begin % dev->geo.num_lun; in nvm_create_tgt_dev()
175 prev_num_lun = (luns_left > dev->geo.num_lun) ? in nvm_create_tgt_dev()
176 dev->geo.num_lun : luns_left; in nvm_create_tgt_dev()
182 int luns_in_chnl = (luns_left > dev->geo.num_lun) ? in nvm_create_tgt_dev()
183 dev->geo.num_lun : luns_left; in nvm_create_tgt_dev()
218 memcpy(&tgt_dev->geo, &dev->geo, sizeof(struct nvm_geo)); in nvm_create_tgt_dev()
[all …]
Dpblk.h982 struct nvm_geo *geo = &dev->geo; in pblk_pad_distance() local
984 return geo->mw_cunits * geo->all_luns * geo->ws_opt; in pblk_pad_distance()
992 static inline int pblk_ppa_to_pos(struct nvm_geo *geo, struct ppa_addr p) in pblk_ppa_to_pos() argument
994 return p.a.lun * geo->num_ch + p.a.ch; in pblk_ppa_to_pos()
1001 struct nvm_geo *geo = &dev->geo; in addr_to_gen_ppa() local
1004 if (geo->version == NVM_OCSSD_SPEC_12) { in addr_to_gen_ppa()
1041 struct nvm_geo *geo = &dev->geo; in pblk_dev_ppa_to_line_addr() local
1044 if (geo->version == NVM_OCSSD_SPEC_12) { in pblk_dev_ppa_to_line_addr()
1081 struct nvm_geo *geo = &dev->geo; in pblk_ppa32_to_ppa64() local
1083 if (geo->version == NVM_OCSSD_SPEC_12) { in pblk_ppa32_to_ppa64()
[all …]
Dpblk-recovery.c36 struct nvm_geo *geo = &dev->geo; in pblk_recov_l2p_from_emeta() local
58 pos = pblk_ppa_to_pos(geo, ppa); in pblk_recov_l2p_from_emeta()
91 struct nvm_geo *geo = &dev->geo; in pblk_calc_sec_in_line() local
96 nr_bb * geo->clba; in pblk_calc_sec_in_line()
112 struct nvm_geo *geo = &dev->geo; in pblk_recov_read_oob() local
144 rq_len = rq_ppas * geo->csecs; in pblk_recov_read_oob()
171 pos = pblk_ppa_to_pos(geo, ppa); in pblk_recov_read_oob()
176 pos = pblk_ppa_to_pos(geo, ppa); in pblk_recov_read_oob()
241 struct nvm_geo *geo = &dev->geo; in pblk_recov_pad_oob() local
263 data = vzalloc(array_size(pblk->max_write_pgs, geo->csecs)); in pblk_recov_pad_oob()
[all …]
Dpblk-core.c36 pos = pblk_ppa_to_pos(&dev->geo, *ppa); in pblk_line_mark_bb()
50 struct nvm_geo *geo = &dev->geo; in pblk_mark_bb() local
52 int pos = pblk_ppa_to_pos(geo, ppa_addr); in pblk_mark_bb()
63 if (geo->version == NVM_OCSSD_SPEC_20) in pblk_mark_bb()
78 struct nvm_geo *geo = &dev->geo; in __pblk_end_io_erase() local
84 pos = pblk_ppa_to_pos(geo, rqd->ppa_addr); in __pblk_end_io_erase()
116 struct nvm_geo *geo = &dev->geo; in pblk_chunk_get_info() local
124 len = geo->all_chunks * sizeof(*meta); in pblk_chunk_get_info()
129 ret = nvm_get_chunk_meta(dev, meta, ppa, geo->all_chunks); in pblk_chunk_get_info()
143 struct nvm_geo *geo = &dev->geo; in pblk_chunk_get_off() local
[all …]
Dpblk-write.c110 struct nvm_geo *geo = &dev->geo; in pblk_map_remaining() local
128 if (geo->version == NVM_OCSSD_SPEC_12) { in pblk_map_remaining()
130 if (map_ppa.g.pg == geo->num_pg) in pblk_map_remaining()
134 if (map_ppa.m.sec == geo->clba) in pblk_map_remaining()
376 struct nvm_geo *geo = &dev->geo; in pblk_submit_meta_io() local
396 rq_len = rq_ppas * geo->csecs; in pblk_submit_meta_io()
456 struct nvm_geo *geo = &dev->geo; in pblk_valid_meta_ppa() local
475 pos_opt = pblk_ppa_to_pos(geo, ppa_opt); in pblk_valid_meta_ppa()
541 struct nvm_geo *geo = &dev->geo; in pblk_submit_io_set() local
545 bit = pblk_ppa_to_pos(geo, erase_ppa); in pblk_submit_io_set()
Dpblk-sysfs.c26 struct nvm_geo *geo = &dev->geo; in pblk_sysfs_luns_show() local
31 for (i = 0; i < geo->all_luns; i++) { in pblk_sysfs_luns_show()
115 struct nvm_geo *geo = &dev->geo; in pblk_sysfs_ppaf() local
118 if (geo->version == NVM_OCSSD_SPEC_12) { in pblk_sysfs_ppaf()
120 struct nvm_addrf_12 *gppaf = (struct nvm_addrf_12 *)&geo->addrf; in pblk_sysfs_ppaf()
142 struct nvm_addrf *gppaf = &geo->addrf; in pblk_sysfs_ppaf()
166 struct nvm_geo *geo = &dev->geo; in pblk_sysfs_lines() local
282 geo->all_luns, lm->blk_per_line, lm->sec_per_line); in pblk_sysfs_lines()
311 struct nvm_geo *geo = &dev->geo; in pblk_sysfs_lines_info() local
331 geo->clba); in pblk_sysfs_lines_info()
/linux-4.19.296/block/partitions/
Dibm.c31 static sector_t cchh2blk(struct vtoc_cchh *ptr, struct hd_geometry *geo) in cchh2blk() argument
41 return cyl * geo->heads * geo->sectors + in cchh2blk()
42 head * geo->sectors; in cchh2blk()
49 static sector_t cchhb2blk(struct vtoc_cchhb *ptr, struct hd_geometry *geo) in cchhb2blk() argument
59 return cyl * geo->heads * geo->sectors + in cchhb2blk()
60 head * geo->sectors + in cchhb2blk()
66 struct hd_geometry *geo, in find_label() argument
134 struct hd_geometry *geo, in find_vol1_partitions() argument
155 blk = cchhb2blk(&label->vol.vtoc, geo) + 1; in find_vol1_partitions()
175 offset = cchh2blk(&f1.DS1EXT1.llimit, geo); in find_vol1_partitions()
[all …]
/linux-4.19.296/include/linux/
Dbtree.h100 void *btree_lookup(struct btree_head *head, struct btree_geo *geo,
115 int __must_check btree_insert(struct btree_head *head, struct btree_geo *geo,
128 int btree_update(struct btree_head *head, struct btree_geo *geo,
140 void *btree_remove(struct btree_head *head, struct btree_geo *geo,
159 struct btree_geo *geo, gfp_t gfp);
172 void *btree_last(struct btree_head *head, struct btree_geo *geo,
186 void *btree_get_prev(struct btree_head *head, struct btree_geo *geo,
191 size_t btree_visitor(struct btree_head *head, struct btree_geo *geo,
199 size_t btree_grim_visitor(struct btree_head *head, struct btree_geo *geo,
Dlightnvm.h395 struct nvm_geo geo; member
412 struct nvm_geo geo; member
435 struct nvm_geo *geo = &dev->geo; in generic_to_dev_addr() local
438 if (geo->version == NVM_OCSSD_SPEC_12) { in generic_to_dev_addr()
439 struct nvm_addrf_12 *ppaf = (struct nvm_addrf_12 *)&geo->addrf; in generic_to_dev_addr()
448 struct nvm_addrf *lbaf = &geo->addrf; in generic_to_dev_addr()
462 struct nvm_geo *geo = &dev->geo; in dev_to_generic_addr() local
467 if (geo->version == NVM_OCSSD_SPEC_12) { in dev_to_generic_addr()
468 struct nvm_addrf_12 *ppaf = (struct nvm_addrf_12 *)&geo->addrf; in dev_to_generic_addr()
477 struct nvm_addrf *lbaf = &geo->addrf; in dev_to_generic_addr()
/linux-4.19.296/fs/xfs/scrub/
Ddir.c491 struct xfs_da_geometry *geo = sc->mp->m_dir_geo; in xchk_directory_leaf1_bestfree() local
510 ltp = xfs_dir2_leaf_tail_p(geo, leaf); in xchk_directory_leaf1_bestfree()
525 if (bestcount != xfs_dir2_byte_to_db(geo, sc->ip->i_d.di_size)) { in xchk_directory_leaf1_bestfree()
531 if (leafhdr.count > d_ops->leaf_max_ents(geo)) { in xchk_directory_leaf1_bestfree()
562 i * args->geo->fsbcount, -1, &dbp); in xchk_directory_leaf1_bestfree()
614 (freehdr.firstdb + i) * args->geo->fsbcount, in xchk_directory_free_bestfree()
659 args.geo = mp->m_dir_geo; in xchk_directory_blocks()
671 got.br_blockcount != args.geo->fsbcount)) { in xchk_directory_blocks()
693 args.geo->fsbcount); in xchk_directory_blocks()
695 lblk += args.geo->fsbcount) { in xchk_directory_blocks()
[all …]
/linux-4.19.296/block/
Dcompat_ioctl.c55 struct hd_geometry geo; in compat_hdio_getgeo() local
63 memset(&geo, 0, sizeof(geo)); in compat_hdio_getgeo()
68 geo.start = get_start_sect(bdev); in compat_hdio_getgeo()
69 ret = disk->fops->getgeo(bdev, &geo); in compat_hdio_getgeo()
73 ret = copy_to_user(ugeo, &geo, 4); in compat_hdio_getgeo()
74 ret |= put_user(geo.start, &ugeo->start); in compat_hdio_getgeo()
/linux-4.19.296/drivers/s390/block/
Dxpram.c233 static int xpram_getgeo(struct block_device *bdev, struct hd_geometry *geo) in xpram_getgeo() argument
243 geo->cylinders = size >> 6; in xpram_getgeo()
244 geo->heads = 4; in xpram_getgeo()
245 geo->sectors = 16; in xpram_getgeo()
246 geo->start = 4; in xpram_getgeo()

12