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__ */
|