8 * For each partition type there is a routine that takes
9 * a block device and a range, and returns the list of
10 * slices found there in the supplied array SP that can
11 * hold NS entries. The return value is the number of
12 * entries stored, or -1 if the appropriate type is not
16 #define likely(x) __builtin_expect(!!(x), 1)
17 #define unlikely(x) __builtin_expect(!!(x), 0)
19 #define safe_sprintf(var, format, args...) \
20 snprintf(var, sizeof(var), format, ##args) >= sizeof(var)
23 #define BLKSSZGET _IO(0x12,104) /* get block device sector size */
27 get_sector_size(int filedes);
30 * units: 512 byte sectors
40 typedef int (ptreader)(int fd, struct slice all, struct slice *sp, int ns);
42 extern ptreader read_dos_pt;
43 extern ptreader read_bsd_pt;
44 extern ptreader read_solaris_pt;
45 extern ptreader read_unixware_pt;
46 extern ptreader read_gpt_pt;
47 extern ptreader read_dasd_pt;
48 extern ptreader read_mac_pt;
49 extern ptreader read_sun_pt;
50 extern ptreader read_ps3_pt;
52 char *getblock(int fd, unsigned int secnr);
55 four2int(unsigned char *p) {
56 return p[0] + (p[1]<<8) + (p[2]<<16) + (p[3]<<24);
59 #endif /* _KPARTX_H */