Blame gfs2/libgfs2/rgrp.h

Packit Service 360c39
#ifndef __RGRP_DOT_H__
Packit Service 360c39
#define __RGRP_DOT_H__
Packit Service 360c39
Packit Service 360c39
#include "libgfs2.h"
Packit Service 360c39
Packit Service 360c39
struct rgplan {
Packit Service 360c39
	uint32_t num;
Packit Service 360c39
	uint32_t len;
Packit Service 360c39
};
Packit Service 360c39
Packit Service 360c39
/**
Packit Service 360c39
 * This structure is defined in libgfs2.h as an opaque type. It stores the
Packit Service 360c39
 * constants and context required for creating resource groups from any point
Packit Service 360c39
 * in an application.
Packit Service 360c39
 */
Packit Service 360c39
struct _lgfs2_rgrps {
Packit Service 360c39
	struct osi_root root;
Packit Service 360c39
	struct rgplan plan[2];
Packit Service 360c39
	struct gfs2_sbd *sdp;
Packit Service 360c39
	unsigned long align;
Packit Service 360c39
	unsigned long align_off;
Packit Service 360c39
};
Packit Service 360c39
Packit Service 360c39
struct lgfs2_rbm {
Packit Service 360c39
	lgfs2_rgrp_t rgd;
Packit Service 360c39
	uint32_t offset;    /* The offset is bitmap relative */
Packit Service 360c39
	unsigned bii;       /* Bitmap index */
Packit Service 360c39
};
Packit Service 360c39
Packit Service 360c39
static inline struct gfs2_bitmap *rbm_bi(const struct lgfs2_rbm *rbm)
Packit Service 360c39
{
Packit Service 360c39
	return rbm->rgd->bits + rbm->bii;
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
static inline uint64_t lgfs2_rbm_to_block(const struct lgfs2_rbm *rbm)
Packit Service 360c39
{
Packit Service 360c39
	return rbm->rgd->ri.ri_data0 + (rbm_bi(rbm)->bi_start * GFS2_NBBY) +
Packit Service 360c39
	        rbm->offset;
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
static inline int lgfs2_rbm_eq(const struct lgfs2_rbm *rbm1, const struct lgfs2_rbm *rbm2)
Packit Service 360c39
{
Packit Service 360c39
	return (rbm1->rgd == rbm2->rgd) && (rbm1->bii == rbm2->bii) &&
Packit Service 360c39
	        (rbm1->offset == rbm2->offset);
Packit Service 360c39
}
Packit Service 360c39
Packit Service 360c39
extern int lgfs2_rbm_from_block(struct lgfs2_rbm *rbm, uint64_t block);
Packit Service 360c39
extern int lgfs2_rbm_find(struct lgfs2_rbm *rbm, uint8_t state, uint32_t *minext);
Packit Service 360c39
extern unsigned lgfs2_alloc_extent(const struct lgfs2_rbm *rbm, int state, const unsigned elen);
Packit Service 360c39
Packit Service 360c39
#endif /* __RGRP_DOT_H__ */