extern blkid_probe blkid_new_probe(void)
__ul_attribute__((warn_unused_result));
extern blkid_probe blkid_new_probe_from_filename(const char *filename)
- __ul_attribute__((warn_unused_result));
+ __ul_attribute__((warn_unused_result))
+ __ul_attribute__((nonnull));
extern void blkid_free_probe(blkid_probe pr);
extern void blkid_reset_probe(blkid_probe pr);
extern int blkid_probe_set_device(blkid_probe pr, int fd,
- blkid_loff_t off, blkid_loff_t size);
+ blkid_loff_t off, blkid_loff_t size)
+ __ul_attribute__((nonnull));
extern dev_t blkid_probe_get_devno(blkid_probe pr)
__ul_attribute__((nonnull));
extern int blkid_probe_is_wholedisk(blkid_probe pr)
__ul_attribute__((nonnull));
-extern blkid_loff_t blkid_probe_get_size(blkid_probe pr);
-extern blkid_loff_t blkid_probe_get_offset(blkid_probe pr);
-extern unsigned int blkid_probe_get_sectorsize(blkid_probe pr);
-extern blkid_loff_t blkid_probe_get_sectors(blkid_probe pr);
+extern blkid_loff_t blkid_probe_get_size(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern blkid_loff_t blkid_probe_get_offset(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern unsigned int blkid_probe_get_sectorsize(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern blkid_loff_t blkid_probe_get_sectors(blkid_probe pr)
+ __ul_attribute__((nonnull));
-extern int blkid_probe_get_fd(blkid_probe pr);
+extern int blkid_probe_get_fd(blkid_probe pr)
+ __ul_attribute__((nonnull));
/*
* superblocks probing
*/
-extern int blkid_known_fstype(const char *fstype);
+extern int blkid_known_fstype(const char *fstype)
+ __ul_attribute__((nonnull));
extern int blkid_superblocks_get_name(size_t idx, const char **name, int *usage);
-extern int blkid_probe_enable_superblocks(blkid_probe pr, int enable);
+extern int blkid_probe_enable_superblocks(blkid_probe pr, int enable)
+ __ul_attribute__((nonnull));
#define BLKID_SUBLKS_LABEL (1 << 1) /* read LABEL from superblock */
#define BLKID_SUBLKS_LABELRAW (1 << 2) /* read and define LABEL_RAW result value*/
#define BLKID_SUBLKS_DEFAULT (BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID | \
BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE)
-extern int blkid_probe_set_superblocks_flags(blkid_probe pr, int flags);
-extern int blkid_probe_reset_superblocks_filter(blkid_probe pr);
-extern int blkid_probe_invert_superblocks_filter(blkid_probe pr);
+extern int blkid_probe_set_superblocks_flags(blkid_probe pr, int flags)
+ __ul_attribute__((nonnull));
+extern int blkid_probe_reset_superblocks_filter(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern int blkid_probe_invert_superblocks_filter(blkid_probe pr)
+ __ul_attribute__((nonnull));
/**
* BLKID_FLTR_NOTIN
* BLKID_FLTR_ONLYIN
*/
#define BLKID_FLTR_ONLYIN 2
-extern int blkid_probe_filter_superblocks_type(blkid_probe pr, int flag, char *names[]);
+extern int blkid_probe_filter_superblocks_type(blkid_probe pr, int flag, char *names[])
+ __ul_attribute__((nonnull));
#define BLKID_USAGE_FILESYSTEM (1 << 1)
#define BLKID_USAGE_RAID (1 << 2)
#define BLKID_USAGE_CRYPTO (1 << 3)
#define BLKID_USAGE_OTHER (1 << 4)
-extern int blkid_probe_filter_superblocks_usage(blkid_probe pr, int flag, int usage);
+extern int blkid_probe_filter_superblocks_usage(blkid_probe pr, int flag, int usage)
+ __ul_attribute__((nonnull));
/*
* topology probing
*/
-extern int blkid_probe_enable_topology(blkid_probe pr, int enable);
+extern int blkid_probe_enable_topology(blkid_probe pr, int enable)
+ __ul_attribute__((nonnull));
/* binary interface */
-extern blkid_topology blkid_probe_get_topology(blkid_probe pr);
+extern blkid_topology blkid_probe_get_topology(blkid_probe pr)
+ __ul_attribute__((nonnull));
extern unsigned long blkid_topology_get_alignment_offset(blkid_topology tp)
__ul_attribute__((nonnull));
*/
extern int blkid_known_pttype(const char *pttype);
-extern int blkid_probe_enable_partitions(blkid_probe pr, int enable);
+extern int blkid_probe_enable_partitions(blkid_probe pr, int enable)
+ __ul_attribute__((nonnull));
-extern int blkid_probe_reset_partitions_filter(blkid_probe pr);
-extern int blkid_probe_invert_partitions_filter(blkid_probe pr);
-extern int blkid_probe_filter_partitions_type(blkid_probe pr, int flag, char *names[]);
+extern int blkid_probe_reset_partitions_filter(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern int blkid_probe_invert_partitions_filter(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern int blkid_probe_filter_partitions_type(blkid_probe pr, int flag, char *names[])
+ __ul_attribute__((nonnull));
/* partitions probing flags */
#define BLKID_PARTS_FORCE_GPT (1 << 1)
#define BLKID_PARTS_ENTRY_DETAILS (1 << 2)
#define BLKID_PARTS_MAGIC (1 << 3)
-extern int blkid_probe_set_partitions_flags(blkid_probe pr, int flags);
+extern int blkid_probe_set_partitions_flags(blkid_probe pr, int flags)
+ __ul_attribute__((nonnull));
/* binary interface */
-extern blkid_partlist blkid_probe_get_partitions(blkid_probe pr);
+extern blkid_partlist blkid_probe_get_partitions(blkid_probe pr)
+ __ul_attribute__((nonnull));
-extern int blkid_partlist_numof_partitions(blkid_partlist ls);
-extern blkid_parttable blkid_partlist_get_table(blkid_partlist ls);
-extern blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n);
-extern blkid_partition blkid_partlist_get_partition_by_partno(blkid_partlist ls, int n);
-extern blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno);
-extern blkid_parttable blkid_partition_get_table(blkid_partition par);
+extern int blkid_partlist_numof_partitions(blkid_partlist ls)
+ __ul_attribute__((nonnull));
+extern blkid_parttable blkid_partlist_get_table(blkid_partlist ls)
+ __ul_attribute__((nonnull));
+extern blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n)
+ __ul_attribute__((nonnull));
+extern blkid_partition blkid_partlist_get_partition_by_partno(blkid_partlist ls, int n)
+ __ul_attribute__((nonnull));
+extern blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno)
+ __ul_attribute__((nonnull));
+extern blkid_parttable blkid_partition_get_table(blkid_partition par)
+ __ul_attribute__((nonnull));
-extern const char *blkid_partition_get_name(blkid_partition par);
-extern const char *blkid_partition_get_uuid(blkid_partition par);
-extern int blkid_partition_get_partno(blkid_partition par);
-extern blkid_loff_t blkid_partition_get_start(blkid_partition par);
-extern blkid_loff_t blkid_partition_get_size(blkid_partition par);
+extern const char *blkid_partition_get_name(blkid_partition par)
+ __ul_attribute__((nonnull));
+extern const char *blkid_partition_get_uuid(blkid_partition par)
+ __ul_attribute__((nonnull));
+extern int blkid_partition_get_partno(blkid_partition par)
+ __ul_attribute__((nonnull));
+extern blkid_loff_t blkid_partition_get_start(blkid_partition par)
+ __ul_attribute__((nonnull));
+extern blkid_loff_t blkid_partition_get_size(blkid_partition par)
+ __ul_attribute__((nonnull));
extern int blkid_partition_get_type(blkid_partition par)
__ul_attribute__((nonnull));
-
-extern const char *blkid_partition_get_type_string(blkid_partition par);
-
+extern const char *blkid_partition_get_type_string(blkid_partition par)
+ __ul_attribute__((nonnull));
extern unsigned long long blkid_partition_get_flags(blkid_partition par)
__ul_attribute__((nonnull));
extern int blkid_partition_is_primary(blkid_partition par)
__ul_attribute__((nonnull));
-extern const char *blkid_parttable_get_type(blkid_parttable tab);
-extern const char *blkid_parttable_get_id(blkid_parttable tab);
-
-extern blkid_loff_t blkid_parttable_get_offset(blkid_parttable tab);
-extern blkid_partition blkid_parttable_get_parent(blkid_parttable tab);
+extern const char *blkid_parttable_get_type(blkid_parttable tab)
+ __ul_attribute__((nonnull));
+extern const char *blkid_parttable_get_id(blkid_parttable tab)
+ __ul_attribute__((nonnull));
+extern blkid_loff_t blkid_parttable_get_offset(blkid_parttable tab)
+ __ul_attribute__((nonnull));
+extern blkid_partition blkid_parttable_get_parent(blkid_parttable tab)
+ __ul_attribute__((nonnull));
/*
* NAME=value low-level interface
*/
-extern int blkid_do_probe(blkid_probe pr);
-extern int blkid_do_safeprobe(blkid_probe pr);
-extern int blkid_do_fullprobe(blkid_probe pr);
+extern int blkid_do_probe(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern int blkid_do_safeprobe(blkid_probe pr)
+ __ul_attribute__((nonnull));
+extern int blkid_do_fullprobe(blkid_probe pr)
+ __ul_attribute__((nonnull));
-extern int blkid_probe_numof_values(blkid_probe pr);
+extern int blkid_probe_numof_values(blkid_probe pr)
+ __ul_attribute__((nonnull));
extern int blkid_probe_get_value(blkid_probe pr, int num, const char **name,
- const char **data, size_t *len);
+ const char **data, size_t *len)
+ __ul_attribute__((nonnull(1)));
extern int blkid_probe_lookup_value(blkid_probe pr, const char *name,
- const char **data, size_t *len);
+ const char **data, size_t *len)
+ __ul_attribute__((nonnull(1, 2)));
extern int blkid_probe_has_value(blkid_probe pr, const char *name)
__ul_attribute__((nonnull));
-
-extern int blkid_do_wipe(blkid_probe pr, int dryrun);
-extern int blkid_probe_step_back(blkid_probe pr);
+extern int blkid_do_wipe(blkid_probe pr, int dryrun)
+ __ul_attribute__((nonnull));
+extern int blkid_probe_step_back(blkid_probe pr)
+ __ul_attribute__((nonnull));
/*
* Deprecated functions/macros
*/
int blkid_probe_enable_partitions(blkid_probe pr, int enable)
{
- if (!pr)
- return -1;
pr->chains[BLKID_CHAIN_PARTS].enabled = enable;
return 0;
}
*/
int blkid_probe_set_partitions_flags(blkid_probe pr, int flags)
{
- if (!pr)
- return -1;
pr->chains[BLKID_CHAIN_PARTS].flags = flags;
return 0;
}
*/
int blkid_partlist_numof_partitions(blkid_partlist ls)
{
- return ls ? ls->nparts : -1;
+ return ls->nparts;
}
/**
*/
blkid_parttable blkid_partlist_get_table(blkid_partlist ls)
{
- if (!ls || list_empty(&ls->l_tabs))
+ if (list_empty(&ls->l_tabs))
return NULL;
return list_entry(ls->l_tabs.next,
*/
blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n)
{
- if (!ls || n < 0 || n >= ls->nparts)
+ if (n < 0 || n >= ls->nparts)
return NULL;
return &ls->parts[n];
int i, nparts;
blkid_partition par;
- if (!ls)
- return NULL;
-
nparts = blkid_partlist_numof_partitions(ls);
for (i = 0; i < nparts; i++) {
par = blkid_partlist_get_partition(ls, i);
uint64_t start, size;
int i, rc, partno = 0;
- if (!ls)
- return NULL;
-
DBG(LOWPROBE, ul_debug("trying to convert devno 0x%llx to partition",
(long long) devno));
*/
const char *blkid_parttable_get_id(blkid_parttable tab)
{
- return tab && *tab->id ? tab->id : NULL;
+ return *tab->id ? tab->id : NULL;
}
int blkid_partition_set_type(blkid_partition par, int type)
{
- if (!par)
- return -1;
par->type = type;
return 0;
}
*/
const char *blkid_parttable_get_type(blkid_parttable tab)
{
- return tab ? tab->type : NULL;
+ return tab->type;
}
/**
*/
blkid_partition blkid_parttable_get_parent(blkid_parttable tab)
{
- return tab ? tab->parent : NULL;
+ return tab->parent;
}
/**
*/
blkid_loff_t blkid_parttable_get_offset(blkid_parttable tab)
{
- return tab ? (blkid_loff_t)tab->offset : -1;
+ return (blkid_loff_t)tab->offset;
}
/**
*/
blkid_parttable blkid_partition_get_table(blkid_partition par)
{
- return par ? par->tab : NULL;
+ return par->tab;
}
static int partition_get_logical_type(blkid_partition par)
*/
const char *blkid_partition_get_name(blkid_partition par)
{
- return par && *par->name ? (char *) par->name : NULL;
+ return *par->name ? (char *) par->name : NULL;
}
/**
*/
const char *blkid_partition_get_uuid(blkid_partition par)
{
- return par && *par->uuid ? par->uuid : NULL;
+ return *par->uuid ? par->uuid : NULL;
}
/**
*/
int blkid_partition_get_partno(blkid_partition par)
{
- return par ? par->partno : -1;
+ return par->partno;
}
/**
*/
blkid_loff_t blkid_partition_get_start(blkid_partition par)
{
- return par ? (blkid_loff_t)par->start : -1;
+ return (blkid_loff_t)par->start;
}
/**
*/
blkid_loff_t blkid_partition_get_size(blkid_partition par)
{
- return par ? (blkid_loff_t)par->size : -1;
+ return (blkid_loff_t)par->size;
}
/**
int blkid_partition_set_type_string(blkid_partition par,
const unsigned char *type, size_t len)
{
- if (!par)
- return -1;
-
set_string((unsigned char *) par->typestr,
sizeof(par->typestr), type, len);
return 0;
*/
int blkid_partition_set_type_uuid(blkid_partition par, const unsigned char *uuid)
{
- if (!par)
- return -1;
-
blkid_unparse_uuid(uuid, par->typestr, sizeof(par->typestr));
return 0;
}
*/
const char *blkid_partition_get_type_string(blkid_partition par)
{
- return par && *par->typestr ? par->typestr : NULL;
+ return *par->typestr ? par->typestr : NULL;
}
int blkid_partition_set_flags(blkid_partition par, unsigned long long flags)
{
- if (!par)
- return -1;
par->flags = flags;
return 0;
}
int fd = -1;
blkid_probe pr = NULL;
- if (!filename)
- return NULL;
-
fd = open(filename, O_RDONLY|O_CLOEXEC);
if (fd < 0)
return NULL;
struct list_head *p, *pnext;
- if (!pr || list_empty(&pr->values))
+ if (list_empty(&pr->values))
return;
DBG(LOWPROBE, ul_debug("Resetting %s values", chn->driver->name));
static void blkid_probe_chain_reset_position(struct blkid_chain *chn)
{
- if (chn)
- chn->idx = -1;
+ chn->idx = -1;
}
/*
int rc, org_prob_flags;
struct blkid_chain *org_chn;
- if (!pr || !chn)
- return NULL;
-
/* save the current setting -- the binary API has to be completely
* independent on the current probing status
*/
{
int i;
- if (!pr)
- return;
-
blkid_probe_reset_values(pr);
blkid_probe_set_wiper(pr, 0, 0);
{
struct blkid_chain *chn;
- if (!pr || chain < 0 || chain >= BLKID_NCHAINS)
+ if (chain < 0 || chain >= BLKID_NCHAINS)
return NULL;
chn = &pr->chains[chain];
size_t i;
struct blkid_chain *chn;
- if (!pr)
- return -1;
-
chn = &pr->chains[chain];
if (!chn->driver->has_fltr || !chn->fltr)
{
uint64_t ct = 0, len = 0;
- if (!pr || list_empty(&pr->buffers))
+ if (list_empty(&pr->buffers))
return;
DBG(BUFFER, ul_debug("Resetting probing buffers pr=%p", pr));
static void blkid_probe_reset_values(blkid_probe pr)
{
- if (!pr || list_empty(&pr->values))
+ if (list_empty(&pr->values))
return;
DBG(LOWPROBE, ul_debug("resetting results pr=%p", pr));
*/
int blkid_probe_is_tiny(blkid_probe pr)
{
- return pr && (pr->flags & BLKID_FL_TINY_DEV);
+ return (pr->flags & BLKID_FL_TINY_DEV);
}
/*
*/
int blkid_probe_is_cdrom(blkid_probe pr)
{
- return pr && (pr->flags & BLKID_FL_CDROM_DEV);
+ return (pr->flags & BLKID_FL_CDROM_DEV);
}
static int is_sector_readable(int fd, uint64_t sector)
struct stat sb;
uint64_t devsiz = 0;
- if (!pr)
- return -1;
-
blkid_reset_probe(pr);
blkid_probe_reset_buffer(pr);
int blkid_probe_get_dimension(blkid_probe pr, uint64_t *off, uint64_t *size)
{
- if (!pr)
- return -1;
-
*off = pr->off;
*size = pr->size;
return 0;
int blkid_probe_set_dimension(blkid_probe pr, uint64_t off, uint64_t size)
{
- if (!pr)
- return -1;
-
DBG(LOWPROBE, ul_debug(
"changing probing area pr=%p: size=%"PRIu64", off=%"PRIu64" "
"-to-> size=%"PRIu64", off=%"PRIu64"",
static inline void blkid_probe_start(blkid_probe pr)
{
- if (pr) {
- DBG(LOWPROBE, ul_debug("%p: start probe", pr));
- pr->cur_chain = NULL;
- pr->prob_flags = 0;
- blkid_probe_set_wiper(pr, 0, 0);
- }
+ DBG(LOWPROBE, ul_debug("%p: start probe", pr));
+ pr->cur_chain = NULL;
+ pr->prob_flags = 0;
+ blkid_probe_set_wiper(pr, 0, 0);
}
static inline void blkid_probe_end(blkid_probe pr)
{
- if (pr) {
- DBG(LOWPROBE, ul_debug("%p: end probe", pr));
- pr->cur_chain = NULL;
- pr->prob_flags = 0;
- blkid_probe_set_wiper(pr, 0, 0);
- }
+ DBG(LOWPROBE, ul_debug("%p: end probe", pr));
+ pr->cur_chain = NULL;
+ pr->prob_flags = 0;
+ blkid_probe_set_wiper(pr, 0, 0);
}
/**
{
int rc = 1;
- if (!pr)
- return -1;
-
if (pr->flags & BLKID_FL_NOSCAN_DEV)
return 1;
int fd, rc = 0;
struct blkid_chain *chn;
- if (!pr)
- return -1;
-
chn = pr->cur_chain;
if (!chn)
return -1;
{
struct blkid_chain *chn;
- if (!pr)
- return -1;
-
chn = pr->cur_chain;
if (!chn)
return -1;
{
int i, count = 0, rc = 0;
- if (!pr)
- return -1;
if (pr->flags & BLKID_FL_NOSCAN_DEV)
return 1;
{
int i, count = 0, rc = 0;
- if (!pr)
- return -1;
if (pr->flags & BLKID_FL_NOSCAN_DEV)
return 1;
/* same sa blkid_probe_get_buffer() but works with 512-sectors */
unsigned char *blkid_probe_get_sector(blkid_probe pr, unsigned int sector)
{
- return pr ? blkid_probe_get_buffer(pr,
- ((uint64_t) sector) << 9, 0x200) : NULL;
+ return blkid_probe_get_buffer(pr, ((uint64_t) sector) << 9, 0x200);
}
-struct blkid_prval *blkid_probe_assign_value(
- blkid_probe pr, const char *name)
+struct blkid_prval *blkid_probe_assign_value(blkid_probe pr, const char *name)
{
struct blkid_prval *v;
- if (!name)
- return NULL;
v = blkid_probe_new_value();
if (!v)
int rc = 0;
struct blkid_chain *chn = blkid_probe_get_chain(pr);
- if (!chn || !magic || !len || chn->binary)
+ if (!chn || !len || chn->binary)
return 0;
switch (chn->driver->id) {
*/
blkid_loff_t blkid_probe_get_size(blkid_probe pr)
{
- return pr ? (blkid_loff_t) pr->size : -1;
+ return (blkid_loff_t) pr->size;
}
/**
*/
blkid_loff_t blkid_probe_get_offset(blkid_probe pr)
{
- return pr ? (blkid_loff_t) pr->off : -1;
+ return (blkid_loff_t) pr->off;
}
/**
*/
int blkid_probe_get_fd(blkid_probe pr)
{
- return pr ? pr->fd : -1;
+ return pr->fd;
}
/**
*/
unsigned int blkid_probe_get_sectorsize(blkid_probe pr)
{
- if (!pr)
- return DEFAULT_SECTOR_SIZE; /*... and good luck! */
-
if (pr->blkssz)
return pr->blkssz;
*/
blkid_loff_t blkid_probe_get_sectors(blkid_probe pr)
{
- return pr ? (blkid_loff_t) (pr->size >> 9) : -1;
+ return (blkid_loff_t) (pr->size >> 9);
}
/**
{
int i = 0;
struct list_head *p;
- if (!pr)
- return -1;
list_for_each(p, &pr->values)
++i;
struct blkid_prval *blkid_probe_last_value(blkid_probe pr)
{
- if (!pr || list_empty(&pr->values))
+ if (list_empty(&pr->values))
return NULL;
return list_last_entry(&pr->values, struct blkid_prval, prvals);
int i = 0;
struct list_head *p;
- if (!pr || num < 0)
+ if (num < 0)
return NULL;
list_for_each(p, &pr->values) {
{
struct list_head *p;
- if (!pr || list_empty(&pr->values) || !name)
+ if (list_empty(&pr->values))
return NULL;
list_for_each(p, &pr->values) {
{
struct blkid_chain *chn;
- if (!pr)
- return;
-
if (!size) {
DBG(LOWPROBE, ul_debug("zeroize wiper"));
pr->wipe_size = pr->wipe_off = 0;
*/
int blkid_probe_is_wiped(blkid_probe pr, struct blkid_chain **chn, uint64_t off, uint64_t size)
{
- if (!pr || !size)
+ if (!size)
return 0;
if (pr->wipe_off <= off && off + size <= pr->wipe_off + pr->wipe_size) {
- if (chn)
- *chn = pr->wipe_chain;
+ *chn = pr->wipe_chain;
return 1;
}
return 0;