A
download libvolume_id.h
Language: C
License: GPL
Copyright: (C) 2005 Kay Sievers
LOC: 87
Project Info
include
Server: CentOS 5.0 i386
Type: filesystem
...entOS 5.0 i386\usr\include\
   _G_config.h
   a.out.h
   af_vfs.h
   aio.h
   aliases.h
   alloca.h
   ansidecl.h
   ar.h
   argp.h
   argz.h
   aspell.h
   assert.h
   audiofile.h
   aupvlist.h
   autosprintf.h
   autotest.h
   baudboy.h
   bdevid.h
   bfd.h
   bfdlink.h
   bitio.h
   blktaplib.h
   btr.h
   byteswap.h
   bzlib.h
   capi20.h
   capicmd.h
   capiutils.h
   ccs.h
   check.h
   cky_applet.h
   cky_base.h
   cky_card.h
   cky_factory.h
   cky_list.h
   colorname.h
   complex.h
   cpio.h
   crack.h
   crypt.h
   ctype.h
   curses.h
   db.h
   db_185.h
   db_cxx.h
   dejagnu.h
   dhcpctl.h
   dirent.h
   dis-asm.h
   dlfcn.h
   dns_sd.h
   dwarf.h
   ecpg_informix.h
   ecpgerrno.h
   ecpglib.h
   ecpgtype.h
   edsio.h
   edsio_edsio.h
   elf.h
   endian.h
   entities.h
   envz.h
   err.h
   errno.h
   error.h
   eruby.h
   esd.h
   eti.h
   event.h
   execinfo.h
   expat.h
   expat_external.h
   expect.h
   expect_comm.h
   expect_tcl.h
   fam.h
   fcntl.h
   features.h
   fenv.h
   FlexLexer.h
   fmtmsg.h
   fnmatch.h
   form.h
   fpu_control.h
   fstab.h
   ft2build.h
   fts.h
   ftw.h
   gconv.h
   gcrypt-module.h
   gcrypt.h
   gd.h
   gd_io.h
   gdbm.h
   gdcache.h
   gdfontg.h
   gdfontl.h
   gdfontmb.h
   gdfonts.h
   gdfontt.h
   gdfx.h
   gelf.h
   getopt.h
   gettext-po.h
   gif_lib.h
   glob.h
   gmp-i386.h
   gmp-mparam-i386.h
   gmp-mparam.h
   gmp.h
   gmpxx.h
   gnu-versions.h
   gpg-error.h
   gpm.h
   grp.h
   hesiod.h
   hfs.h
   icc34.h
   iconv.h
   idn-free.h
   idn-int.h
   idna.h
   ieee1284.h
   ieee754.h
   ifaddrs.h
   initreq.h
   inttypes.h
   ip6tables.h
   iptables.h
   iptables_common.h
   iwlib.h
   jconfig.h
   jerror.h
   jmorecfg.h
   jpeglib.h
   k3baudiocdtrackdrag.h
   k3baudiocdtracksource.h
   ...udiocuefilewritingjob.h
   k3baudiodatasource.h
   ...diodatasourceiterator.h
   k3baudiodecoder.h
   k3baudiodoc.h
   k3baudioencoder.h
   k3baudiofile.h
   k3baudiojob.h
   k3baudiooutputplugin.h
   k3baudiotrack.h
   k3baudiozerodata.h
   k3bbinimagewritingjob.h
   k3bblankingjob.h
   k3bbootitem.h
   k3bbusywidget.h
   k3bcdcopyjob.h
   k3bcdparanoialib.h
   k3bcdrdaowriter.h
   k3bcdrecordwriter.h
   k3bcdtext.h
   k3bcdtextvalidator.h
   k3bclonejob.h
   k3bcore.h
   k3bcuefileparser.h
   k3bcutcombobox.h
   k3bdatadoc.h
   k3bdataitem.h
   k3bdatajob.h
   ...faultexternalprograms.h
   k3bdevice.h
   k3bdevicecombobox.h
   k3bdeviceglobals.h
   k3bdevicehandler.h
   k3bdevicemanager.h
   k3bdeviceselectiondialog.h
   k3bdevicetypes.h
   k3bdiritem.h
   k3bdiskinfo.h
   k3bdoc.h
   k3bdvdcopyjob.h
   k3bdvddoc.h
   k3bdvdformattingjob.h
   k3bdvdjob.h
   k3bexceptions.h
   k3bexternalbinmanager.h
   k3bfileitem.h
   k3bglobals.h
   k3bglobalsettings.h
   k3bgrowisofswriter.h
   k3binffilewriter.h
   k3bintvalidator.h
   k3biso9660.h
   k3biso9660backend.h
   ...so9660imagewritingjob.h
   k3bisooptions.h
   k3bjob.h
   k3bjobhandler.h
   k3blistview.h
   k3blistviewitemanimator.h
   k3bmd5job.h
   k3bmixeddoc.h
   k3bmixedjob.h
   k3bmovixdoc.h
   k3bmovixdvddoc.h
   k3bmovixdvdjob.h
   k3bmovixfileitem.h
   k3bmovixjob.h
   k3bmsf.h
   k3bmsfedit.h
   k3bmultichoicedialog.h
   k3bplugin.h
   k3bpluginconfigwidget.h
   k3bpluginfactory.h
   k3bpluginmanager.h
   k3bprocess.h
   k3bprogressdialog.h
   k3bprojectplugin.h
   k3bpushbutton.h
   k3bradioaction.h
   k3bsignalwaiter.h
   k3bsimplejob.h
   k3bstdguiitems.h
   k3bstringutils.h
   k3bthread.h
   k3bthreadjob.h
   k3bthreadwidget.h
   k3bthroughputestimator.h
   k3btoc.h
   k3btocfilewriter.h
   k3btoolbox.h
   k3btrack.h
   k3bvalidators.h
   k3bvcddoc.h
   k3bvcdjob.h
   k3bvcdoptions.h
   k3bversion.h
   k3bvideodvddoc.h
   k3bvideodvdjob.h
   k3bwavefilewriter.h
   kcutlabel.h
   keyutils.h
   kommander_export.h
   kommanderfactory.h
   kommanderplugin.h
   kommanderwidget.h
   krb5.h
   langinfo.h
   lastlog.h
   lber.h
   lber_types.h
   lcms.h
   ldap.h
   ldap_cdefs.h
   ldap_features.h
   ldap_schema.h
   ldap_utf8.h
   liba2ps.h
   libaio.h
   libaudit.h
   libcman.h
   libcryptsetup.h
   libdevmapper-event.h
   libdevmapper.h
   libdlm.h
   libelf.h
   libgen.h
   libgroup.h
   libguile.h
   libiberty.h
   libintl.h
   libio.h
   libipq.h
   libmng.h
   libmng_conf.h
   libmng_types.h
   libmsrpc.h
   libpq-fe.h
   libsmbclient.h
   libvolume_id.h
   limits.h
   link.h
   locale.h
   lockdev.h
   ltdl.h
   lvm2cmd.h
   m17n-core.h
   m17n-misc.h
   m17n.h
   magic.h
   Magick++.h
   malloc.h
   mallocvar.h
   math.h
   mcheck.h
   memory.h
   menu.h
   mikmod.h
   mntent.h
   monetary.h
   mp.h
   mpf2mpfr.h
   mpfr.h
   mpfrxx.h
   mqueue.h
   mxBeeBase.h
   mxbmse.h
   mxDateTime.h
   mxh.h
   mxProxy.h
   mxQueue.h
   mxte.h
   mxTextTools.h
   mxTools.h
   nash.h
   ncurses.h
   netdb.h
   newt.h
   nfsidmap.h
   nl_types.h
   nlist.h
   nss.h
   nstring.h
   numa.h
   numaif.h
   obstack.h
   odb.h
   odbcinst.h
   odbcinstext.h
   op_config.h
   op_cpu_type.h
   op_events.h
   op_list.h
   op_sample_file.h
   op_types.h
   packer.h
   pam.h
   pammap.h
   panel.h
   paths.h
   pbm.h
   pbmfont.h
   pcap-bpf.h
   pcap-namedb.h
   pcap.h
   pcre.h
   pcre_scanner.h
   pcre_stringpiece.h
   pcrecpp.h
   pcrecpparg.h
   pcreposix.h
   pg_config.h
   pg_config_i386.h
   pg_config_manual.h
   pg_config_os.h
   pgm.h
   pgtypes_date.h
   pgtypes_error.h
   pgtypes_interval.h
   pgtypes_numeric.h
   pgtypes_timestamp.h
   pi-address.h
   pi-address.hxx
   pi-appinfo.h
   pi-appinfo.hxx
   pi-args.h
   pi-cmp.h
   pi-datebook.h
   pi-datebook.hxx
   pi-debug.h
   pi-dlp.h
   pi-dlp.hxx
   pi-expense.h
   pi-file.h
   pi-header.h
   pi-hinote.h
   pi-inet.h
   pi-macros.h
   pi-mail.h
   pi-md5.h
   pi-memo.h
   pi-memo.hxx
   pi-money.h
   pi-net.h
   pi-notepad.h
   pi-padp.h
   pi-palmpix.h
   pi-serial.h
   pi-slp.h
   pi-sockaddr.h
   pi-socket.h
   pi-source.h
   pi-sync.h
   pi-sys.h
   pi-syspkt.h
   pi-todo.h
   pi-todo.hxx
   pi-usb.h
   pi-util.h
   pi-version.h
   pm.h
   pm_config.h
   pm_gamma.h
   pm_system.h
   png.h
   pngconf.h
   pnm.h
   poll.h
   popt.h
   postgres_ext.h
   ppm.h
   ppmcmap.h
   ppmfloyd.h
   pr29.h
   printf.h
   profile.h
   ptbuildopts.h
   pthread.h
   ptlib.h
   pty.h
   pump.h
   punycode.h
   pwd.h
   re_comp.h
   regex.h
   regexp.h
   resolv.h
   rsrc.h
   sched.h
   search.h
   semaphore.h
   setjmp.h
   sgtty.h
   shadow.h
   shhopt.h
   signal.h
   slapi-plugin.h
   spawn.h
   speex.h
   speex_bits.h
   speex_callbacks.h
   speex_header.h
   speex_stereo.h
   sql.h
   sql3types.h
   sqlca.h
   sqlext.h
   sqlite3.h
   sqltypes.h
   sqlucode.h
   stab.h
   stdint.h
   stdio.h
   stdio_ext.h
   stdlib.h
   string.h
   stringprep.h
   strings.h
   stropts.h
   symcat.h
   syscall.h
   sysexits.h
   syslog.h
   tar.h
   tcl.h
   tcldbg.h
   tclDecls.h
   tclExtend.h
   tclPlatDecls.h
   tcpd.h
   term.h
   termcap.h
   termio.h
   termios.h
   tgmath.h
   thread_db.h
   tiff.h
   tiffconf-32.h
   tiffconf.h
   tiffio.h
   tiffio.hxx
   tiffvers.h
   time.h
   tix.h
   tk.h
   tkDecls.h
   tkPlatDecls.h
   tld.h
   tn5250.h
   ttyent.h
   ttylock.h
   tux.h
   tuxmodule.h
   ucontext.h
   ulimit.h
   unctrl.h
   unistd.h
   uodbc_stats.h
   usb.h
   usbpp.h
   ustat.h
   utempter.h
   utime.h
   utmp.h
   utmpx.h
   values.h
   wait.h
   wchar.h
   wctype.h
   wireless.h
   wlite_config.h
   wlite_stdlib.h
   wlite_wchar.h
   wlite_wctype.h
   wordexp.h
   xd_edsio.h
   xdelta.h
   xenctrl.h
   xenguest.h
   xf86drm.h
   xlocale.h
   xs.h
   xs_lib.h
   zconf.h
   zlib.h
   zutil.h

/*
 * volume_id - reads volume label and uuid
 *
 * Copyright (C) 2005 Kay Sievers <kay.sievers@vrfy.org>
 *
 *	This program is free software; you can redistribute it and/or modify it
 *	under the terms of the GNU General Public License as published by the
 *	Free Software Foundation version 2 of the License.
 */

#ifndef _LIBVOLUME_ID_H_
#define _LIBVOLUME_ID_H_

#include <stdint.h>
#include <stddef.h>

#ifndef PACKED
#define PACKED				__attribute__((packed))
#endif


typedef void (*volume_id_log_fn_t)(int priority, const char *file, int line, const char *format, ...)
	     __attribute__ ((format(printf, 4, 5)));

extern volume_id_log_fn_t volume_id_log_fn;

#define VOLUME_ID_LABEL_SIZE		64
#define VOLUME_ID_UUID_SIZE		36
#define VOLUME_ID_FORMAT_SIZE		32
#define VOLUME_ID_PATH_MAX		256
#define VOLUME_ID_PARTITIONS_MAX	256

enum volume_id_usage {
	VOLUME_ID_UNUSED,
	VOLUME_ID_UNPROBED,
	VOLUME_ID_OTHER,
	VOLUME_ID_FILESYSTEM,
	VOLUME_ID_RAID,
	VOLUME_ID_DISKLABEL,
	VOLUME_ID_CRYPTO,
};

struct volume_id {
	uint8_t		label_raw[VOLUME_ID_LABEL_SIZE];
	size_t		label_raw_len;
	char		label[VOLUME_ID_LABEL_SIZE+1];
	uint8_t		uuid_raw[VOLUME_ID_UUID_SIZE];
	size_t		uuid_raw_len;
	char		uuid[VOLUME_ID_UUID_SIZE+1];
	enum		volume_id_usage usage_id;
	char		*usage;
	char		*type;
	char		type_version[VOLUME_ID_FORMAT_SIZE];

	int		fd;
	uint8_t		*sbbuf;
	size_t		sbbuf_len;
	uint8_t		*seekbuf;
	uint64_t	seekbuf_off;
	size_t		seekbuf_len;
	int		fd_close:1;
};

extern struct volume_id *volume_id_open_fd(int fd);
extern struct volume_id *volume_id_open_node(const char *path);
extern int volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_filesystem(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern void volume_id_close(struct volume_id *id);

/* filesystems */
extern int volume_id_probe_cramfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_ext(struct volume_id *id, uint64_t off);
extern int volume_id_probe_vfat(struct volume_id *id, uint64_t off);
extern int volume_id_probe_hfs_hfsplus(struct volume_id *id, uint64_t off);
extern int volume_id_probe_hpfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_iso9660(struct volume_id *id, uint64_t off);
extern int volume_id_probe_jfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_minix(struct volume_id *id, uint64_t off);
extern int volume_id_probe_ntfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_ocfs1(struct volume_id *id, uint64_t off);
extern int volume_id_probe_ocfs2(struct volume_id *id, uint64_t off);
extern int volume_id_probe_reiserfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_romfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_sysv(struct volume_id *id, uint64_t off);
extern int volume_id_probe_udf(struct volume_id *id, uint64_t off);
extern int volume_id_probe_ufs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_vxfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_xfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_squashfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_netware(struct volume_id *id, uint64_t off);
extern int volume_id_probe_gfs(struct volume_id *id, uint64_t off);
extern int volume_id_probe_gfs2(struct volume_id *id, uint64_t off);

/* special formats */
extern int volume_id_probe_linux_swap(struct volume_id *id, uint64_t off);
extern int volume_id_probe_luks(struct volume_id *id, uint64_t off);

/* raid */
extern int volume_id_probe_linux_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_lvm1(struct volume_id *id, uint64_t off);
extern int volume_id_probe_lvm2(struct volume_id *id, uint64_t off);

/* bios raid */
extern int volume_id_probe_intel_software_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_highpoint_37x_raid(struct volume_id *id, uint64_t off);
extern int volume_id_probe_highpoint_45x_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_lsi_mega_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_nvidia_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_promise_fasttrack_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_silicon_medley_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_via_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_adaptec_raid(struct volume_id *id, uint64_t off, uint64_t size);
extern int volume_id_probe_jmicron_raid(struct volume_id *id, uint64_t off, uint64_t size);

#endif

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us