diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:16:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:16:34 +0000 |
commit | a398d2c2b5fd6ab0545d8bb019f9a970b2309404 (patch) | |
tree | 272fc7ab226258d7ceddee12c8c682c8e711c2b0 /include | |
parent | Initial commit. (diff) | |
download | parted-a398d2c2b5fd6ab0545d8bb019f9a970b2309404.tar.xz parted-a398d2c2b5fd6ab0545d8bb019f9a970b2309404.zip |
Adding upstream version 3.6.upstream/3.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include')
34 files changed, 8654 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am new file mode 100644 index 0000000..57a52d5 --- /dev/null +++ b/include/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = parted diff --git a/include/Makefile.in b/include/Makefile.in new file mode 100644 index 0000000..6c80906 --- /dev/null +++ b/include/Makefile.in @@ -0,0 +1,1969 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ + $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ + $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/assert.m4 \ + $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/btowc.m4 \ + $(top_srcdir)/m4/build-to-host.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ + $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ + $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ + $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype_h.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ + $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/flexmember.m4 \ + $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/free.m4 \ + $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fsync.m4 \ + $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/getrandom.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \ + $(top_srcdir)/m4/intl-thread-locale.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ + $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ignore.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ + $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ + $(top_srcdir)/m4/locale-tr.m4 $(top_srcdir)/m4/locale-zh.m4 \ + $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ + $(top_srcdir)/m4/localename.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ + $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbrtowc.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbstate_t.m4 \ + $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/minmax.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkstemp.m4 \ + $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ + $(top_srcdir)/m4/msvc-inval.m4 \ + $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/musl.m4 $(top_srcdir)/m4/nanosleep.m4 \ + $(top_srcdir)/m4/netinet_in_h.m4 \ + $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/o-direct.m4 \ + $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \ + $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ + $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pselect.m4 $(top_srcdir)/m4/pthread-thread.m4 \ + $(top_srcdir)/m4/pthread_h.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/pthread_sigmask.m4 $(top_srcdir)/m4/putenv.m4 \ + $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ + $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \ + $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readlink.m4 \ + $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/sched_h.m4 \ + $(top_srcdir)/m4/sched_yield.m4 $(top_srcdir)/m4/select.m4 \ + $(top_srcdir)/m4/semaphore.m4 $(top_srcdir)/m4/setenv.m4 \ + $(top_srcdir)/m4/setlocale.m4 \ + $(top_srcdir)/m4/setlocale_null.m4 \ + $(top_srcdir)/m4/signal_h.m4 \ + $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sleep.m4 \ + $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \ + $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stddef_h.m4 \ + $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ + $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ + $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strerror_r.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strtoll.m4 \ + $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/symlink.m4 \ + $(top_srcdir)/m4/sys_ioctl_h.m4 \ + $(top_srcdir)/m4/sys_random_h.m4 \ + $(top_srcdir)/m4/sys_select_h.m4 \ + $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ + $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/thread.m4 \ + $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/time.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/version-etc.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ + $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ + $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrtol.m4 \ + $(top_srcdir)/m4/yield.m4 $(top_srcdir)/m4/zzgnulib.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/lib/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +pkgdatadir = @pkgdatadir@ +pkgincludedir = @pkgincludedir@ +pkglibdir = @pkglibdir@ +pkglibexecdir = @pkglibexecdir@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASSERT_H = @ASSERT_H@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BUILDINFO = @BUILDINFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CHECK_CFLAGS = @CHECK_CFLAGS@ +CHECK_LIBS = @CHECK_LIBS@ +CLOCK_TIME_LIB = @CLOCK_TIME_LIB@ +CONFIG_INCLUDE = @CONFIG_INCLUDE@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DM_LIBS = @DM_LIBS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENABLE_DEVICE_MAPPER = @ENABLE_DEVICE_MAPPER@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ERROR_H = @ERROR_H@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETRANDOM_LIB = @GETRANDOM_LIB@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ +GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ +GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BIND = @GL_GNULIB_BIND@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ +GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ +GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ +GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PSELECT = @GL_GNULIB_PSELECT@ +GL_GNULIB_PTHREAD_COND = @GL_GNULIB_PTHREAD_COND@ +GL_GNULIB_PTHREAD_MUTEX = @GL_GNULIB_PTHREAD_MUTEX@ +GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK = @GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK@ +GL_GNULIB_PTHREAD_ONCE = @GL_GNULIB_PTHREAD_ONCE@ +GL_GNULIB_PTHREAD_RWLOCK = @GL_GNULIB_PTHREAD_RWLOCK@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTHREAD_SPIN = @GL_GNULIB_PTHREAD_SPIN@ +GL_GNULIB_PTHREAD_THREAD = @GL_GNULIB_PTHREAD_THREAD@ +GL_GNULIB_PTHREAD_TSS = @GL_GNULIB_PTHREAD_TSS@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_RECV = @GL_GNULIB_RECV@ +GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SCHED_YIELD = @GL_GNULIB_SCHED_YIELD@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SELECT = @GL_GNULIB_SELECT@ +GL_GNULIB_SEND = @GL_GNULIB_SEND@ +GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ +GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TIME = @GL_GNULIB_TIME@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ +HAVE_ACCEPT4 = @HAVE_ACCEPT4@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_GETW = @HAVE_DECL_GETW@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ +HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_ERROR = @HAVE_ERROR@ +HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ +HAVE_ERROR_H = @HAVE_ERROR_H@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXABS = @HAVE_IMAXABS@ +HAVE_IMAXDIV = @HAVE_IMAXDIV@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PSELECT = @HAVE_PSELECT@ +HAVE_PTHREAD_ATTR_DESTROY = @HAVE_PTHREAD_ATTR_DESTROY@ +HAVE_PTHREAD_ATTR_GETDETACHSTATE = @HAVE_PTHREAD_ATTR_GETDETACHSTATE@ +HAVE_PTHREAD_ATTR_INIT = @HAVE_PTHREAD_ATTR_INIT@ +HAVE_PTHREAD_ATTR_SETDETACHSTATE = @HAVE_PTHREAD_ATTR_SETDETACHSTATE@ +HAVE_PTHREAD_CONDATTR_DESTROY = @HAVE_PTHREAD_CONDATTR_DESTROY@ +HAVE_PTHREAD_CONDATTR_INIT = @HAVE_PTHREAD_CONDATTR_INIT@ +HAVE_PTHREAD_COND_BROADCAST = @HAVE_PTHREAD_COND_BROADCAST@ +HAVE_PTHREAD_COND_DESTROY = @HAVE_PTHREAD_COND_DESTROY@ +HAVE_PTHREAD_COND_INIT = @HAVE_PTHREAD_COND_INIT@ +HAVE_PTHREAD_COND_SIGNAL = @HAVE_PTHREAD_COND_SIGNAL@ +HAVE_PTHREAD_COND_TIMEDWAIT = @HAVE_PTHREAD_COND_TIMEDWAIT@ +HAVE_PTHREAD_COND_WAIT = @HAVE_PTHREAD_COND_WAIT@ +HAVE_PTHREAD_CREATE = @HAVE_PTHREAD_CREATE@ +HAVE_PTHREAD_CREATE_DETACHED = @HAVE_PTHREAD_CREATE_DETACHED@ +HAVE_PTHREAD_DETACH = @HAVE_PTHREAD_DETACH@ +HAVE_PTHREAD_EQUAL = @HAVE_PTHREAD_EQUAL@ +HAVE_PTHREAD_EXIT = @HAVE_PTHREAD_EXIT@ +HAVE_PTHREAD_GETSPECIFIC = @HAVE_PTHREAD_GETSPECIFIC@ +HAVE_PTHREAD_H = @HAVE_PTHREAD_H@ +HAVE_PTHREAD_JOIN = @HAVE_PTHREAD_JOIN@ +HAVE_PTHREAD_KEY_CREATE = @HAVE_PTHREAD_KEY_CREATE@ +HAVE_PTHREAD_KEY_DELETE = @HAVE_PTHREAD_KEY_DELETE@ +HAVE_PTHREAD_MUTEXATTR_DESTROY = @HAVE_PTHREAD_MUTEXATTR_DESTROY@ +HAVE_PTHREAD_MUTEXATTR_GETROBUST = @HAVE_PTHREAD_MUTEXATTR_GETROBUST@ +HAVE_PTHREAD_MUTEXATTR_GETTYPE = @HAVE_PTHREAD_MUTEXATTR_GETTYPE@ +HAVE_PTHREAD_MUTEXATTR_INIT = @HAVE_PTHREAD_MUTEXATTR_INIT@ +HAVE_PTHREAD_MUTEXATTR_SETROBUST = @HAVE_PTHREAD_MUTEXATTR_SETROBUST@ +HAVE_PTHREAD_MUTEXATTR_SETTYPE = @HAVE_PTHREAD_MUTEXATTR_SETTYPE@ +HAVE_PTHREAD_MUTEX_DESTROY = @HAVE_PTHREAD_MUTEX_DESTROY@ +HAVE_PTHREAD_MUTEX_INIT = @HAVE_PTHREAD_MUTEX_INIT@ +HAVE_PTHREAD_MUTEX_LOCK = @HAVE_PTHREAD_MUTEX_LOCK@ +HAVE_PTHREAD_MUTEX_RECURSIVE = @HAVE_PTHREAD_MUTEX_RECURSIVE@ +HAVE_PTHREAD_MUTEX_ROBUST = @HAVE_PTHREAD_MUTEX_ROBUST@ +HAVE_PTHREAD_MUTEX_TIMEDLOCK = @HAVE_PTHREAD_MUTEX_TIMEDLOCK@ +HAVE_PTHREAD_MUTEX_TRYLOCK = @HAVE_PTHREAD_MUTEX_TRYLOCK@ +HAVE_PTHREAD_MUTEX_UNLOCK = @HAVE_PTHREAD_MUTEX_UNLOCK@ +HAVE_PTHREAD_ONCE = @HAVE_PTHREAD_ONCE@ +HAVE_PTHREAD_PROCESS_SHARED = @HAVE_PTHREAD_PROCESS_SHARED@ +HAVE_PTHREAD_RWLOCKATTR_DESTROY = @HAVE_PTHREAD_RWLOCKATTR_DESTROY@ +HAVE_PTHREAD_RWLOCKATTR_INIT = @HAVE_PTHREAD_RWLOCKATTR_INIT@ +HAVE_PTHREAD_RWLOCK_DESTROY = @HAVE_PTHREAD_RWLOCK_DESTROY@ +HAVE_PTHREAD_RWLOCK_INIT = @HAVE_PTHREAD_RWLOCK_INIT@ +HAVE_PTHREAD_RWLOCK_RDLOCK = @HAVE_PTHREAD_RWLOCK_RDLOCK@ +HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK = @HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK@ +HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK = @HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK@ +HAVE_PTHREAD_RWLOCK_TRYRDLOCK = @HAVE_PTHREAD_RWLOCK_TRYRDLOCK@ +HAVE_PTHREAD_RWLOCK_TRYWRLOCK = @HAVE_PTHREAD_RWLOCK_TRYWRLOCK@ +HAVE_PTHREAD_RWLOCK_UNLOCK = @HAVE_PTHREAD_RWLOCK_UNLOCK@ +HAVE_PTHREAD_RWLOCK_WRLOCK = @HAVE_PTHREAD_RWLOCK_WRLOCK@ +HAVE_PTHREAD_SELF = @HAVE_PTHREAD_SELF@ +HAVE_PTHREAD_SETSPECIFIC = @HAVE_PTHREAD_SETSPECIFIC@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@ +HAVE_PTHREAD_SPIN_DESTROY = @HAVE_PTHREAD_SPIN_DESTROY@ +HAVE_PTHREAD_SPIN_INIT = @HAVE_PTHREAD_SPIN_INIT@ +HAVE_PTHREAD_SPIN_LOCK = @HAVE_PTHREAD_SPIN_LOCK@ +HAVE_PTHREAD_SPIN_TRYLOCK = @HAVE_PTHREAD_SPIN_TRYLOCK@ +HAVE_PTHREAD_SPIN_UNLOCK = @HAVE_PTHREAD_SPIN_UNLOCK@ +HAVE_PTHREAD_T = @HAVE_PTHREAD_T@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ +HAVE_SCHED_H = @HAVE_SCHED_H@ +HAVE_SCHED_YIELD = @HAVE_SCHED_YIELD@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__EXIT = @HAVE__EXIT@ +IGNORE_UNUSED_LIBRARIES_CFLAGS = @IGNORE_UNUSED_LIBRARIES_CFLAGS@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INET_PTON_LIB = @INET_PTON_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLINCS = @INTLINCS@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSOCKET = @LIBSOCKET@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ +LIBTHREAD = @LIBTHREAD@ +LIBTOOL = @LIBTOOL@ +LIB_BLKID = @LIB_BLKID@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NANOSLEEP = @LIB_NANOSLEEP@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_PTHREAD = @LIB_PTHREAD@ +LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SELECT = @LIB_SELECT@ +LIB_SEMAPHORE = @LIB_SEMAPHORE@ +LIB_SETLOCALE = @LIB_SETLOCALE@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTALLOCA = @LTALLOCA@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_RELEASE = @LT_RELEASE@ +LT_REVISION = @LT_REVISION@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MBRTOWC_LIB = @MBRTOWC_LIB@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NANOSLEEP_LIB = @NANOSLEEP_LIB@ +NETINET_IN_H = @NETINET_IN_H@ +NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ +NEXT_ASSERT_H = @NEXT_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ +NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ +NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@ +NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_ERROR_H = @NEXT_ERROR_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_PTHREAD_H = @NEXT_PTHREAD_H@ +NEXT_SCHED_H = @NEXT_SCHED_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS = @OS@ +OS_LIBS = @OS_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARTEDLDFLAGS = @PARTEDLDFLAGS@ +PARTED_LIBS = @PARTED_LIBS@ +PARTED_USABLE_TEST_DIR = @PARTED_USABLE_TEST_DIR@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUP3 = @REPLACE_DUP3@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_ERROR = @REPLACE_ERROR@ +REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_IMAXABS = @REPLACE_IMAXABS@ +REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ +REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ +REPLACE_INET_PTON = @REPLACE_INET_PTON@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ +REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_PIPE2 = @REPLACE_PIPE2@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PSELECT = @REPLACE_PSELECT@ +REPLACE_PTHREAD_ATTR_DESTROY = @REPLACE_PTHREAD_ATTR_DESTROY@ +REPLACE_PTHREAD_ATTR_GETDETACHSTATE = @REPLACE_PTHREAD_ATTR_GETDETACHSTATE@ +REPLACE_PTHREAD_ATTR_INIT = @REPLACE_PTHREAD_ATTR_INIT@ +REPLACE_PTHREAD_ATTR_SETDETACHSTATE = @REPLACE_PTHREAD_ATTR_SETDETACHSTATE@ +REPLACE_PTHREAD_CONDATTR_DESTROY = @REPLACE_PTHREAD_CONDATTR_DESTROY@ +REPLACE_PTHREAD_CONDATTR_INIT = @REPLACE_PTHREAD_CONDATTR_INIT@ +REPLACE_PTHREAD_COND_BROADCAST = @REPLACE_PTHREAD_COND_BROADCAST@ +REPLACE_PTHREAD_COND_DESTROY = @REPLACE_PTHREAD_COND_DESTROY@ +REPLACE_PTHREAD_COND_INIT = @REPLACE_PTHREAD_COND_INIT@ +REPLACE_PTHREAD_COND_SIGNAL = @REPLACE_PTHREAD_COND_SIGNAL@ +REPLACE_PTHREAD_COND_TIMEDWAIT = @REPLACE_PTHREAD_COND_TIMEDWAIT@ +REPLACE_PTHREAD_COND_WAIT = @REPLACE_PTHREAD_COND_WAIT@ +REPLACE_PTHREAD_CREATE = @REPLACE_PTHREAD_CREATE@ +REPLACE_PTHREAD_DETACH = @REPLACE_PTHREAD_DETACH@ +REPLACE_PTHREAD_EQUAL = @REPLACE_PTHREAD_EQUAL@ +REPLACE_PTHREAD_EXIT = @REPLACE_PTHREAD_EXIT@ +REPLACE_PTHREAD_GETSPECIFIC = @REPLACE_PTHREAD_GETSPECIFIC@ +REPLACE_PTHREAD_JOIN = @REPLACE_PTHREAD_JOIN@ +REPLACE_PTHREAD_KEY_CREATE = @REPLACE_PTHREAD_KEY_CREATE@ +REPLACE_PTHREAD_KEY_DELETE = @REPLACE_PTHREAD_KEY_DELETE@ +REPLACE_PTHREAD_MUTEXATTR_DESTROY = @REPLACE_PTHREAD_MUTEXATTR_DESTROY@ +REPLACE_PTHREAD_MUTEXATTR_GETROBUST = @REPLACE_PTHREAD_MUTEXATTR_GETROBUST@ +REPLACE_PTHREAD_MUTEXATTR_GETTYPE = @REPLACE_PTHREAD_MUTEXATTR_GETTYPE@ +REPLACE_PTHREAD_MUTEXATTR_INIT = @REPLACE_PTHREAD_MUTEXATTR_INIT@ +REPLACE_PTHREAD_MUTEXATTR_SETROBUST = @REPLACE_PTHREAD_MUTEXATTR_SETROBUST@ +REPLACE_PTHREAD_MUTEXATTR_SETTYPE = @REPLACE_PTHREAD_MUTEXATTR_SETTYPE@ +REPLACE_PTHREAD_MUTEX_DESTROY = @REPLACE_PTHREAD_MUTEX_DESTROY@ +REPLACE_PTHREAD_MUTEX_INIT = @REPLACE_PTHREAD_MUTEX_INIT@ +REPLACE_PTHREAD_MUTEX_LOCK = @REPLACE_PTHREAD_MUTEX_LOCK@ +REPLACE_PTHREAD_MUTEX_TIMEDLOCK = @REPLACE_PTHREAD_MUTEX_TIMEDLOCK@ +REPLACE_PTHREAD_MUTEX_TRYLOCK = @REPLACE_PTHREAD_MUTEX_TRYLOCK@ +REPLACE_PTHREAD_MUTEX_UNLOCK = @REPLACE_PTHREAD_MUTEX_UNLOCK@ +REPLACE_PTHREAD_ONCE = @REPLACE_PTHREAD_ONCE@ +REPLACE_PTHREAD_RWLOCKATTR_DESTROY = @REPLACE_PTHREAD_RWLOCKATTR_DESTROY@ +REPLACE_PTHREAD_RWLOCKATTR_INIT = @REPLACE_PTHREAD_RWLOCKATTR_INIT@ +REPLACE_PTHREAD_RWLOCK_DESTROY = @REPLACE_PTHREAD_RWLOCK_DESTROY@ +REPLACE_PTHREAD_RWLOCK_INIT = @REPLACE_PTHREAD_RWLOCK_INIT@ +REPLACE_PTHREAD_RWLOCK_RDLOCK = @REPLACE_PTHREAD_RWLOCK_RDLOCK@ +REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK = @REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK@ +REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK = @REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK@ +REPLACE_PTHREAD_RWLOCK_TRYRDLOCK = @REPLACE_PTHREAD_RWLOCK_TRYRDLOCK@ +REPLACE_PTHREAD_RWLOCK_TRYWRLOCK = @REPLACE_PTHREAD_RWLOCK_TRYWRLOCK@ +REPLACE_PTHREAD_RWLOCK_UNLOCK = @REPLACE_PTHREAD_RWLOCK_UNLOCK@ +REPLACE_PTHREAD_RWLOCK_WRLOCK = @REPLACE_PTHREAD_RWLOCK_WRLOCK@ +REPLACE_PTHREAD_SELF = @REPLACE_PTHREAD_SELF@ +REPLACE_PTHREAD_SETSPECIFIC = @REPLACE_PTHREAD_SETSPECIFIC@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTHREAD_SPIN_DESTROY = @REPLACE_PTHREAD_SPIN_DESTROY@ +REPLACE_PTHREAD_SPIN_INIT = @REPLACE_PTHREAD_SPIN_INIT@ +REPLACE_PTHREAD_SPIN_LOCK = @REPLACE_PTHREAD_SPIN_LOCK@ +REPLACE_PTHREAD_SPIN_TRYLOCK = @REPLACE_PTHREAD_SPIN_TRYLOCK@ +REPLACE_PTHREAD_SPIN_UNLOCK = @REPLACE_PTHREAD_SPIN_UNLOCK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@ +REPLACE_SELECT = @REPLACE_SELECT@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPCPY = @REPLACE_STPCPY@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TIME = @REPLACE_TIME@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ +REPLACE_WRITE = @REPLACE_WRITE@ +REPLACE__EXIT = @REPLACE__EXIT@ +SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ +SED = @SED@ +SELECT_LIB = @SELECT_LIB@ +SETLOCALE_LIB = @SETLOCALE_LIB@ +SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDARG_H = @STDARG_H@ +STDCKDINT_H = @STDCKDINT_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +UUID_LIBS = @UUID_LIBS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YIELD_LIB = @YIELD_LIB@ +abs_aux_dir = @abs_aux_dir@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bindir_c = @bindir_c@ +bindir_c_make = @bindir_c_make@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datadir_c = @datadir_c@ +datadir_c_make = @datadir_c_make@ +datarootdir = @datarootdir@ +datarootdir_c = @datarootdir_c@ +datarootdir_c_make = @datarootdir_c_make@ +docdir = @docdir@ +docdir_c = @docdir_c@ +docdir_c_make = @docdir_c_make@ +dvidir = @dvidir@ +dvidir_c = @dvidir_c@ +dvidir_c_make = @dvidir_c_make@ +exec_prefix = @exec_prefix@ +exec_prefix_c = @exec_prefix_c@ +exec_prefix_c_make = @exec_prefix_c_make@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +htmldir_c = @htmldir_c@ +htmldir_c_make = @htmldir_c_make@ +includedir = @includedir@ +includedir_c = @includedir_c@ +includedir_c_make = @includedir_c_make@ +infodir = @infodir@ +infodir_c = @infodir_c@ +infodir_c_make = @infodir_c_make@ +install_sh = @install_sh@ +libdir = @libdir@ +libdir_c = @libdir_c@ +libdir_c_make = @libdir_c_make@ +libexecdir = @libexecdir@ +libexecdir_c = @libexecdir_c@ +libexecdir_c_make = @libexecdir_c_make@ +lispdir = @lispdir@ +lispdir_c = @lispdir_c@ +lispdir_c_make = @lispdir_c_make@ +localedir = @localedir@ +localedir_c = @localedir_c@ +localedir_c_make = @localedir_c_make@ +localstatedir = @localstatedir@ +localstatedir_c = @localstatedir_c@ +localstatedir_c_make = @localstatedir_c_make@ +mandir = @mandir@ +mandir_c = @mandir_c@ +mandir_c_make = @mandir_c_make@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +oldincludedir_c = @oldincludedir_c@ +oldincludedir_c_make = @oldincludedir_c_make@ +pdfdir = @pdfdir@ +pdfdir_c = @pdfdir_c@ +pdfdir_c_make = @pdfdir_c_make@ +pkgdatadir_c = @pkgdatadir_c@ +pkgdatadir_c_make = @pkgdatadir_c_make@ +pkgincludedir_c = @pkgincludedir_c@ +pkgincludedir_c_make = @pkgincludedir_c_make@ +pkglibdir_c = @pkglibdir_c@ +pkglibdir_c_make = @pkglibdir_c_make@ +pkglibexecdir_c = @pkglibexecdir_c@ +pkglibexecdir_c_make = @pkglibexecdir_c_make@ +prefix = @prefix@ +prefix_c = @prefix_c@ +prefix_c_make = @prefix_c_make@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psdir_c = @psdir_c@ +psdir_c_make = @psdir_c_make@ +runstatedir = @runstatedir@ +runstatedir_c = @runstatedir_c@ +runstatedir_c_make = @runstatedir_c_make@ +sbindir = @sbindir@ +sbindir_c = @sbindir_c@ +sbindir_c_make = @sbindir_c_make@ +sharedstatedir = @sharedstatedir@ +sharedstatedir_c = @sharedstatedir_c@ +sharedstatedir_c_make = @sharedstatedir_c_make@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +sysconfdir_c = @sysconfdir_c@ +sysconfdir_c_make = @sysconfdir_c_make@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = parted +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/include/parted/Makefile.am b/include/parted/Makefile.am new file mode 100644 index 0000000..6f808c6 --- /dev/null +++ b/include/parted/Makefile.am @@ -0,0 +1,56 @@ +if COMPILE_FOR_S390 +S390_HDRS = fdasd.h vtoc.h +else +S390_HDRS = +endif + +partedincludedir = $(includedir)/parted +partedinclude_HEADERS = constraint.h \ + debug.h \ + device.h \ + disk.h \ + exception.h \ + filesys.h \ + geom.h \ + natmath.h \ + timer.h \ + unit.h \ + parted.h + +noinst_HEADERS = crc32.h \ + endian.h \ + $(S390_HDRS) + +BUILT_SOURCES = \ + $(partedinclude_HEADERS) \ + $(noinst_HEADERS) \ + fdasd.h \ + vtoc.h + +EXTRA_DIST = $(BUILT_SOURCES:%.h=%.in.h) + +# We use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE internally, +# but cannot use those in a published header, so replace each of those +# strings with its expansion. +# Technically, attribute const was introduced in gcc-2.95 and +# attribute pure in 2.96, but to keep it simple, we're testing +# for 2.96 or newer for both. + +hash_if = \n\#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)\n +subst_const_attr = \ + s/ _GL_ATTRIBUTE_CONST\b/$(hash_if) __attribute ((__const__))\n\#endif\n/ +subst_pure_attr = \ + s/ _GL_ATTRIBUTE_PURE\b/$(hash_if) __attribute ((__pure__))\n\#endif\n/ + +$(BUILT_SOURCES): Makefile.am + +%.h: %.in.h + $(AM_V_GEN)rm -f $@ $@-t + $(AM_V_at)perl -p \ + -e '$(subst_const_attr);' \ + -e '$(subst_pure_attr);' \ + $< > $@-t + $(AM_V_at)chmod a=r $@-t + $(AM_V_at)mv $@-t $@ + +MAINTAINERCLEANFILES = $(BUILT_SOURCES) diff --git a/include/parted/Makefile.in b/include/parted/Makefile.in new file mode 100644 index 0000000..16a4a7f --- /dev/null +++ b/include/parted/Makefile.in @@ -0,0 +1,1968 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include/parted +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ + $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \ + $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/assert.m4 \ + $(top_srcdir)/m4/assert_h.m4 $(top_srcdir)/m4/btowc.m4 \ + $(top_srcdir)/m4/build-to-host.m4 \ + $(top_srcdir)/m4/builtin-expect.m4 $(top_srcdir)/m4/c-bool.m4 \ + $(top_srcdir)/m4/calloc.m4 $(top_srcdir)/m4/canonicalize.m4 \ + $(top_srcdir)/m4/clock_time.m4 $(top_srcdir)/m4/close.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/config-h.m4 \ + $(top_srcdir)/m4/configmake.m4 $(top_srcdir)/m4/ctype_h.m4 \ + $(top_srcdir)/m4/double-slash-root.m4 $(top_srcdir)/m4/dup2.m4 \ + $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/environ.m4 \ + $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \ + $(top_srcdir)/m4/error_h.m4 $(top_srcdir)/m4/extensions.m4 \ + $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \ + $(top_srcdir)/m4/fcntl.m4 $(top_srcdir)/m4/fcntl_h.m4 \ + $(top_srcdir)/m4/fdopen.m4 $(top_srcdir)/m4/flexmember.m4 \ + $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/free.m4 \ + $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/fsync.m4 \ + $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \ + $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/getpagesize.m4 \ + $(top_srcdir)/m4/getprogname.m4 $(top_srcdir)/m4/getrandom.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettimeofday.m4 \ + $(top_srcdir)/m4/gnulib-common.m4 \ + $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inet_pton.m4 \ + $(top_srcdir)/m4/intl-thread-locale.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/inttypes.m4 \ + $(top_srcdir)/m4/ioctl.m4 $(top_srcdir)/m4/isblank.m4 \ + $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ignore.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/limits-h.m4 $(top_srcdir)/m4/localcharset.m4 \ + $(top_srcdir)/m4/locale-fr.m4 $(top_srcdir)/m4/locale-ja.m4 \ + $(top_srcdir)/m4/locale-tr.m4 $(top_srcdir)/m4/locale-zh.m4 \ + $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \ + $(top_srcdir)/m4/localename.m4 $(top_srcdir)/m4/lock.m4 \ + $(top_srcdir)/m4/lseek.m4 $(top_srcdir)/m4/lstat.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \ + $(top_srcdir)/m4/manywarnings.m4 $(top_srcdir)/m4/mbrtowc.m4 \ + $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbstate_t.m4 \ + $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \ + $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/minmax.m4 \ + $(top_srcdir)/m4/mkdir.m4 $(top_srcdir)/m4/mkstemp.m4 \ + $(top_srcdir)/m4/mmap-anon.m4 $(top_srcdir)/m4/mode_t.m4 \ + $(top_srcdir)/m4/msvc-inval.m4 \ + $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \ + $(top_srcdir)/m4/musl.m4 $(top_srcdir)/m4/nanosleep.m4 \ + $(top_srcdir)/m4/netinet_in_h.m4 \ + $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/o-direct.m4 \ + $(top_srcdir)/m4/off_t.m4 $(top_srcdir)/m4/open-cloexec.m4 \ + $(top_srcdir)/m4/open-slash.m4 $(top_srcdir)/m4/open.m4 \ + $(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/perror.m4 \ + $(top_srcdir)/m4/pipe.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/priv-set.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/pselect.m4 $(top_srcdir)/m4/pthread-thread.m4 \ + $(top_srcdir)/m4/pthread_h.m4 \ + $(top_srcdir)/m4/pthread_rwlock_rdlock.m4 \ + $(top_srcdir)/m4/pthread_sigmask.m4 $(top_srcdir)/m4/putenv.m4 \ + $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \ + $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \ + $(top_srcdir)/m4/read.m4 $(top_srcdir)/m4/readlink.m4 \ + $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/reallocarray.m4 \ + $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rpmatch.m4 \ + $(top_srcdir)/m4/safe-read.m4 $(top_srcdir)/m4/sched_h.m4 \ + $(top_srcdir)/m4/sched_yield.m4 $(top_srcdir)/m4/select.m4 \ + $(top_srcdir)/m4/semaphore.m4 $(top_srcdir)/m4/setenv.m4 \ + $(top_srcdir)/m4/setlocale.m4 \ + $(top_srcdir)/m4/setlocale_null.m4 \ + $(top_srcdir)/m4/signal_h.m4 \ + $(top_srcdir)/m4/signalblocking.m4 $(top_srcdir)/m4/sleep.m4 \ + $(top_srcdir)/m4/socketlib.m4 $(top_srcdir)/m4/sockets.m4 \ + $(top_srcdir)/m4/socklen.m4 $(top_srcdir)/m4/sockpfaf.m4 \ + $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat-time.m4 \ + $(top_srcdir)/m4/stat.m4 $(top_srcdir)/m4/stdalign.m4 \ + $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stddef_h.m4 \ + $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \ + $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strdup.m4 \ + $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strerror_r.m4 \ + $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strtoll.m4 \ + $(top_srcdir)/m4/strtoull.m4 $(top_srcdir)/m4/symlink.m4 \ + $(top_srcdir)/m4/sys_ioctl_h.m4 \ + $(top_srcdir)/m4/sys_random_h.m4 \ + $(top_srcdir)/m4/sys_select_h.m4 \ + $(top_srcdir)/m4/sys_socket_h.m4 \ + $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \ + $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_uio_h.m4 \ + $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/thread.m4 \ + $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/time.m4 \ + $(top_srcdir)/m4/time_h.m4 $(top_srcdir)/m4/unistd_h.m4 \ + $(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkdir.m4 \ + $(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/version-etc.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/warn-on-use.m4 \ + $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/m4/wchar_h.m4 \ + $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \ + $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \ + $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \ + $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/m4/xstrtol.m4 \ + $(top_srcdir)/m4/yield.m4 $(top_srcdir)/m4/zzgnulib.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__noinst_HEADERS_DIST) \ + $(partedinclude_HEADERS) $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/lib/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__noinst_HEADERS_DIST = crc32.h endian.h fdasd.h vtoc.h +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(partedincludedir)" +HEADERS = $(noinst_HEADERS) $(partedinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +pkgdatadir = @pkgdatadir@ +pkgincludedir = @pkgincludedir@ +pkglibdir = @pkglibdir@ +pkglibexecdir = @pkglibexecdir@ +ACLOCAL = @ACLOCAL@ +ALLOCA = @ALLOCA@ +ALLOCA_H = @ALLOCA_H@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ +AR = @AR@ +ARFLAGS = @ARFLAGS@ +ASSERT_H = @ASSERT_H@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ +BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ +BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ +BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ +BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ +BUILDINFO = @BUILDINFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CHECK_CFLAGS = @CHECK_CFLAGS@ +CHECK_LIBS = @CHECK_LIBS@ +CLOCK_TIME_LIB = @CLOCK_TIME_LIB@ +CONFIG_INCLUDE = @CONFIG_INCLUDE@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DM_LIBS = @DM_LIBS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ +EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ +ENABLE_DEVICE_MAPPER = @ENABLE_DEVICE_MAPPER@ +ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ +ENOLINK_VALUE = @ENOLINK_VALUE@ +EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ +EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ +ERRNO_H = @ERRNO_H@ +ERROR_H = @ERROR_H@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_CDEFS_H = @GETOPT_CDEFS_H@ +GETOPT_H = @GETOPT_H@ +GETRANDOM_LIB = @GETRANDOM_LIB@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GL_CFLAG_ALLOW_WARNINGS = @GL_CFLAG_ALLOW_WARNINGS@ +GL_CFLAG_GNULIB_WARNINGS = @GL_CFLAG_GNULIB_WARNINGS@ +GL_CXXFLAG_ALLOW_WARNINGS = @GL_CXXFLAG_ALLOW_WARNINGS@ +GL_GNULIB_ACCEPT = @GL_GNULIB_ACCEPT@ +GL_GNULIB_ACCEPT4 = @GL_GNULIB_ACCEPT4@ +GL_GNULIB_ACCESS = @GL_GNULIB_ACCESS@ +GL_GNULIB_ALIGNED_ALLOC = @GL_GNULIB_ALIGNED_ALLOC@ +GL_GNULIB_ATOLL = @GL_GNULIB_ATOLL@ +GL_GNULIB_BIND = @GL_GNULIB_BIND@ +GL_GNULIB_BTOWC = @GL_GNULIB_BTOWC@ +GL_GNULIB_CALLOC_GNU = @GL_GNULIB_CALLOC_GNU@ +GL_GNULIB_CALLOC_POSIX = @GL_GNULIB_CALLOC_POSIX@ +GL_GNULIB_CANONICALIZE_FILE_NAME = @GL_GNULIB_CANONICALIZE_FILE_NAME@ +GL_GNULIB_CHDIR = @GL_GNULIB_CHDIR@ +GL_GNULIB_CHMOD = @GL_GNULIB_CHMOD@ +GL_GNULIB_CHOWN = @GL_GNULIB_CHOWN@ +GL_GNULIB_CLOSE = @GL_GNULIB_CLOSE@ +GL_GNULIB_CONNECT = @GL_GNULIB_CONNECT@ +GL_GNULIB_COPY_FILE_RANGE = @GL_GNULIB_COPY_FILE_RANGE@ +GL_GNULIB_CREAT = @GL_GNULIB_CREAT@ +GL_GNULIB_CTIME = @GL_GNULIB_CTIME@ +GL_GNULIB_DPRINTF = @GL_GNULIB_DPRINTF@ +GL_GNULIB_DUP = @GL_GNULIB_DUP@ +GL_GNULIB_DUP2 = @GL_GNULIB_DUP2@ +GL_GNULIB_DUP3 = @GL_GNULIB_DUP3@ +GL_GNULIB_DUPLOCALE = @GL_GNULIB_DUPLOCALE@ +GL_GNULIB_ENVIRON = @GL_GNULIB_ENVIRON@ +GL_GNULIB_EUIDACCESS = @GL_GNULIB_EUIDACCESS@ +GL_GNULIB_EXECL = @GL_GNULIB_EXECL@ +GL_GNULIB_EXECLE = @GL_GNULIB_EXECLE@ +GL_GNULIB_EXECLP = @GL_GNULIB_EXECLP@ +GL_GNULIB_EXECV = @GL_GNULIB_EXECV@ +GL_GNULIB_EXECVE = @GL_GNULIB_EXECVE@ +GL_GNULIB_EXECVP = @GL_GNULIB_EXECVP@ +GL_GNULIB_EXECVPE = @GL_GNULIB_EXECVPE@ +GL_GNULIB_EXPLICIT_BZERO = @GL_GNULIB_EXPLICIT_BZERO@ +GL_GNULIB_FACCESSAT = @GL_GNULIB_FACCESSAT@ +GL_GNULIB_FCHDIR = @GL_GNULIB_FCHDIR@ +GL_GNULIB_FCHMODAT = @GL_GNULIB_FCHMODAT@ +GL_GNULIB_FCHOWNAT = @GL_GNULIB_FCHOWNAT@ +GL_GNULIB_FCLOSE = @GL_GNULIB_FCLOSE@ +GL_GNULIB_FCNTL = @GL_GNULIB_FCNTL@ +GL_GNULIB_FDATASYNC = @GL_GNULIB_FDATASYNC@ +GL_GNULIB_FDOPEN = @GL_GNULIB_FDOPEN@ +GL_GNULIB_FFLUSH = @GL_GNULIB_FFLUSH@ +GL_GNULIB_FFSL = @GL_GNULIB_FFSL@ +GL_GNULIB_FFSLL = @GL_GNULIB_FFSLL@ +GL_GNULIB_FGETC = @GL_GNULIB_FGETC@ +GL_GNULIB_FGETS = @GL_GNULIB_FGETS@ +GL_GNULIB_FOPEN = @GL_GNULIB_FOPEN@ +GL_GNULIB_FOPEN_GNU = @GL_GNULIB_FOPEN_GNU@ +GL_GNULIB_FPRINTF = @GL_GNULIB_FPRINTF@ +GL_GNULIB_FPRINTF_POSIX = @GL_GNULIB_FPRINTF_POSIX@ +GL_GNULIB_FPURGE = @GL_GNULIB_FPURGE@ +GL_GNULIB_FPUTC = @GL_GNULIB_FPUTC@ +GL_GNULIB_FPUTS = @GL_GNULIB_FPUTS@ +GL_GNULIB_FREAD = @GL_GNULIB_FREAD@ +GL_GNULIB_FREE_POSIX = @GL_GNULIB_FREE_POSIX@ +GL_GNULIB_FREOPEN = @GL_GNULIB_FREOPEN@ +GL_GNULIB_FSCANF = @GL_GNULIB_FSCANF@ +GL_GNULIB_FSEEK = @GL_GNULIB_FSEEK@ +GL_GNULIB_FSEEKO = @GL_GNULIB_FSEEKO@ +GL_GNULIB_FSTAT = @GL_GNULIB_FSTAT@ +GL_GNULIB_FSTATAT = @GL_GNULIB_FSTATAT@ +GL_GNULIB_FSYNC = @GL_GNULIB_FSYNC@ +GL_GNULIB_FTELL = @GL_GNULIB_FTELL@ +GL_GNULIB_FTELLO = @GL_GNULIB_FTELLO@ +GL_GNULIB_FTRUNCATE = @GL_GNULIB_FTRUNCATE@ +GL_GNULIB_FUTIMENS = @GL_GNULIB_FUTIMENS@ +GL_GNULIB_FWRITE = @GL_GNULIB_FWRITE@ +GL_GNULIB_GETC = @GL_GNULIB_GETC@ +GL_GNULIB_GETCHAR = @GL_GNULIB_GETCHAR@ +GL_GNULIB_GETCWD = @GL_GNULIB_GETCWD@ +GL_GNULIB_GETDELIM = @GL_GNULIB_GETDELIM@ +GL_GNULIB_GETDOMAINNAME = @GL_GNULIB_GETDOMAINNAME@ +GL_GNULIB_GETDTABLESIZE = @GL_GNULIB_GETDTABLESIZE@ +GL_GNULIB_GETENTROPY = @GL_GNULIB_GETENTROPY@ +GL_GNULIB_GETGROUPS = @GL_GNULIB_GETGROUPS@ +GL_GNULIB_GETHOSTNAME = @GL_GNULIB_GETHOSTNAME@ +GL_GNULIB_GETLINE = @GL_GNULIB_GETLINE@ +GL_GNULIB_GETLOADAVG = @GL_GNULIB_GETLOADAVG@ +GL_GNULIB_GETLOGIN = @GL_GNULIB_GETLOGIN@ +GL_GNULIB_GETLOGIN_R = @GL_GNULIB_GETLOGIN_R@ +GL_GNULIB_GETOPT_POSIX = @GL_GNULIB_GETOPT_POSIX@ +GL_GNULIB_GETPAGESIZE = @GL_GNULIB_GETPAGESIZE@ +GL_GNULIB_GETPASS = @GL_GNULIB_GETPASS@ +GL_GNULIB_GETPASS_GNU = @GL_GNULIB_GETPASS_GNU@ +GL_GNULIB_GETPEERNAME = @GL_GNULIB_GETPEERNAME@ +GL_GNULIB_GETPROGNAME = @GL_GNULIB_GETPROGNAME@ +GL_GNULIB_GETRANDOM = @GL_GNULIB_GETRANDOM@ +GL_GNULIB_GETSOCKNAME = @GL_GNULIB_GETSOCKNAME@ +GL_GNULIB_GETSOCKOPT = @GL_GNULIB_GETSOCKOPT@ +GL_GNULIB_GETSUBOPT = @GL_GNULIB_GETSUBOPT@ +GL_GNULIB_GETTIMEOFDAY = @GL_GNULIB_GETTIMEOFDAY@ +GL_GNULIB_GETUMASK = @GL_GNULIB_GETUMASK@ +GL_GNULIB_GETUSERSHELL = @GL_GNULIB_GETUSERSHELL@ +GL_GNULIB_GRANTPT = @GL_GNULIB_GRANTPT@ +GL_GNULIB_GROUP_MEMBER = @GL_GNULIB_GROUP_MEMBER@ +GL_GNULIB_IMAXABS = @GL_GNULIB_IMAXABS@ +GL_GNULIB_IMAXDIV = @GL_GNULIB_IMAXDIV@ +GL_GNULIB_INET_NTOP = @GL_GNULIB_INET_NTOP@ +GL_GNULIB_INET_PTON = @GL_GNULIB_INET_PTON@ +GL_GNULIB_IOCTL = @GL_GNULIB_IOCTL@ +GL_GNULIB_ISATTY = @GL_GNULIB_ISATTY@ +GL_GNULIB_ISBLANK = @GL_GNULIB_ISBLANK@ +GL_GNULIB_ISWBLANK = @GL_GNULIB_ISWBLANK@ +GL_GNULIB_ISWCTYPE = @GL_GNULIB_ISWCTYPE@ +GL_GNULIB_ISWDIGIT = @GL_GNULIB_ISWDIGIT@ +GL_GNULIB_ISWXDIGIT = @GL_GNULIB_ISWXDIGIT@ +GL_GNULIB_LCHMOD = @GL_GNULIB_LCHMOD@ +GL_GNULIB_LCHOWN = @GL_GNULIB_LCHOWN@ +GL_GNULIB_LINK = @GL_GNULIB_LINK@ +GL_GNULIB_LINKAT = @GL_GNULIB_LINKAT@ +GL_GNULIB_LISTEN = @GL_GNULIB_LISTEN@ +GL_GNULIB_LOCALECONV = @GL_GNULIB_LOCALECONV@ +GL_GNULIB_LOCALENAME = @GL_GNULIB_LOCALENAME@ +GL_GNULIB_LOCALTIME = @GL_GNULIB_LOCALTIME@ +GL_GNULIB_LSEEK = @GL_GNULIB_LSEEK@ +GL_GNULIB_LSTAT = @GL_GNULIB_LSTAT@ +GL_GNULIB_MALLOC_GNU = @GL_GNULIB_MALLOC_GNU@ +GL_GNULIB_MALLOC_POSIX = @GL_GNULIB_MALLOC_POSIX@ +GL_GNULIB_MBRLEN = @GL_GNULIB_MBRLEN@ +GL_GNULIB_MBRTOWC = @GL_GNULIB_MBRTOWC@ +GL_GNULIB_MBSCASECMP = @GL_GNULIB_MBSCASECMP@ +GL_GNULIB_MBSCASESTR = @GL_GNULIB_MBSCASESTR@ +GL_GNULIB_MBSCHR = @GL_GNULIB_MBSCHR@ +GL_GNULIB_MBSCSPN = @GL_GNULIB_MBSCSPN@ +GL_GNULIB_MBSINIT = @GL_GNULIB_MBSINIT@ +GL_GNULIB_MBSLEN = @GL_GNULIB_MBSLEN@ +GL_GNULIB_MBSNCASECMP = @GL_GNULIB_MBSNCASECMP@ +GL_GNULIB_MBSNLEN = @GL_GNULIB_MBSNLEN@ +GL_GNULIB_MBSNRTOWCS = @GL_GNULIB_MBSNRTOWCS@ +GL_GNULIB_MBSPBRK = @GL_GNULIB_MBSPBRK@ +GL_GNULIB_MBSPCASECMP = @GL_GNULIB_MBSPCASECMP@ +GL_GNULIB_MBSRCHR = @GL_GNULIB_MBSRCHR@ +GL_GNULIB_MBSRTOWCS = @GL_GNULIB_MBSRTOWCS@ +GL_GNULIB_MBSSEP = @GL_GNULIB_MBSSEP@ +GL_GNULIB_MBSSPN = @GL_GNULIB_MBSSPN@ +GL_GNULIB_MBSSTR = @GL_GNULIB_MBSSTR@ +GL_GNULIB_MBSTOK_R = @GL_GNULIB_MBSTOK_R@ +GL_GNULIB_MBTOWC = @GL_GNULIB_MBTOWC@ +GL_GNULIB_MDA_ACCESS = @GL_GNULIB_MDA_ACCESS@ +GL_GNULIB_MDA_CHDIR = @GL_GNULIB_MDA_CHDIR@ +GL_GNULIB_MDA_CHMOD = @GL_GNULIB_MDA_CHMOD@ +GL_GNULIB_MDA_CLOSE = @GL_GNULIB_MDA_CLOSE@ +GL_GNULIB_MDA_CREAT = @GL_GNULIB_MDA_CREAT@ +GL_GNULIB_MDA_DUP = @GL_GNULIB_MDA_DUP@ +GL_GNULIB_MDA_DUP2 = @GL_GNULIB_MDA_DUP2@ +GL_GNULIB_MDA_ECVT = @GL_GNULIB_MDA_ECVT@ +GL_GNULIB_MDA_EXECL = @GL_GNULIB_MDA_EXECL@ +GL_GNULIB_MDA_EXECLE = @GL_GNULIB_MDA_EXECLE@ +GL_GNULIB_MDA_EXECLP = @GL_GNULIB_MDA_EXECLP@ +GL_GNULIB_MDA_EXECV = @GL_GNULIB_MDA_EXECV@ +GL_GNULIB_MDA_EXECVE = @GL_GNULIB_MDA_EXECVE@ +GL_GNULIB_MDA_EXECVP = @GL_GNULIB_MDA_EXECVP@ +GL_GNULIB_MDA_EXECVPE = @GL_GNULIB_MDA_EXECVPE@ +GL_GNULIB_MDA_FCLOSEALL = @GL_GNULIB_MDA_FCLOSEALL@ +GL_GNULIB_MDA_FCVT = @GL_GNULIB_MDA_FCVT@ +GL_GNULIB_MDA_FDOPEN = @GL_GNULIB_MDA_FDOPEN@ +GL_GNULIB_MDA_FILENO = @GL_GNULIB_MDA_FILENO@ +GL_GNULIB_MDA_GCVT = @GL_GNULIB_MDA_GCVT@ +GL_GNULIB_MDA_GETCWD = @GL_GNULIB_MDA_GETCWD@ +GL_GNULIB_MDA_GETPID = @GL_GNULIB_MDA_GETPID@ +GL_GNULIB_MDA_GETW = @GL_GNULIB_MDA_GETW@ +GL_GNULIB_MDA_ISATTY = @GL_GNULIB_MDA_ISATTY@ +GL_GNULIB_MDA_LSEEK = @GL_GNULIB_MDA_LSEEK@ +GL_GNULIB_MDA_MEMCCPY = @GL_GNULIB_MDA_MEMCCPY@ +GL_GNULIB_MDA_MKDIR = @GL_GNULIB_MDA_MKDIR@ +GL_GNULIB_MDA_MKTEMP = @GL_GNULIB_MDA_MKTEMP@ +GL_GNULIB_MDA_OPEN = @GL_GNULIB_MDA_OPEN@ +GL_GNULIB_MDA_PUTENV = @GL_GNULIB_MDA_PUTENV@ +GL_GNULIB_MDA_PUTW = @GL_GNULIB_MDA_PUTW@ +GL_GNULIB_MDA_READ = @GL_GNULIB_MDA_READ@ +GL_GNULIB_MDA_RMDIR = @GL_GNULIB_MDA_RMDIR@ +GL_GNULIB_MDA_STRDUP = @GL_GNULIB_MDA_STRDUP@ +GL_GNULIB_MDA_SWAB = @GL_GNULIB_MDA_SWAB@ +GL_GNULIB_MDA_TEMPNAM = @GL_GNULIB_MDA_TEMPNAM@ +GL_GNULIB_MDA_TZSET = @GL_GNULIB_MDA_TZSET@ +GL_GNULIB_MDA_UMASK = @GL_GNULIB_MDA_UMASK@ +GL_GNULIB_MDA_UNLINK = @GL_GNULIB_MDA_UNLINK@ +GL_GNULIB_MDA_WCSDUP = @GL_GNULIB_MDA_WCSDUP@ +GL_GNULIB_MDA_WRITE = @GL_GNULIB_MDA_WRITE@ +GL_GNULIB_MEMCHR = @GL_GNULIB_MEMCHR@ +GL_GNULIB_MEMMEM = @GL_GNULIB_MEMMEM@ +GL_GNULIB_MEMPCPY = @GL_GNULIB_MEMPCPY@ +GL_GNULIB_MEMRCHR = @GL_GNULIB_MEMRCHR@ +GL_GNULIB_MEMSET_EXPLICIT = @GL_GNULIB_MEMSET_EXPLICIT@ +GL_GNULIB_MKDIR = @GL_GNULIB_MKDIR@ +GL_GNULIB_MKDIRAT = @GL_GNULIB_MKDIRAT@ +GL_GNULIB_MKDTEMP = @GL_GNULIB_MKDTEMP@ +GL_GNULIB_MKFIFO = @GL_GNULIB_MKFIFO@ +GL_GNULIB_MKFIFOAT = @GL_GNULIB_MKFIFOAT@ +GL_GNULIB_MKNOD = @GL_GNULIB_MKNOD@ +GL_GNULIB_MKNODAT = @GL_GNULIB_MKNODAT@ +GL_GNULIB_MKOSTEMP = @GL_GNULIB_MKOSTEMP@ +GL_GNULIB_MKOSTEMPS = @GL_GNULIB_MKOSTEMPS@ +GL_GNULIB_MKSTEMP = @GL_GNULIB_MKSTEMP@ +GL_GNULIB_MKSTEMPS = @GL_GNULIB_MKSTEMPS@ +GL_GNULIB_MKTIME = @GL_GNULIB_MKTIME@ +GL_GNULIB_NANOSLEEP = @GL_GNULIB_NANOSLEEP@ +GL_GNULIB_NL_LANGINFO = @GL_GNULIB_NL_LANGINFO@ +GL_GNULIB_NONBLOCKING = @GL_GNULIB_NONBLOCKING@ +GL_GNULIB_OBSTACK_PRINTF = @GL_GNULIB_OBSTACK_PRINTF@ +GL_GNULIB_OBSTACK_PRINTF_POSIX = @GL_GNULIB_OBSTACK_PRINTF_POSIX@ +GL_GNULIB_OPEN = @GL_GNULIB_OPEN@ +GL_GNULIB_OPENAT = @GL_GNULIB_OPENAT@ +GL_GNULIB_OVERRIDES_STRUCT_STAT = @GL_GNULIB_OVERRIDES_STRUCT_STAT@ +GL_GNULIB_PCLOSE = @GL_GNULIB_PCLOSE@ +GL_GNULIB_PERROR = @GL_GNULIB_PERROR@ +GL_GNULIB_PIPE = @GL_GNULIB_PIPE@ +GL_GNULIB_PIPE2 = @GL_GNULIB_PIPE2@ +GL_GNULIB_POPEN = @GL_GNULIB_POPEN@ +GL_GNULIB_POSIX_MEMALIGN = @GL_GNULIB_POSIX_MEMALIGN@ +GL_GNULIB_POSIX_OPENPT = @GL_GNULIB_POSIX_OPENPT@ +GL_GNULIB_PREAD = @GL_GNULIB_PREAD@ +GL_GNULIB_PRINTF = @GL_GNULIB_PRINTF@ +GL_GNULIB_PRINTF_POSIX = @GL_GNULIB_PRINTF_POSIX@ +GL_GNULIB_PSELECT = @GL_GNULIB_PSELECT@ +GL_GNULIB_PTHREAD_COND = @GL_GNULIB_PTHREAD_COND@ +GL_GNULIB_PTHREAD_MUTEX = @GL_GNULIB_PTHREAD_MUTEX@ +GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK = @GL_GNULIB_PTHREAD_MUTEX_TIMEDLOCK@ +GL_GNULIB_PTHREAD_ONCE = @GL_GNULIB_PTHREAD_ONCE@ +GL_GNULIB_PTHREAD_RWLOCK = @GL_GNULIB_PTHREAD_RWLOCK@ +GL_GNULIB_PTHREAD_SIGMASK = @GL_GNULIB_PTHREAD_SIGMASK@ +GL_GNULIB_PTHREAD_SPIN = @GL_GNULIB_PTHREAD_SPIN@ +GL_GNULIB_PTHREAD_THREAD = @GL_GNULIB_PTHREAD_THREAD@ +GL_GNULIB_PTHREAD_TSS = @GL_GNULIB_PTHREAD_TSS@ +GL_GNULIB_PTSNAME = @GL_GNULIB_PTSNAME@ +GL_GNULIB_PTSNAME_R = @GL_GNULIB_PTSNAME_R@ +GL_GNULIB_PUTC = @GL_GNULIB_PUTC@ +GL_GNULIB_PUTCHAR = @GL_GNULIB_PUTCHAR@ +GL_GNULIB_PUTENV = @GL_GNULIB_PUTENV@ +GL_GNULIB_PUTS = @GL_GNULIB_PUTS@ +GL_GNULIB_PWRITE = @GL_GNULIB_PWRITE@ +GL_GNULIB_QSORT_R = @GL_GNULIB_QSORT_R@ +GL_GNULIB_RAISE = @GL_GNULIB_RAISE@ +GL_GNULIB_RANDOM = @GL_GNULIB_RANDOM@ +GL_GNULIB_RANDOM_R = @GL_GNULIB_RANDOM_R@ +GL_GNULIB_RAWMEMCHR = @GL_GNULIB_RAWMEMCHR@ +GL_GNULIB_READ = @GL_GNULIB_READ@ +GL_GNULIB_READLINK = @GL_GNULIB_READLINK@ +GL_GNULIB_READLINKAT = @GL_GNULIB_READLINKAT@ +GL_GNULIB_REALLOCARRAY = @GL_GNULIB_REALLOCARRAY@ +GL_GNULIB_REALLOC_GNU = @GL_GNULIB_REALLOC_GNU@ +GL_GNULIB_REALLOC_POSIX = @GL_GNULIB_REALLOC_POSIX@ +GL_GNULIB_REALPATH = @GL_GNULIB_REALPATH@ +GL_GNULIB_RECV = @GL_GNULIB_RECV@ +GL_GNULIB_RECVFROM = @GL_GNULIB_RECVFROM@ +GL_GNULIB_REMOVE = @GL_GNULIB_REMOVE@ +GL_GNULIB_RENAME = @GL_GNULIB_RENAME@ +GL_GNULIB_RENAMEAT = @GL_GNULIB_RENAMEAT@ +GL_GNULIB_RMDIR = @GL_GNULIB_RMDIR@ +GL_GNULIB_RPMATCH = @GL_GNULIB_RPMATCH@ +GL_GNULIB_SCANF = @GL_GNULIB_SCANF@ +GL_GNULIB_SCHED_YIELD = @GL_GNULIB_SCHED_YIELD@ +GL_GNULIB_SECURE_GETENV = @GL_GNULIB_SECURE_GETENV@ +GL_GNULIB_SELECT = @GL_GNULIB_SELECT@ +GL_GNULIB_SEND = @GL_GNULIB_SEND@ +GL_GNULIB_SENDTO = @GL_GNULIB_SENDTO@ +GL_GNULIB_SETENV = @GL_GNULIB_SETENV@ +GL_GNULIB_SETHOSTNAME = @GL_GNULIB_SETHOSTNAME@ +GL_GNULIB_SETLOCALE = @GL_GNULIB_SETLOCALE@ +GL_GNULIB_SETLOCALE_NULL = @GL_GNULIB_SETLOCALE_NULL@ +GL_GNULIB_SETSOCKOPT = @GL_GNULIB_SETSOCKOPT@ +GL_GNULIB_SHUTDOWN = @GL_GNULIB_SHUTDOWN@ +GL_GNULIB_SIGABBREV_NP = @GL_GNULIB_SIGABBREV_NP@ +GL_GNULIB_SIGACTION = @GL_GNULIB_SIGACTION@ +GL_GNULIB_SIGDESCR_NP = @GL_GNULIB_SIGDESCR_NP@ +GL_GNULIB_SIGNAL_H_SIGPIPE = @GL_GNULIB_SIGNAL_H_SIGPIPE@ +GL_GNULIB_SIGPROCMASK = @GL_GNULIB_SIGPROCMASK@ +GL_GNULIB_SLEEP = @GL_GNULIB_SLEEP@ +GL_GNULIB_SNPRINTF = @GL_GNULIB_SNPRINTF@ +GL_GNULIB_SOCKET = @GL_GNULIB_SOCKET@ +GL_GNULIB_SPRINTF_POSIX = @GL_GNULIB_SPRINTF_POSIX@ +GL_GNULIB_STAT = @GL_GNULIB_STAT@ +GL_GNULIB_STDIO_H_NONBLOCKING = @GL_GNULIB_STDIO_H_NONBLOCKING@ +GL_GNULIB_STDIO_H_SIGPIPE = @GL_GNULIB_STDIO_H_SIGPIPE@ +GL_GNULIB_STPCPY = @GL_GNULIB_STPCPY@ +GL_GNULIB_STPNCPY = @GL_GNULIB_STPNCPY@ +GL_GNULIB_STRCASESTR = @GL_GNULIB_STRCASESTR@ +GL_GNULIB_STRCHRNUL = @GL_GNULIB_STRCHRNUL@ +GL_GNULIB_STRDUP = @GL_GNULIB_STRDUP@ +GL_GNULIB_STRERROR = @GL_GNULIB_STRERROR@ +GL_GNULIB_STRERRORNAME_NP = @GL_GNULIB_STRERRORNAME_NP@ +GL_GNULIB_STRERROR_R = @GL_GNULIB_STRERROR_R@ +GL_GNULIB_STRFTIME = @GL_GNULIB_STRFTIME@ +GL_GNULIB_STRNCAT = @GL_GNULIB_STRNCAT@ +GL_GNULIB_STRNDUP = @GL_GNULIB_STRNDUP@ +GL_GNULIB_STRNLEN = @GL_GNULIB_STRNLEN@ +GL_GNULIB_STRPBRK = @GL_GNULIB_STRPBRK@ +GL_GNULIB_STRPTIME = @GL_GNULIB_STRPTIME@ +GL_GNULIB_STRSEP = @GL_GNULIB_STRSEP@ +GL_GNULIB_STRSIGNAL = @GL_GNULIB_STRSIGNAL@ +GL_GNULIB_STRSTR = @GL_GNULIB_STRSTR@ +GL_GNULIB_STRTOD = @GL_GNULIB_STRTOD@ +GL_GNULIB_STRTOIMAX = @GL_GNULIB_STRTOIMAX@ +GL_GNULIB_STRTOK_R = @GL_GNULIB_STRTOK_R@ +GL_GNULIB_STRTOL = @GL_GNULIB_STRTOL@ +GL_GNULIB_STRTOLD = @GL_GNULIB_STRTOLD@ +GL_GNULIB_STRTOLL = @GL_GNULIB_STRTOLL@ +GL_GNULIB_STRTOUL = @GL_GNULIB_STRTOUL@ +GL_GNULIB_STRTOULL = @GL_GNULIB_STRTOULL@ +GL_GNULIB_STRTOUMAX = @GL_GNULIB_STRTOUMAX@ +GL_GNULIB_STRVERSCMP = @GL_GNULIB_STRVERSCMP@ +GL_GNULIB_SYMLINK = @GL_GNULIB_SYMLINK@ +GL_GNULIB_SYMLINKAT = @GL_GNULIB_SYMLINKAT@ +GL_GNULIB_SYSTEM_POSIX = @GL_GNULIB_SYSTEM_POSIX@ +GL_GNULIB_TIME = @GL_GNULIB_TIME@ +GL_GNULIB_TIMEGM = @GL_GNULIB_TIMEGM@ +GL_GNULIB_TIMESPEC_GET = @GL_GNULIB_TIMESPEC_GET@ +GL_GNULIB_TIMESPEC_GETRES = @GL_GNULIB_TIMESPEC_GETRES@ +GL_GNULIB_TIME_R = @GL_GNULIB_TIME_R@ +GL_GNULIB_TIME_RZ = @GL_GNULIB_TIME_RZ@ +GL_GNULIB_TMPFILE = @GL_GNULIB_TMPFILE@ +GL_GNULIB_TOWCTRANS = @GL_GNULIB_TOWCTRANS@ +GL_GNULIB_TRUNCATE = @GL_GNULIB_TRUNCATE@ +GL_GNULIB_TTYNAME_R = @GL_GNULIB_TTYNAME_R@ +GL_GNULIB_TZSET = @GL_GNULIB_TZSET@ +GL_GNULIB_UNISTD_H_GETOPT = @GL_GNULIB_UNISTD_H_GETOPT@ +GL_GNULIB_UNISTD_H_NONBLOCKING = @GL_GNULIB_UNISTD_H_NONBLOCKING@ +GL_GNULIB_UNISTD_H_SIGPIPE = @GL_GNULIB_UNISTD_H_SIGPIPE@ +GL_GNULIB_UNLINK = @GL_GNULIB_UNLINK@ +GL_GNULIB_UNLINKAT = @GL_GNULIB_UNLINKAT@ +GL_GNULIB_UNLOCKPT = @GL_GNULIB_UNLOCKPT@ +GL_GNULIB_UNSETENV = @GL_GNULIB_UNSETENV@ +GL_GNULIB_USLEEP = @GL_GNULIB_USLEEP@ +GL_GNULIB_UTIMENSAT = @GL_GNULIB_UTIMENSAT@ +GL_GNULIB_VASPRINTF = @GL_GNULIB_VASPRINTF@ +GL_GNULIB_VDPRINTF = @GL_GNULIB_VDPRINTF@ +GL_GNULIB_VFPRINTF = @GL_GNULIB_VFPRINTF@ +GL_GNULIB_VFPRINTF_POSIX = @GL_GNULIB_VFPRINTF_POSIX@ +GL_GNULIB_VFSCANF = @GL_GNULIB_VFSCANF@ +GL_GNULIB_VPRINTF = @GL_GNULIB_VPRINTF@ +GL_GNULIB_VPRINTF_POSIX = @GL_GNULIB_VPRINTF_POSIX@ +GL_GNULIB_VSCANF = @GL_GNULIB_VSCANF@ +GL_GNULIB_VSNPRINTF = @GL_GNULIB_VSNPRINTF@ +GL_GNULIB_VSPRINTF_POSIX = @GL_GNULIB_VSPRINTF_POSIX@ +GL_GNULIB_WCPCPY = @GL_GNULIB_WCPCPY@ +GL_GNULIB_WCPNCPY = @GL_GNULIB_WCPNCPY@ +GL_GNULIB_WCRTOMB = @GL_GNULIB_WCRTOMB@ +GL_GNULIB_WCSCASECMP = @GL_GNULIB_WCSCASECMP@ +GL_GNULIB_WCSCAT = @GL_GNULIB_WCSCAT@ +GL_GNULIB_WCSCHR = @GL_GNULIB_WCSCHR@ +GL_GNULIB_WCSCMP = @GL_GNULIB_WCSCMP@ +GL_GNULIB_WCSCOLL = @GL_GNULIB_WCSCOLL@ +GL_GNULIB_WCSCPY = @GL_GNULIB_WCSCPY@ +GL_GNULIB_WCSCSPN = @GL_GNULIB_WCSCSPN@ +GL_GNULIB_WCSDUP = @GL_GNULIB_WCSDUP@ +GL_GNULIB_WCSFTIME = @GL_GNULIB_WCSFTIME@ +GL_GNULIB_WCSLEN = @GL_GNULIB_WCSLEN@ +GL_GNULIB_WCSNCASECMP = @GL_GNULIB_WCSNCASECMP@ +GL_GNULIB_WCSNCAT = @GL_GNULIB_WCSNCAT@ +GL_GNULIB_WCSNCMP = @GL_GNULIB_WCSNCMP@ +GL_GNULIB_WCSNCPY = @GL_GNULIB_WCSNCPY@ +GL_GNULIB_WCSNLEN = @GL_GNULIB_WCSNLEN@ +GL_GNULIB_WCSNRTOMBS = @GL_GNULIB_WCSNRTOMBS@ +GL_GNULIB_WCSPBRK = @GL_GNULIB_WCSPBRK@ +GL_GNULIB_WCSRCHR = @GL_GNULIB_WCSRCHR@ +GL_GNULIB_WCSRTOMBS = @GL_GNULIB_WCSRTOMBS@ +GL_GNULIB_WCSSPN = @GL_GNULIB_WCSSPN@ +GL_GNULIB_WCSSTR = @GL_GNULIB_WCSSTR@ +GL_GNULIB_WCSTOK = @GL_GNULIB_WCSTOK@ +GL_GNULIB_WCSWIDTH = @GL_GNULIB_WCSWIDTH@ +GL_GNULIB_WCSXFRM = @GL_GNULIB_WCSXFRM@ +GL_GNULIB_WCTOB = @GL_GNULIB_WCTOB@ +GL_GNULIB_WCTOMB = @GL_GNULIB_WCTOMB@ +GL_GNULIB_WCTRANS = @GL_GNULIB_WCTRANS@ +GL_GNULIB_WCTYPE = @GL_GNULIB_WCTYPE@ +GL_GNULIB_WCWIDTH = @GL_GNULIB_WCWIDTH@ +GL_GNULIB_WMEMCHR = @GL_GNULIB_WMEMCHR@ +GL_GNULIB_WMEMCMP = @GL_GNULIB_WMEMCMP@ +GL_GNULIB_WMEMCPY = @GL_GNULIB_WMEMCPY@ +GL_GNULIB_WMEMMOVE = @GL_GNULIB_WMEMMOVE@ +GL_GNULIB_WMEMPCPY = @GL_GNULIB_WMEMPCPY@ +GL_GNULIB_WMEMSET = @GL_GNULIB_WMEMSET@ +GL_GNULIB_WRITE = @GL_GNULIB_WRITE@ +GL_GNULIB__EXIT = @GL_GNULIB__EXIT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GNULIBHEADERS_OVERRIDE_WINT_T = @GNULIBHEADERS_OVERRIDE_WINT_T@ +GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ +GREP = @GREP@ +HARD_LOCALE_LIB = @HARD_LOCALE_LIB@ +HAVE_ACCEPT4 = @HAVE_ACCEPT4@ +HAVE_ALIGNED_ALLOC = @HAVE_ALIGNED_ALLOC@ +HAVE_ALLOCA_H = @HAVE_ALLOCA_H@ +HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@ +HAVE_ATOLL = @HAVE_ATOLL@ +HAVE_BTOWC = @HAVE_BTOWC@ +HAVE_C99_STDINT_H = @HAVE_C99_STDINT_H@ +HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ +HAVE_CHOWN = @HAVE_CHOWN@ +HAVE_COPY_FILE_RANGE = @HAVE_COPY_FILE_RANGE@ +HAVE_CRTDEFS_H = @HAVE_CRTDEFS_H@ +HAVE_DECL_ECVT = @HAVE_DECL_ECVT@ +HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ +HAVE_DECL_EXECVPE = @HAVE_DECL_EXECVPE@ +HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ +HAVE_DECL_FCLOSEALL = @HAVE_DECL_FCLOSEALL@ +HAVE_DECL_FCVT = @HAVE_DECL_FCVT@ +HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ +HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ +HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ +HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ +HAVE_DECL_GCVT = @HAVE_DECL_GCVT@ +HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ +HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ +HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ +HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ +HAVE_DECL_GETLOGIN = @HAVE_DECL_GETLOGIN@ +HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ +HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ +HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ +HAVE_DECL_GETW = @HAVE_DECL_GETW@ +HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ +HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ +HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@ +HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@ +HAVE_DECL_INITSTATE = @HAVE_DECL_INITSTATE@ +HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ +HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ +HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ +HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ +HAVE_DECL_PUTW = @HAVE_DECL_PUTW@ +HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ +HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ +HAVE_DECL_SETSTATE = @HAVE_DECL_SETSTATE@ +HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ +HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ +HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ +HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ +HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ +HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ +HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ +HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ +HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ +HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ +HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ +HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ +HAVE_DECL_WCSDUP = @HAVE_DECL_WCSDUP@ +HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ +HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ +HAVE_DPRINTF = @HAVE_DPRINTF@ +HAVE_DUP3 = @HAVE_DUP3@ +HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ +HAVE_ERROR = @HAVE_ERROR@ +HAVE_ERROR_AT_LINE = @HAVE_ERROR_AT_LINE@ +HAVE_ERROR_H = @HAVE_ERROR_H@ +HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ +HAVE_EXECVPE = @HAVE_EXECVPE@ +HAVE_EXPLICIT_BZERO = @HAVE_EXPLICIT_BZERO@ +HAVE_FACCESSAT = @HAVE_FACCESSAT@ +HAVE_FCHDIR = @HAVE_FCHDIR@ +HAVE_FCHMODAT = @HAVE_FCHMODAT@ +HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ +HAVE_FCNTL = @HAVE_FCNTL@ +HAVE_FDATASYNC = @HAVE_FDATASYNC@ +HAVE_FEATURES_H = @HAVE_FEATURES_H@ +HAVE_FFSL = @HAVE_FFSL@ +HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ +HAVE_FSEEKO = @HAVE_FSEEKO@ +HAVE_FSTATAT = @HAVE_FSTATAT@ +HAVE_FSYNC = @HAVE_FSYNC@ +HAVE_FTELLO = @HAVE_FTELLO@ +HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ +HAVE_FUTIMENS = @HAVE_FUTIMENS@ +HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ +HAVE_GETENTROPY = @HAVE_GETENTROPY@ +HAVE_GETGROUPS = @HAVE_GETGROUPS@ +HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ +HAVE_GETLOGIN = @HAVE_GETLOGIN@ +HAVE_GETOPT_H = @HAVE_GETOPT_H@ +HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ +HAVE_GETPROGNAME = @HAVE_GETPROGNAME@ +HAVE_GETRANDOM = @HAVE_GETRANDOM@ +HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ +HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ +HAVE_GETUMASK = @HAVE_GETUMASK@ +HAVE_GRANTPT = @HAVE_GRANTPT@ +HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXABS = @HAVE_IMAXABS@ +HAVE_IMAXDIV = @HAVE_IMAXDIV@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ +HAVE_INITSTATE = @HAVE_INITSTATE@ +HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ +HAVE_ISBLANK = @HAVE_ISBLANK@ +HAVE_ISWBLANK = @HAVE_ISWBLANK@ +HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ +HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ +HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ +HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ +HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@ +HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@ +HAVE_LCHMOD = @HAVE_LCHMOD@ +HAVE_LCHOWN = @HAVE_LCHOWN@ +HAVE_LINK = @HAVE_LINK@ +HAVE_LINKAT = @HAVE_LINKAT@ +HAVE_LSTAT = @HAVE_LSTAT@ +HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@ +HAVE_MBRLEN = @HAVE_MBRLEN@ +HAVE_MBRTOWC = @HAVE_MBRTOWC@ +HAVE_MBSINIT = @HAVE_MBSINIT@ +HAVE_MBSLEN = @HAVE_MBSLEN@ +HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ +HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ +HAVE_MBTOWC = @HAVE_MBTOWC@ +HAVE_MEMPCPY = @HAVE_MEMPCPY@ +HAVE_MEMSET_EXPLICIT = @HAVE_MEMSET_EXPLICIT@ +HAVE_MKDIRAT = @HAVE_MKDIRAT@ +HAVE_MKDTEMP = @HAVE_MKDTEMP@ +HAVE_MKFIFO = @HAVE_MKFIFO@ +HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ +HAVE_MKNOD = @HAVE_MKNOD@ +HAVE_MKNODAT = @HAVE_MKNODAT@ +HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ +HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ +HAVE_MKSTEMP = @HAVE_MKSTEMP@ +HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ +HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ +HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ +HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ +HAVE_OPENAT = @HAVE_OPENAT@ +HAVE_OS_H = @HAVE_OS_H@ +HAVE_PCLOSE = @HAVE_PCLOSE@ +HAVE_PIPE = @HAVE_PIPE@ +HAVE_PIPE2 = @HAVE_PIPE2@ +HAVE_POPEN = @HAVE_POPEN@ +HAVE_POSIX_MEMALIGN = @HAVE_POSIX_MEMALIGN@ +HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ +HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@ +HAVE_PREAD = @HAVE_PREAD@ +HAVE_PSELECT = @HAVE_PSELECT@ +HAVE_PTHREAD_ATTR_DESTROY = @HAVE_PTHREAD_ATTR_DESTROY@ +HAVE_PTHREAD_ATTR_GETDETACHSTATE = @HAVE_PTHREAD_ATTR_GETDETACHSTATE@ +HAVE_PTHREAD_ATTR_INIT = @HAVE_PTHREAD_ATTR_INIT@ +HAVE_PTHREAD_ATTR_SETDETACHSTATE = @HAVE_PTHREAD_ATTR_SETDETACHSTATE@ +HAVE_PTHREAD_CONDATTR_DESTROY = @HAVE_PTHREAD_CONDATTR_DESTROY@ +HAVE_PTHREAD_CONDATTR_INIT = @HAVE_PTHREAD_CONDATTR_INIT@ +HAVE_PTHREAD_COND_BROADCAST = @HAVE_PTHREAD_COND_BROADCAST@ +HAVE_PTHREAD_COND_DESTROY = @HAVE_PTHREAD_COND_DESTROY@ +HAVE_PTHREAD_COND_INIT = @HAVE_PTHREAD_COND_INIT@ +HAVE_PTHREAD_COND_SIGNAL = @HAVE_PTHREAD_COND_SIGNAL@ +HAVE_PTHREAD_COND_TIMEDWAIT = @HAVE_PTHREAD_COND_TIMEDWAIT@ +HAVE_PTHREAD_COND_WAIT = @HAVE_PTHREAD_COND_WAIT@ +HAVE_PTHREAD_CREATE = @HAVE_PTHREAD_CREATE@ +HAVE_PTHREAD_CREATE_DETACHED = @HAVE_PTHREAD_CREATE_DETACHED@ +HAVE_PTHREAD_DETACH = @HAVE_PTHREAD_DETACH@ +HAVE_PTHREAD_EQUAL = @HAVE_PTHREAD_EQUAL@ +HAVE_PTHREAD_EXIT = @HAVE_PTHREAD_EXIT@ +HAVE_PTHREAD_GETSPECIFIC = @HAVE_PTHREAD_GETSPECIFIC@ +HAVE_PTHREAD_H = @HAVE_PTHREAD_H@ +HAVE_PTHREAD_JOIN = @HAVE_PTHREAD_JOIN@ +HAVE_PTHREAD_KEY_CREATE = @HAVE_PTHREAD_KEY_CREATE@ +HAVE_PTHREAD_KEY_DELETE = @HAVE_PTHREAD_KEY_DELETE@ +HAVE_PTHREAD_MUTEXATTR_DESTROY = @HAVE_PTHREAD_MUTEXATTR_DESTROY@ +HAVE_PTHREAD_MUTEXATTR_GETROBUST = @HAVE_PTHREAD_MUTEXATTR_GETROBUST@ +HAVE_PTHREAD_MUTEXATTR_GETTYPE = @HAVE_PTHREAD_MUTEXATTR_GETTYPE@ +HAVE_PTHREAD_MUTEXATTR_INIT = @HAVE_PTHREAD_MUTEXATTR_INIT@ +HAVE_PTHREAD_MUTEXATTR_SETROBUST = @HAVE_PTHREAD_MUTEXATTR_SETROBUST@ +HAVE_PTHREAD_MUTEXATTR_SETTYPE = @HAVE_PTHREAD_MUTEXATTR_SETTYPE@ +HAVE_PTHREAD_MUTEX_DESTROY = @HAVE_PTHREAD_MUTEX_DESTROY@ +HAVE_PTHREAD_MUTEX_INIT = @HAVE_PTHREAD_MUTEX_INIT@ +HAVE_PTHREAD_MUTEX_LOCK = @HAVE_PTHREAD_MUTEX_LOCK@ +HAVE_PTHREAD_MUTEX_RECURSIVE = @HAVE_PTHREAD_MUTEX_RECURSIVE@ +HAVE_PTHREAD_MUTEX_ROBUST = @HAVE_PTHREAD_MUTEX_ROBUST@ +HAVE_PTHREAD_MUTEX_TIMEDLOCK = @HAVE_PTHREAD_MUTEX_TIMEDLOCK@ +HAVE_PTHREAD_MUTEX_TRYLOCK = @HAVE_PTHREAD_MUTEX_TRYLOCK@ +HAVE_PTHREAD_MUTEX_UNLOCK = @HAVE_PTHREAD_MUTEX_UNLOCK@ +HAVE_PTHREAD_ONCE = @HAVE_PTHREAD_ONCE@ +HAVE_PTHREAD_PROCESS_SHARED = @HAVE_PTHREAD_PROCESS_SHARED@ +HAVE_PTHREAD_RWLOCKATTR_DESTROY = @HAVE_PTHREAD_RWLOCKATTR_DESTROY@ +HAVE_PTHREAD_RWLOCKATTR_INIT = @HAVE_PTHREAD_RWLOCKATTR_INIT@ +HAVE_PTHREAD_RWLOCK_DESTROY = @HAVE_PTHREAD_RWLOCK_DESTROY@ +HAVE_PTHREAD_RWLOCK_INIT = @HAVE_PTHREAD_RWLOCK_INIT@ +HAVE_PTHREAD_RWLOCK_RDLOCK = @HAVE_PTHREAD_RWLOCK_RDLOCK@ +HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK = @HAVE_PTHREAD_RWLOCK_TIMEDRDLOCK@ +HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK = @HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK@ +HAVE_PTHREAD_RWLOCK_TRYRDLOCK = @HAVE_PTHREAD_RWLOCK_TRYRDLOCK@ +HAVE_PTHREAD_RWLOCK_TRYWRLOCK = @HAVE_PTHREAD_RWLOCK_TRYWRLOCK@ +HAVE_PTHREAD_RWLOCK_UNLOCK = @HAVE_PTHREAD_RWLOCK_UNLOCK@ +HAVE_PTHREAD_RWLOCK_WRLOCK = @HAVE_PTHREAD_RWLOCK_WRLOCK@ +HAVE_PTHREAD_SELF = @HAVE_PTHREAD_SELF@ +HAVE_PTHREAD_SETSPECIFIC = @HAVE_PTHREAD_SETSPECIFIC@ +HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@ +HAVE_PTHREAD_SPINLOCK_T = @HAVE_PTHREAD_SPINLOCK_T@ +HAVE_PTHREAD_SPIN_DESTROY = @HAVE_PTHREAD_SPIN_DESTROY@ +HAVE_PTHREAD_SPIN_INIT = @HAVE_PTHREAD_SPIN_INIT@ +HAVE_PTHREAD_SPIN_LOCK = @HAVE_PTHREAD_SPIN_LOCK@ +HAVE_PTHREAD_SPIN_TRYLOCK = @HAVE_PTHREAD_SPIN_TRYLOCK@ +HAVE_PTHREAD_SPIN_UNLOCK = @HAVE_PTHREAD_SPIN_UNLOCK@ +HAVE_PTHREAD_T = @HAVE_PTHREAD_T@ +HAVE_PTSNAME = @HAVE_PTSNAME@ +HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ +HAVE_PWRITE = @HAVE_PWRITE@ +HAVE_QSORT_R = @HAVE_QSORT_R@ +HAVE_RAISE = @HAVE_RAISE@ +HAVE_RANDOM = @HAVE_RANDOM@ +HAVE_RANDOM_H = @HAVE_RANDOM_H@ +HAVE_RANDOM_R = @HAVE_RANDOM_R@ +HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ +HAVE_READLINK = @HAVE_READLINK@ +HAVE_READLINKAT = @HAVE_READLINKAT@ +HAVE_REALLOCARRAY = @HAVE_REALLOCARRAY@ +HAVE_REALPATH = @HAVE_REALPATH@ +HAVE_RENAMEAT = @HAVE_RENAMEAT@ +HAVE_RPMATCH = @HAVE_RPMATCH@ +HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@ +HAVE_SCHED_H = @HAVE_SCHED_H@ +HAVE_SCHED_YIELD = @HAVE_SCHED_YIELD@ +HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ +HAVE_SETENV = @HAVE_SETENV@ +HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ +HAVE_SETSTATE = @HAVE_SETSTATE@ +HAVE_SIGABBREV_NP = @HAVE_SIGABBREV_NP@ +HAVE_SIGACTION = @HAVE_SIGACTION@ +HAVE_SIGDESCR_NP = @HAVE_SIGDESCR_NP@ +HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@ +HAVE_SIGINFO_T = @HAVE_SIGINFO_T@ +HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ +HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ +HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ +HAVE_SIGSET_T = @HAVE_SIGSET_T@ +HAVE_SLEEP = @HAVE_SLEEP@ +HAVE_STDINT_H = @HAVE_STDINT_H@ +HAVE_STPCPY = @HAVE_STPCPY@ +HAVE_STPNCPY = @HAVE_STPNCPY@ +HAVE_STRCASESTR = @HAVE_STRCASESTR@ +HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ +HAVE_STRERRORNAME_NP = @HAVE_STRERRORNAME_NP@ +HAVE_STRPBRK = @HAVE_STRPBRK@ +HAVE_STRPTIME = @HAVE_STRPTIME@ +HAVE_STRSEP = @HAVE_STRSEP@ +HAVE_STRTOD = @HAVE_STRTOD@ +HAVE_STRTOL = @HAVE_STRTOL@ +HAVE_STRTOLD = @HAVE_STRTOLD@ +HAVE_STRTOLL = @HAVE_STRTOLL@ +HAVE_STRTOUL = @HAVE_STRTOUL@ +HAVE_STRTOULL = @HAVE_STRTOULL@ +HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ +HAVE_STRUCT_SCHED_PARAM = @HAVE_STRUCT_SCHED_PARAM@ +HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@ +HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@ +HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@ +HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@ +HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ +HAVE_SYMLINK = @HAVE_SYMLINK@ +HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ +HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ +HAVE_SYS_CDEFS_H = @HAVE_SYS_CDEFS_H@ +HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ +HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@ +HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ +HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ +HAVE_SYS_RANDOM_H = @HAVE_SYS_RANDOM_H@ +HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@ +HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@ +HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ +HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ +HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@ +HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_TIMESPEC_GET = @HAVE_TIMESPEC_GET@ +HAVE_TIMESPEC_GETRES = @HAVE_TIMESPEC_GETRES@ +HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ +HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ +HAVE_UNISTD_H = @HAVE_UNISTD_H@ +HAVE_UNLINKAT = @HAVE_UNLINKAT@ +HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ +HAVE_USLEEP = @HAVE_USLEEP@ +HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ +HAVE_VASPRINTF = @HAVE_VASPRINTF@ +HAVE_VDPRINTF = @HAVE_VDPRINTF@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +HAVE_WCHAR_H = @HAVE_WCHAR_H@ +HAVE_WCHAR_T = @HAVE_WCHAR_T@ +HAVE_WCPCPY = @HAVE_WCPCPY@ +HAVE_WCPNCPY = @HAVE_WCPNCPY@ +HAVE_WCRTOMB = @HAVE_WCRTOMB@ +HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ +HAVE_WCSCAT = @HAVE_WCSCAT@ +HAVE_WCSCHR = @HAVE_WCSCHR@ +HAVE_WCSCMP = @HAVE_WCSCMP@ +HAVE_WCSCOLL = @HAVE_WCSCOLL@ +HAVE_WCSCPY = @HAVE_WCSCPY@ +HAVE_WCSCSPN = @HAVE_WCSCSPN@ +HAVE_WCSDUP = @HAVE_WCSDUP@ +HAVE_WCSFTIME = @HAVE_WCSFTIME@ +HAVE_WCSLEN = @HAVE_WCSLEN@ +HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ +HAVE_WCSNCAT = @HAVE_WCSNCAT@ +HAVE_WCSNCMP = @HAVE_WCSNCMP@ +HAVE_WCSNCPY = @HAVE_WCSNCPY@ +HAVE_WCSNLEN = @HAVE_WCSNLEN@ +HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ +HAVE_WCSPBRK = @HAVE_WCSPBRK@ +HAVE_WCSRCHR = @HAVE_WCSRCHR@ +HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ +HAVE_WCSSPN = @HAVE_WCSSPN@ +HAVE_WCSSTR = @HAVE_WCSSTR@ +HAVE_WCSTOK = @HAVE_WCSTOK@ +HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ +HAVE_WCSXFRM = @HAVE_WCSXFRM@ +HAVE_WCTRANS_T = @HAVE_WCTRANS_T@ +HAVE_WCTYPE_H = @HAVE_WCTYPE_H@ +HAVE_WCTYPE_T = @HAVE_WCTYPE_T@ +HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ +HAVE_WINT_T = @HAVE_WINT_T@ +HAVE_WMEMCHR = @HAVE_WMEMCHR@ +HAVE_WMEMCMP = @HAVE_WMEMCMP@ +HAVE_WMEMCPY = @HAVE_WMEMCPY@ +HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ +HAVE_WMEMPCPY = @HAVE_WMEMPCPY@ +HAVE_WMEMSET = @HAVE_WMEMSET@ +HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@ +HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ +HAVE__EXIT = @HAVE__EXIT@ +IGNORE_UNUSED_LIBRARIES_CFLAGS = @IGNORE_UNUSED_LIBRARIES_CFLAGS@ +INCLUDE_NEXT = @INCLUDE_NEXT@ +INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ +INET_PTON_LIB = @INET_PTON_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ +INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ +INTLINCS = @INTLINCS@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBMULTITHREAD = @LIBMULTITHREAD@ +LIBOBJS = @LIBOBJS@ +LIBPMULTITHREAD = @LIBPMULTITHREAD@ +LIBPTHREAD = @LIBPTHREAD@ +LIBS = @LIBS@ +LIBSOCKET = @LIBSOCKET@ +LIBSTDTHREAD = @LIBSTDTHREAD@ +LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ +LIBTHREAD = @LIBTHREAD@ +LIBTOOL = @LIBTOOL@ +LIB_BLKID = @LIB_BLKID@ +LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ +LIB_GETRANDOM = @LIB_GETRANDOM@ +LIB_HARD_LOCALE = @LIB_HARD_LOCALE@ +LIB_MBRTOWC = @LIB_MBRTOWC@ +LIB_NANOSLEEP = @LIB_NANOSLEEP@ +LIB_NL_LANGINFO = @LIB_NL_LANGINFO@ +LIB_PTHREAD = @LIB_PTHREAD@ +LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@ +LIB_SCHED_YIELD = @LIB_SCHED_YIELD@ +LIB_SELECT = @LIB_SELECT@ +LIB_SEMAPHORE = @LIB_SEMAPHORE@ +LIB_SETLOCALE = @LIB_SETLOCALE@ +LIB_SETLOCALE_NULL = @LIB_SETLOCALE_NULL@ +LIMITS_H = @LIMITS_H@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@ +LOCALENAME_ENHANCE_LOCALE_FUNCS = @LOCALENAME_ENHANCE_LOCALE_FUNCS@ +LOCALE_FR = @LOCALE_FR@ +LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ +LOCALE_JA = @LOCALE_JA@ +LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ +LOCALE_ZH_CN = @LOCALE_ZH_CN@ +LTALLOCA = @LTALLOCA@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ +LTLIBOBJS = @LTLIBOBJS@ +LTLIBTHREAD = @LTLIBTHREAD@ +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_RELEASE = @LT_RELEASE@ +LT_REVISION = @LT_REVISION@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MBRTOWC_LIB = @MBRTOWC_LIB@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NANOSLEEP_LIB = @NANOSLEEP_LIB@ +NETINET_IN_H = @NETINET_IN_H@ +NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@ +NEXT_ASSERT_H = @NEXT_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H@ +NEXT_AS_FIRST_DIRECTIVE_ASSERT_H = @NEXT_AS_FIRST_DIRECTIVE_ASSERT_H@ +NEXT_AS_FIRST_DIRECTIVE_CTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_CTYPE_H@ +NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ +NEXT_AS_FIRST_DIRECTIVE_ERROR_H = @NEXT_AS_FIRST_DIRECTIVE_ERROR_H@ +NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ +NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@ +NEXT_AS_FIRST_DIRECTIVE_LIMITS_H = @NEXT_AS_FIRST_DIRECTIVE_LIMITS_H@ +NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ +NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@ +NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H = @NEXT_AS_FIRST_DIRECTIVE_PTHREAD_H@ +NEXT_AS_FIRST_DIRECTIVE_SCHED_H = @NEXT_AS_FIRST_DIRECTIVE_SCHED_H@ +NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@ +NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ +NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ +NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ +NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ +NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_RANDOM_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ +NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@ +NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ +NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ +NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@ +NEXT_CTYPE_H = @NEXT_CTYPE_H@ +NEXT_ERRNO_H = @NEXT_ERRNO_H@ +NEXT_ERROR_H = @NEXT_ERROR_H@ +NEXT_FCNTL_H = @NEXT_FCNTL_H@ +NEXT_GETOPT_H = @NEXT_GETOPT_H@ +NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ +NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ +NEXT_LIMITS_H = @NEXT_LIMITS_H@ +NEXT_LOCALE_H = @NEXT_LOCALE_H@ +NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@ +NEXT_PTHREAD_H = @NEXT_PTHREAD_H@ +NEXT_SCHED_H = @NEXT_SCHED_H@ +NEXT_SIGNAL_H = @NEXT_SIGNAL_H@ +NEXT_STDARG_H = @NEXT_STDARG_H@ +NEXT_STDDEF_H = @NEXT_STDDEF_H@ +NEXT_STDINT_H = @NEXT_STDINT_H@ +NEXT_STDIO_H = @NEXT_STDIO_H@ +NEXT_STDLIB_H = @NEXT_STDLIB_H@ +NEXT_STRING_H = @NEXT_STRING_H@ +NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@ +NEXT_SYS_RANDOM_H = @NEXT_SYS_RANDOM_H@ +NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@ +NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@ +NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ +NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@ +NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ +NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@ +NEXT_TIME_H = @NEXT_TIME_H@ +NEXT_UNISTD_H = @NEXT_UNISTD_H@ +NEXT_WCHAR_H = @NEXT_WCHAR_H@ +NEXT_WCTYPE_H = @NEXT_WCTYPE_H@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OS = @OS@ +OS_LIBS = @OS_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PARTEDLDFLAGS = @PARTEDLDFLAGS@ +PARTED_LIBS = @PARTED_LIBS@ +PARTED_USABLE_TEST_DIR = @PARTED_USABLE_TEST_DIR@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ +PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ +PRIPTR_PREFIX = @PRIPTR_PREFIX@ +PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ +PTHREAD_SIGMASK_LIB = @PTHREAD_SIGMASK_LIB@ +PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ +RANLIB = @RANLIB@ +REPLACE_ACCESS = @REPLACE_ACCESS@ +REPLACE_ALIGNED_ALLOC = @REPLACE_ALIGNED_ALLOC@ +REPLACE_BTOWC = @REPLACE_BTOWC@ +REPLACE_CALLOC_FOR_CALLOC_GNU = @REPLACE_CALLOC_FOR_CALLOC_GNU@ +REPLACE_CALLOC_FOR_CALLOC_POSIX = @REPLACE_CALLOC_FOR_CALLOC_POSIX@ +REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ +REPLACE_CHMOD = @REPLACE_CHMOD@ +REPLACE_CHOWN = @REPLACE_CHOWN@ +REPLACE_CLOSE = @REPLACE_CLOSE@ +REPLACE_COPY_FILE_RANGE = @REPLACE_COPY_FILE_RANGE@ +REPLACE_CREAT = @REPLACE_CREAT@ +REPLACE_CTIME = @REPLACE_CTIME@ +REPLACE_DPRINTF = @REPLACE_DPRINTF@ +REPLACE_DUP = @REPLACE_DUP@ +REPLACE_DUP2 = @REPLACE_DUP2@ +REPLACE_DUP3 = @REPLACE_DUP3@ +REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ +REPLACE_ERROR = @REPLACE_ERROR@ +REPLACE_ERROR_AT_LINE = @REPLACE_ERROR_AT_LINE@ +REPLACE_EXECL = @REPLACE_EXECL@ +REPLACE_EXECLE = @REPLACE_EXECLE@ +REPLACE_EXECLP = @REPLACE_EXECLP@ +REPLACE_EXECV = @REPLACE_EXECV@ +REPLACE_EXECVE = @REPLACE_EXECVE@ +REPLACE_EXECVP = @REPLACE_EXECVP@ +REPLACE_EXECVPE = @REPLACE_EXECVPE@ +REPLACE_FACCESSAT = @REPLACE_FACCESSAT@ +REPLACE_FCHMODAT = @REPLACE_FCHMODAT@ +REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ +REPLACE_FCLOSE = @REPLACE_FCLOSE@ +REPLACE_FCNTL = @REPLACE_FCNTL@ +REPLACE_FDATASYNC = @REPLACE_FDATASYNC@ +REPLACE_FDOPEN = @REPLACE_FDOPEN@ +REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FFSLL = @REPLACE_FFSLL@ +REPLACE_FOPEN = @REPLACE_FOPEN@ +REPLACE_FOPEN_FOR_FOPEN_GNU = @REPLACE_FOPEN_FOR_FOPEN_GNU@ +REPLACE_FPRINTF = @REPLACE_FPRINTF@ +REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREE = @REPLACE_FREE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ +REPLACE_FREOPEN = @REPLACE_FREOPEN@ +REPLACE_FSEEK = @REPLACE_FSEEK@ +REPLACE_FSEEKO = @REPLACE_FSEEKO@ +REPLACE_FSTAT = @REPLACE_FSTAT@ +REPLACE_FSTATAT = @REPLACE_FSTATAT@ +REPLACE_FTELL = @REPLACE_FTELL@ +REPLACE_FTELLO = @REPLACE_FTELLO@ +REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ +REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ +REPLACE_GETCWD = @REPLACE_GETCWD@ +REPLACE_GETDELIM = @REPLACE_GETDELIM@ +REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ +REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@ +REPLACE_GETENTROPY = @REPLACE_GETENTROPY@ +REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ +REPLACE_GETLINE = @REPLACE_GETLINE@ +REPLACE_GETLOADAVG = @REPLACE_GETLOADAVG@ +REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ +REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ +REPLACE_GETPASS_FOR_GETPASS_GNU = @REPLACE_GETPASS_FOR_GETPASS_GNU@ +REPLACE_GETPROGNAME = @REPLACE_GETPROGNAME@ +REPLACE_GETRANDOM = @REPLACE_GETRANDOM@ +REPLACE_GETSUBOPT = @REPLACE_GETSUBOPT@ +REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ +REPLACE_GMTIME = @REPLACE_GMTIME@ +REPLACE_IMAXABS = @REPLACE_IMAXABS@ +REPLACE_IMAXDIV = @REPLACE_IMAXDIV@ +REPLACE_INET_NTOP = @REPLACE_INET_NTOP@ +REPLACE_INET_PTON = @REPLACE_INET_PTON@ +REPLACE_INITSTATE = @REPLACE_INITSTATE@ +REPLACE_IOCTL = @REPLACE_IOCTL@ +REPLACE_ISATTY = @REPLACE_ISATTY@ +REPLACE_ISWBLANK = @REPLACE_ISWBLANK@ +REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@ +REPLACE_ISWDIGIT = @REPLACE_ISWDIGIT@ +REPLACE_ISWXDIGIT = @REPLACE_ISWXDIGIT@ +REPLACE_LCHOWN = @REPLACE_LCHOWN@ +REPLACE_LINK = @REPLACE_LINK@ +REPLACE_LINKAT = @REPLACE_LINKAT@ +REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ +REPLACE_LOCALTIME = @REPLACE_LOCALTIME@ +REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ +REPLACE_LSEEK = @REPLACE_LSEEK@ +REPLACE_LSTAT = @REPLACE_LSTAT@ +REPLACE_MALLOC_FOR_MALLOC_GNU = @REPLACE_MALLOC_FOR_MALLOC_GNU@ +REPLACE_MALLOC_FOR_MALLOC_POSIX = @REPLACE_MALLOC_FOR_MALLOC_POSIX@ +REPLACE_MBRLEN = @REPLACE_MBRLEN@ +REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ +REPLACE_MBSINIT = @REPLACE_MBSINIT@ +REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ +REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ +REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ +REPLACE_MBTOWC = @REPLACE_MBTOWC@ +REPLACE_MEMCHR = @REPLACE_MEMCHR@ +REPLACE_MEMMEM = @REPLACE_MEMMEM@ +REPLACE_MEMPCPY = @REPLACE_MEMPCPY@ +REPLACE_MKDIR = @REPLACE_MKDIR@ +REPLACE_MKFIFO = @REPLACE_MKFIFO@ +REPLACE_MKFIFOAT = @REPLACE_MKFIFOAT@ +REPLACE_MKNOD = @REPLACE_MKNOD@ +REPLACE_MKNODAT = @REPLACE_MKNODAT@ +REPLACE_MKOSTEMP = @REPLACE_MKOSTEMP@ +REPLACE_MKOSTEMPS = @REPLACE_MKOSTEMPS@ +REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ +REPLACE_MKTIME = @REPLACE_MKTIME@ +REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ +REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ +REPLACE_NULL = @REPLACE_NULL@ +REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ +REPLACE_OPEN = @REPLACE_OPEN@ +REPLACE_OPENAT = @REPLACE_OPENAT@ +REPLACE_PERROR = @REPLACE_PERROR@ +REPLACE_PIPE2 = @REPLACE_PIPE2@ +REPLACE_POPEN = @REPLACE_POPEN@ +REPLACE_POSIX_MEMALIGN = @REPLACE_POSIX_MEMALIGN@ +REPLACE_POSIX_OPENPT = @REPLACE_POSIX_OPENPT@ +REPLACE_PREAD = @REPLACE_PREAD@ +REPLACE_PRINTF = @REPLACE_PRINTF@ +REPLACE_PSELECT = @REPLACE_PSELECT@ +REPLACE_PTHREAD_ATTR_DESTROY = @REPLACE_PTHREAD_ATTR_DESTROY@ +REPLACE_PTHREAD_ATTR_GETDETACHSTATE = @REPLACE_PTHREAD_ATTR_GETDETACHSTATE@ +REPLACE_PTHREAD_ATTR_INIT = @REPLACE_PTHREAD_ATTR_INIT@ +REPLACE_PTHREAD_ATTR_SETDETACHSTATE = @REPLACE_PTHREAD_ATTR_SETDETACHSTATE@ +REPLACE_PTHREAD_CONDATTR_DESTROY = @REPLACE_PTHREAD_CONDATTR_DESTROY@ +REPLACE_PTHREAD_CONDATTR_INIT = @REPLACE_PTHREAD_CONDATTR_INIT@ +REPLACE_PTHREAD_COND_BROADCAST = @REPLACE_PTHREAD_COND_BROADCAST@ +REPLACE_PTHREAD_COND_DESTROY = @REPLACE_PTHREAD_COND_DESTROY@ +REPLACE_PTHREAD_COND_INIT = @REPLACE_PTHREAD_COND_INIT@ +REPLACE_PTHREAD_COND_SIGNAL = @REPLACE_PTHREAD_COND_SIGNAL@ +REPLACE_PTHREAD_COND_TIMEDWAIT = @REPLACE_PTHREAD_COND_TIMEDWAIT@ +REPLACE_PTHREAD_COND_WAIT = @REPLACE_PTHREAD_COND_WAIT@ +REPLACE_PTHREAD_CREATE = @REPLACE_PTHREAD_CREATE@ +REPLACE_PTHREAD_DETACH = @REPLACE_PTHREAD_DETACH@ +REPLACE_PTHREAD_EQUAL = @REPLACE_PTHREAD_EQUAL@ +REPLACE_PTHREAD_EXIT = @REPLACE_PTHREAD_EXIT@ +REPLACE_PTHREAD_GETSPECIFIC = @REPLACE_PTHREAD_GETSPECIFIC@ +REPLACE_PTHREAD_JOIN = @REPLACE_PTHREAD_JOIN@ +REPLACE_PTHREAD_KEY_CREATE = @REPLACE_PTHREAD_KEY_CREATE@ +REPLACE_PTHREAD_KEY_DELETE = @REPLACE_PTHREAD_KEY_DELETE@ +REPLACE_PTHREAD_MUTEXATTR_DESTROY = @REPLACE_PTHREAD_MUTEXATTR_DESTROY@ +REPLACE_PTHREAD_MUTEXATTR_GETROBUST = @REPLACE_PTHREAD_MUTEXATTR_GETROBUST@ +REPLACE_PTHREAD_MUTEXATTR_GETTYPE = @REPLACE_PTHREAD_MUTEXATTR_GETTYPE@ +REPLACE_PTHREAD_MUTEXATTR_INIT = @REPLACE_PTHREAD_MUTEXATTR_INIT@ +REPLACE_PTHREAD_MUTEXATTR_SETROBUST = @REPLACE_PTHREAD_MUTEXATTR_SETROBUST@ +REPLACE_PTHREAD_MUTEXATTR_SETTYPE = @REPLACE_PTHREAD_MUTEXATTR_SETTYPE@ +REPLACE_PTHREAD_MUTEX_DESTROY = @REPLACE_PTHREAD_MUTEX_DESTROY@ +REPLACE_PTHREAD_MUTEX_INIT = @REPLACE_PTHREAD_MUTEX_INIT@ +REPLACE_PTHREAD_MUTEX_LOCK = @REPLACE_PTHREAD_MUTEX_LOCK@ +REPLACE_PTHREAD_MUTEX_TIMEDLOCK = @REPLACE_PTHREAD_MUTEX_TIMEDLOCK@ +REPLACE_PTHREAD_MUTEX_TRYLOCK = @REPLACE_PTHREAD_MUTEX_TRYLOCK@ +REPLACE_PTHREAD_MUTEX_UNLOCK = @REPLACE_PTHREAD_MUTEX_UNLOCK@ +REPLACE_PTHREAD_ONCE = @REPLACE_PTHREAD_ONCE@ +REPLACE_PTHREAD_RWLOCKATTR_DESTROY = @REPLACE_PTHREAD_RWLOCKATTR_DESTROY@ +REPLACE_PTHREAD_RWLOCKATTR_INIT = @REPLACE_PTHREAD_RWLOCKATTR_INIT@ +REPLACE_PTHREAD_RWLOCK_DESTROY = @REPLACE_PTHREAD_RWLOCK_DESTROY@ +REPLACE_PTHREAD_RWLOCK_INIT = @REPLACE_PTHREAD_RWLOCK_INIT@ +REPLACE_PTHREAD_RWLOCK_RDLOCK = @REPLACE_PTHREAD_RWLOCK_RDLOCK@ +REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK = @REPLACE_PTHREAD_RWLOCK_TIMEDRDLOCK@ +REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK = @REPLACE_PTHREAD_RWLOCK_TIMEDWRLOCK@ +REPLACE_PTHREAD_RWLOCK_TRYRDLOCK = @REPLACE_PTHREAD_RWLOCK_TRYRDLOCK@ +REPLACE_PTHREAD_RWLOCK_TRYWRLOCK = @REPLACE_PTHREAD_RWLOCK_TRYWRLOCK@ +REPLACE_PTHREAD_RWLOCK_UNLOCK = @REPLACE_PTHREAD_RWLOCK_UNLOCK@ +REPLACE_PTHREAD_RWLOCK_WRLOCK = @REPLACE_PTHREAD_RWLOCK_WRLOCK@ +REPLACE_PTHREAD_SELF = @REPLACE_PTHREAD_SELF@ +REPLACE_PTHREAD_SETSPECIFIC = @REPLACE_PTHREAD_SETSPECIFIC@ +REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@ +REPLACE_PTHREAD_SPIN_DESTROY = @REPLACE_PTHREAD_SPIN_DESTROY@ +REPLACE_PTHREAD_SPIN_INIT = @REPLACE_PTHREAD_SPIN_INIT@ +REPLACE_PTHREAD_SPIN_LOCK = @REPLACE_PTHREAD_SPIN_LOCK@ +REPLACE_PTHREAD_SPIN_TRYLOCK = @REPLACE_PTHREAD_SPIN_TRYLOCK@ +REPLACE_PTHREAD_SPIN_UNLOCK = @REPLACE_PTHREAD_SPIN_UNLOCK@ +REPLACE_PTSNAME = @REPLACE_PTSNAME@ +REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ +REPLACE_PUTENV = @REPLACE_PUTENV@ +REPLACE_PWRITE = @REPLACE_PWRITE@ +REPLACE_QSORT_R = @REPLACE_QSORT_R@ +REPLACE_RAISE = @REPLACE_RAISE@ +REPLACE_RANDOM = @REPLACE_RANDOM@ +REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ +REPLACE_READ = @REPLACE_READ@ +REPLACE_READLINK = @REPLACE_READLINK@ +REPLACE_READLINKAT = @REPLACE_READLINKAT@ +REPLACE_REALLOCARRAY = @REPLACE_REALLOCARRAY@ +REPLACE_REALLOC_FOR_REALLOC_GNU = @REPLACE_REALLOC_FOR_REALLOC_GNU@ +REPLACE_REALLOC_FOR_REALLOC_POSIX = @REPLACE_REALLOC_FOR_REALLOC_POSIX@ +REPLACE_REALPATH = @REPLACE_REALPATH@ +REPLACE_REMOVE = @REPLACE_REMOVE@ +REPLACE_RENAME = @REPLACE_RENAME@ +REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ +REPLACE_RMDIR = @REPLACE_RMDIR@ +REPLACE_SCHED_YIELD = @REPLACE_SCHED_YIELD@ +REPLACE_SELECT = @REPLACE_SELECT@ +REPLACE_SETENV = @REPLACE_SETENV@ +REPLACE_SETHOSTNAME = @REPLACE_SETHOSTNAME@ +REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ +REPLACE_SETSTATE = @REPLACE_SETSTATE@ +REPLACE_SLEEP = @REPLACE_SLEEP@ +REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ +REPLACE_SPRINTF = @REPLACE_SPRINTF@ +REPLACE_STAT = @REPLACE_STAT@ +REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ +REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ +REPLACE_STPCPY = @REPLACE_STPCPY@ +REPLACE_STPNCPY = @REPLACE_STPNCPY@ +REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ +REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ +REPLACE_STRDUP = @REPLACE_STRDUP@ +REPLACE_STRERROR = @REPLACE_STRERROR@ +REPLACE_STRERRORNAME_NP = @REPLACE_STRERRORNAME_NP@ +REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ +REPLACE_STRFTIME = @REPLACE_STRFTIME@ +REPLACE_STRNCAT = @REPLACE_STRNCAT@ +REPLACE_STRNDUP = @REPLACE_STRNDUP@ +REPLACE_STRNLEN = @REPLACE_STRNLEN@ +REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ +REPLACE_STRSTR = @REPLACE_STRSTR@ +REPLACE_STRTOD = @REPLACE_STRTOD@ +REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ +REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ +REPLACE_STRTOL = @REPLACE_STRTOL@ +REPLACE_STRTOLD = @REPLACE_STRTOLD@ +REPLACE_STRTOLL = @REPLACE_STRTOLL@ +REPLACE_STRTOUL = @REPLACE_STRTOUL@ +REPLACE_STRTOULL = @REPLACE_STRTOULL@ +REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@ +REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ +REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@ +REPLACE_SYMLINK = @REPLACE_SYMLINK@ +REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@ +REPLACE_TIME = @REPLACE_TIME@ +REPLACE_TIMEGM = @REPLACE_TIMEGM@ +REPLACE_TIMESPEC_GET = @REPLACE_TIMESPEC_GET@ +REPLACE_TMPFILE = @REPLACE_TMPFILE@ +REPLACE_TOWLOWER = @REPLACE_TOWLOWER@ +REPLACE_TRUNCATE = @REPLACE_TRUNCATE@ +REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ +REPLACE_TZSET = @REPLACE_TZSET@ +REPLACE_UNLINK = @REPLACE_UNLINK@ +REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ +REPLACE_UNSETENV = @REPLACE_UNSETENV@ +REPLACE_USLEEP = @REPLACE_USLEEP@ +REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ +REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ +REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ +REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ +REPLACE_VPRINTF = @REPLACE_VPRINTF@ +REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ +REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ +REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ +REPLACE_WCSFTIME = @REPLACE_WCSFTIME@ +REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ +REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ +REPLACE_WCSTOK = @REPLACE_WCSTOK@ +REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ +REPLACE_WCTOB = @REPLACE_WCTOB@ +REPLACE_WCTOMB = @REPLACE_WCTOMB@ +REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ +REPLACE_WMEMPCPY = @REPLACE_WMEMPCPY@ +REPLACE_WRITE = @REPLACE_WRITE@ +REPLACE__EXIT = @REPLACE__EXIT@ +SCHED_YIELD_LIB = @SCHED_YIELD_LIB@ +SED = @SED@ +SELECT_LIB = @SELECT_LIB@ +SETLOCALE_LIB = @SETLOCALE_LIB@ +SETLOCALE_NULL_LIB = @SETLOCALE_NULL_LIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ +SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ +STDARG_H = @STDARG_H@ +STDCKDINT_H = @STDCKDINT_H@ +STDDEF_H = @STDDEF_H@ +STDINT_H = @STDINT_H@ +STRIP = @STRIP@ +SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@ +SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ +TIME_H_DEFINES_TIME_UTC = @TIME_H_DEFINES_TIME_UTC@ +UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ +UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ +UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ +UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@ +UNISTD_H_HAVE_SYS_RANDOM_H = @UNISTD_H_HAVE_SYS_RANDOM_H@ +UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ +USE_NLS = @USE_NLS@ +UUID_LIBS = @UUID_LIBS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ +WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ +WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ +WINDOWS_STAT_INODES = @WINDOWS_STAT_INODES@ +WINDOWS_STAT_TIMESPEC = @WINDOWS_STAT_TIMESPEC@ +WINT_T_SUFFIX = @WINT_T_SUFFIX@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +YIELD_LIB = @YIELD_LIB@ +abs_aux_dir = @abs_aux_dir@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +bindir_c = @bindir_c@ +bindir_c_make = @bindir_c_make@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datadir_c = @datadir_c@ +datadir_c_make = @datadir_c_make@ +datarootdir = @datarootdir@ +datarootdir_c = @datarootdir_c@ +datarootdir_c_make = @datarootdir_c_make@ +docdir = @docdir@ +docdir_c = @docdir_c@ +docdir_c_make = @docdir_c_make@ +dvidir = @dvidir@ +dvidir_c = @dvidir_c@ +dvidir_c_make = @dvidir_c_make@ +exec_prefix = @exec_prefix@ +exec_prefix_c = @exec_prefix_c@ +exec_prefix_c_make = @exec_prefix_c_make@ +gl_LIBOBJDEPS = @gl_LIBOBJDEPS@ +gl_LIBOBJS = @gl_LIBOBJS@ +gl_LTLIBOBJS = @gl_LTLIBOBJS@ +gltests_LIBOBJDEPS = @gltests_LIBOBJDEPS@ +gltests_LIBOBJS = @gltests_LIBOBJS@ +gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ +gltests_WITNESS = @gltests_WITNESS@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +htmldir_c = @htmldir_c@ +htmldir_c_make = @htmldir_c_make@ +includedir = @includedir@ +includedir_c = @includedir_c@ +includedir_c_make = @includedir_c_make@ +infodir = @infodir@ +infodir_c = @infodir_c@ +infodir_c_make = @infodir_c_make@ +install_sh = @install_sh@ +libdir = @libdir@ +libdir_c = @libdir_c@ +libdir_c_make = @libdir_c_make@ +libexecdir = @libexecdir@ +libexecdir_c = @libexecdir_c@ +libexecdir_c_make = @libexecdir_c_make@ +lispdir = @lispdir@ +lispdir_c = @lispdir_c@ +lispdir_c_make = @lispdir_c_make@ +localedir = @localedir@ +localedir_c = @localedir_c@ +localedir_c_make = @localedir_c_make@ +localstatedir = @localstatedir@ +localstatedir_c = @localstatedir_c@ +localstatedir_c_make = @localstatedir_c_make@ +mandir = @mandir@ +mandir_c = @mandir_c@ +mandir_c_make = @mandir_c_make@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +oldincludedir_c = @oldincludedir_c@ +oldincludedir_c_make = @oldincludedir_c_make@ +pdfdir = @pdfdir@ +pdfdir_c = @pdfdir_c@ +pdfdir_c_make = @pdfdir_c_make@ +pkgdatadir_c = @pkgdatadir_c@ +pkgdatadir_c_make = @pkgdatadir_c_make@ +pkgincludedir_c = @pkgincludedir_c@ +pkgincludedir_c_make = @pkgincludedir_c_make@ +pkglibdir_c = @pkglibdir_c@ +pkglibdir_c_make = @pkglibdir_c_make@ +pkglibexecdir_c = @pkglibexecdir_c@ +pkglibexecdir_c_make = @pkglibexecdir_c_make@ +prefix = @prefix@ +prefix_c = @prefix_c@ +prefix_c_make = @prefix_c_make@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +psdir_c = @psdir_c@ +psdir_c_make = @psdir_c_make@ +runstatedir = @runstatedir@ +runstatedir_c = @runstatedir_c@ +runstatedir_c_make = @runstatedir_c_make@ +sbindir = @sbindir@ +sbindir_c = @sbindir_c@ +sbindir_c_make = @sbindir_c_make@ +sharedstatedir = @sharedstatedir@ +sharedstatedir_c = @sharedstatedir_c@ +sharedstatedir_c_make = @sharedstatedir_c_make@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +sysconfdir_c = @sysconfdir_c@ +sysconfdir_c_make = @sysconfdir_c_make@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@COMPILE_FOR_S390_FALSE@S390_HDRS = +@COMPILE_FOR_S390_TRUE@S390_HDRS = fdasd.h vtoc.h +partedincludedir = $(includedir)/parted +partedinclude_HEADERS = constraint.h \ + debug.h \ + device.h \ + disk.h \ + exception.h \ + filesys.h \ + geom.h \ + natmath.h \ + timer.h \ + unit.h \ + parted.h + +noinst_HEADERS = crc32.h \ + endian.h \ + $(S390_HDRS) + +BUILT_SOURCES = \ + $(partedinclude_HEADERS) \ + $(noinst_HEADERS) \ + fdasd.h \ + vtoc.h + +EXTRA_DIST = $(BUILT_SOURCES:%.h=%.in.h) + +# We use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE internally, +# but cannot use those in a published header, so replace each of those +# strings with its expansion. +# Technically, attribute const was introduced in gcc-2.95 and +# attribute pure in 2.96, but to keep it simple, we're testing +# for 2.96 or newer for both. +hash_if = \n\#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)\n +subst_const_attr = \ + s/ _GL_ATTRIBUTE_CONST\b/$(hash_if) __attribute ((__const__))\n\#endif\n/ + +subst_pure_attr = \ + s/ _GL_ATTRIBUTE_PURE\b/$(hash_if) __attribute ((__pure__))\n\#endif\n/ + +MAINTAINERCLEANFILES = $(BUILT_SOURCES) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/parted/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu include/parted/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-partedincludeHEADERS: $(partedinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(partedinclude_HEADERS)'; test -n "$(partedincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(partedincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(partedincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(partedincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(partedincludedir)" || exit $$?; \ + done + +uninstall-partedincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(partedinclude_HEADERS)'; test -n "$(partedincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(partedincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(partedincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-partedincludeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-partedincludeHEADERS + +.MAKE: all check install install-am install-exec install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man \ + install-partedincludeHEADERS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-partedincludeHEADERS + +.PRECIOUS: Makefile + + +$(BUILT_SOURCES): Makefile.am + +%.h: %.in.h + $(AM_V_GEN)rm -f $@ $@-t + $(AM_V_at)perl -p \ + -e '$(subst_const_attr);' \ + -e '$(subst_pure_attr);' \ + $< > $@-t + $(AM_V_at)chmod a=r $@-t + $(AM_V_at)mv $@-t $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/include/parted/constraint.h b/include/parted/constraint.h new file mode 100644 index 0000000..cfb411c --- /dev/null +++ b/include/parted/constraint.h @@ -0,0 +1,101 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PED_CONSTRAINT_H_INCLUDED +#define PED_CONSTRAINT_H_INCLUDED + +typedef struct _PedConstraint PedConstraint; + +#include <parted/device.h> +#include <parted/geom.h> +#include <parted/natmath.h> + +struct _PedConstraint { + PedAlignment* start_align; + PedAlignment* end_align; + PedGeometry* start_range; + PedGeometry* end_range; + PedSector min_size; + PedSector max_size; +}; + +extern int +ped_constraint_init ( + PedConstraint* constraint, + const PedAlignment* start_align, + const PedAlignment* end_align, + const PedGeometry* start_range, + const PedGeometry* end_range, + PedSector min_size, + PedSector max_size); + +extern PedConstraint* +ped_constraint_new ( + const PedAlignment* start_align, + const PedAlignment* end_align, + const PedGeometry* start_range, + const PedGeometry* end_range, + PedSector min_size, + PedSector max_size); + +extern PedConstraint* +ped_constraint_new_from_min_max ( + const PedGeometry* min, + const PedGeometry* max); + +extern PedConstraint* +ped_constraint_new_from_min (const PedGeometry* min); + +extern PedConstraint* +ped_constraint_new_from_max (const PedGeometry* max); + +extern PedConstraint* +ped_constraint_duplicate (const PedConstraint* constraint); + +extern void +ped_constraint_done (PedConstraint* constraint); + +extern void +ped_constraint_destroy (PedConstraint* constraint); + +extern PedConstraint* +ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b); + +extern PedGeometry* +ped_constraint_solve_max (const PedConstraint* constraint); + +extern PedGeometry* +ped_constraint_solve_nearest ( + const PedConstraint* constraint, const PedGeometry* geom); + +extern int +ped_constraint_is_solution (const PedConstraint* constraint, + const PedGeometry* geom) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedConstraint* +ped_constraint_any (const PedDevice* dev); + +extern PedConstraint* +ped_constraint_exact (const PedGeometry* geom); + +#endif /* PED_CONSTRAINT_H_INCLUDED */ diff --git a/include/parted/constraint.in.h b/include/parted/constraint.in.h new file mode 100644 index 0000000..1fb0079 --- /dev/null +++ b/include/parted/constraint.in.h @@ -0,0 +1,97 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PED_CONSTRAINT_H_INCLUDED +#define PED_CONSTRAINT_H_INCLUDED + +typedef struct _PedConstraint PedConstraint; + +#include <parted/device.h> +#include <parted/geom.h> +#include <parted/natmath.h> + +struct _PedConstraint { + PedAlignment* start_align; + PedAlignment* end_align; + PedGeometry* start_range; + PedGeometry* end_range; + PedSector min_size; + PedSector max_size; +}; + +extern int +ped_constraint_init ( + PedConstraint* constraint, + const PedAlignment* start_align, + const PedAlignment* end_align, + const PedGeometry* start_range, + const PedGeometry* end_range, + PedSector min_size, + PedSector max_size); + +extern PedConstraint* +ped_constraint_new ( + const PedAlignment* start_align, + const PedAlignment* end_align, + const PedGeometry* start_range, + const PedGeometry* end_range, + PedSector min_size, + PedSector max_size); + +extern PedConstraint* +ped_constraint_new_from_min_max ( + const PedGeometry* min, + const PedGeometry* max); + +extern PedConstraint* +ped_constraint_new_from_min (const PedGeometry* min); + +extern PedConstraint* +ped_constraint_new_from_max (const PedGeometry* max); + +extern PedConstraint* +ped_constraint_duplicate (const PedConstraint* constraint); + +extern void +ped_constraint_done (PedConstraint* constraint); + +extern void +ped_constraint_destroy (PedConstraint* constraint); + +extern PedConstraint* +ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b); + +extern PedGeometry* +ped_constraint_solve_max (const PedConstraint* constraint); + +extern PedGeometry* +ped_constraint_solve_nearest ( + const PedConstraint* constraint, const PedGeometry* geom); + +extern int +ped_constraint_is_solution (const PedConstraint* constraint, + const PedGeometry* geom) _GL_ATTRIBUTE_PURE; + +extern PedConstraint* +ped_constraint_any (const PedDevice* dev); + +extern PedConstraint* +ped_constraint_exact (const PedGeometry* geom); + +#endif /* PED_CONSTRAINT_H_INCLUDED */ diff --git a/include/parted/crc32.h b/include/parted/crc32.h new file mode 100644 index 0000000..8c06b25 --- /dev/null +++ b/include/parted/crc32.h @@ -0,0 +1,39 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + crc32.h + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _CRC32_H +#define _CRC32_H + +#include <stdint.h> + +/* + * This computes a 32 bit CRC of the data in the buffer, and returns the CRC. + * The polynomial used is 0xedb88320. + */ + +extern uint32_t __efi_crc32 (const void *buf, unsigned long len, + uint32_t seed) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +#endif /* _CRC32_H */ diff --git a/include/parted/crc32.in.h b/include/parted/crc32.in.h new file mode 100644 index 0000000..459db5d --- /dev/null +++ b/include/parted/crc32.in.h @@ -0,0 +1,35 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + crc32.h + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _CRC32_H +#define _CRC32_H + +#include <stdint.h> + +/* + * This computes a 32 bit CRC of the data in the buffer, and returns the CRC. + * The polynomial used is 0xedb88320. + */ + +extern uint32_t __efi_crc32 (const void *buf, unsigned long len, + uint32_t seed) _GL_ATTRIBUTE_PURE; + +#endif /* _CRC32_H */ diff --git a/include/parted/debug.h b/include/parted/debug.h new file mode 100644 index 0000000..97cd000 --- /dev/null +++ b/include/parted/debug.h @@ -0,0 +1,88 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PED_DEBUG_H_INCLUDED +#define PED_DEBUG_H_INCLUDED + +#include <stdarg.h> + +#ifdef DEBUG + +typedef void (PedDebugHandler) ( const int level, const char* file, int line, + const char* function, const char* msg ); + +extern void ped_debug_set_handler (PedDebugHandler* handler); +extern void ped_debug ( const int level, const char* file, int line, + const char* function, const char* msg, ... ); + +extern void __attribute__((__noreturn__)) +ped_assert ( const char* cond_text, + const char* file, int line, const char* function ); + +#if defined __GNUC__ && !defined __JSFTRACE__ + +#define PED_DEBUG(level, ...) \ + ped_debug ( level, __FILE__, __LINE__, __PRETTY_FUNCTION__, \ + __VA_ARGS__ ) + +#define PED_ASSERT(cond) \ + do { \ + if (!(cond)) { \ + ped_assert ( \ + #cond, \ + __FILE__, \ + __LINE__, \ + __PRETTY_FUNCTION__ ); \ + } \ + } while (0) + +#else /* !__GNUC__ */ + +/* function because variadic macros are C99 */ +static void PED_DEBUG (int level, ...) +{ + va_list va_args; + + va_start (va_args, level); + ped_debug ( level, "unknown file", 0, "unknown function", va_args ); + va_end (va_args); +} + +#define PED_ASSERT(cond) \ + do { \ + if (!(cond)) { \ + ped_assert ( \ + #cond, \ + "unknown", \ + 0, \ + "unknown"); \ + } \ + } while (0) + +#endif /* __GNUC__ */ + +#else /* !DEBUG */ + +#define PED_ASSERT(cond) do {} while (0) +#define PED_DEBUG(level, ...) do {} while (0) + + +#endif /* DEBUG */ + +#endif /* PED_DEBUG_H_INCLUDED */ diff --git a/include/parted/debug.in.h b/include/parted/debug.in.h new file mode 100644 index 0000000..97cd000 --- /dev/null +++ b/include/parted/debug.in.h @@ -0,0 +1,88 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2000, 2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PED_DEBUG_H_INCLUDED +#define PED_DEBUG_H_INCLUDED + +#include <stdarg.h> + +#ifdef DEBUG + +typedef void (PedDebugHandler) ( const int level, const char* file, int line, + const char* function, const char* msg ); + +extern void ped_debug_set_handler (PedDebugHandler* handler); +extern void ped_debug ( const int level, const char* file, int line, + const char* function, const char* msg, ... ); + +extern void __attribute__((__noreturn__)) +ped_assert ( const char* cond_text, + const char* file, int line, const char* function ); + +#if defined __GNUC__ && !defined __JSFTRACE__ + +#define PED_DEBUG(level, ...) \ + ped_debug ( level, __FILE__, __LINE__, __PRETTY_FUNCTION__, \ + __VA_ARGS__ ) + +#define PED_ASSERT(cond) \ + do { \ + if (!(cond)) { \ + ped_assert ( \ + #cond, \ + __FILE__, \ + __LINE__, \ + __PRETTY_FUNCTION__ ); \ + } \ + } while (0) + +#else /* !__GNUC__ */ + +/* function because variadic macros are C99 */ +static void PED_DEBUG (int level, ...) +{ + va_list va_args; + + va_start (va_args, level); + ped_debug ( level, "unknown file", 0, "unknown function", va_args ); + va_end (va_args); +} + +#define PED_ASSERT(cond) \ + do { \ + if (!(cond)) { \ + ped_assert ( \ + #cond, \ + "unknown", \ + 0, \ + "unknown"); \ + } \ + } while (0) + +#endif /* __GNUC__ */ + +#else /* !DEBUG */ + +#define PED_ASSERT(cond) do {} while (0) +#define PED_DEBUG(level, ...) do {} while (0) + + +#endif /* DEBUG */ + +#endif /* PED_DEBUG_H_INCLUDED */ diff --git a/include/parted/device.h b/include/parted/device.h new file mode 100644 index 0000000..49a4fd2 --- /dev/null +++ b/include/parted/device.h @@ -0,0 +1,172 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2001, 2005, 2007-2008, 2011-2014, 2019-2023 Free + Software Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedDevice + * @{ + */ + +/** \file device.h */ + +#ifndef PED_DEVICE_H_INCLUDED +#define PED_DEVICE_H_INCLUDED + +/** We can address 2^63 sectors */ +typedef long long PedSector; + +typedef enum { + PED_DEVICE_UNKNOWN = 0, + PED_DEVICE_SCSI = 1, + PED_DEVICE_IDE = 2, + PED_DEVICE_DAC960 = 3, + PED_DEVICE_CPQARRAY = 4, + PED_DEVICE_FILE = 5, + PED_DEVICE_ATARAID = 6, + PED_DEVICE_I2O = 7, + PED_DEVICE_UBD = 8, + PED_DEVICE_DASD = 9, + PED_DEVICE_VIODASD = 10, + PED_DEVICE_SX8 = 11, + PED_DEVICE_DM = 12, + PED_DEVICE_XVD = 13, + PED_DEVICE_SDMMC = 14, + PED_DEVICE_VIRTBLK = 15, + PED_DEVICE_AOE = 16, + PED_DEVICE_MD = 17, + PED_DEVICE_LOOP = 18, + PED_DEVICE_NVME = 19, + PED_DEVICE_RAM = 20, + PED_DEVICE_PMEM = 21 +} PedDeviceType; + +typedef struct _PedDevice PedDevice; +typedef struct _PedDeviceArchOps PedDeviceArchOps; +typedef struct _PedCHSGeometry PedCHSGeometry; + +/** + * A cylinder-head-sector "old-style" geometry. + * + * A device addressed in this way has C*H*S sectors. + */ +struct _PedCHSGeometry { + int cylinders; + int heads; + int sectors; +}; + +/** A block device - for example, /dev/hda, not /dev/hda3 */ +struct _PedDevice { + PedDevice* next; + + char* model; /**< \brief description of hardware + (manufacturer, model) */ + char* path; /**< device /dev entry */ + + PedDeviceType type; /**< SCSI, IDE, etc. \sa PedDeviceType */ + long long sector_size; /**< logical sector size */ + long long phys_sector_size; /**< physical sector size */ + PedSector length; /**< device length (LBA) */ + + int open_count; /**< the number of times this device has + been opened with ped_device_open(). */ + int read_only; + int external_mode; + int dirty; + int boot_dirty; + + PedCHSGeometry hw_geom; + PedCHSGeometry bios_geom; + short host, did; + + void* arch_specific; +}; + +#include <parted/natmath.h> + +/** + * List of functions implementing architecture-specific operations. + */ +struct _PedDeviceArchOps { + PedDevice* (*_new) (const char* path); + void (*destroy) (PedDevice* dev); + int (*is_busy) (PedDevice* dev); + int (*open) (PedDevice* dev); + int (*refresh_open) (PedDevice* dev); + int (*close) (PedDevice* dev); + int (*refresh_close) (PedDevice* dev); + int (*read) (const PedDevice* dev, void* buffer, + PedSector start, PedSector count); + int (*write) (PedDevice* dev, const void* buffer, + PedSector start, PedSector count); + int (*sync) (PedDevice* dev); + int (*sync_fast) (PedDevice* dev); + PedSector (*check) (PedDevice* dev, void* buffer, + PedSector start, PedSector count); + void (*probe_all) (); + /* These functions are optional */ + PedAlignment *(*get_minimum_alignment)(const PedDevice *dev); + PedAlignment *(*get_optimum_alignment)(const PedDevice *dev); +}; + +#include <parted/constraint.h> +#include <parted/timer.h> + +extern void ped_device_probe_all (); +extern void ped_device_free_all (); + +extern PedDevice* ped_device_get (const char* name); +extern PedDevice* ped_device_get_next (const PedDevice* dev) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_device_is_busy (PedDevice* dev); +extern int ped_device_open (PedDevice* dev); +extern int ped_device_close (PedDevice* dev); +extern void ped_device_destroy (PedDevice* dev); +extern void ped_device_cache_remove (PedDevice* dev); + +extern int ped_device_begin_external_access (PedDevice* dev); +extern int ped_device_end_external_access (PedDevice* dev); + +extern int ped_device_read (const PedDevice* dev, void* buffer, + PedSector start, PedSector count); +extern int ped_device_write (PedDevice* dev, const void* buffer, + PedSector start, PedSector count); +extern int ped_device_sync (PedDevice* dev); +extern int ped_device_sync_fast (PedDevice* dev); +extern PedSector ped_device_check (PedDevice* dev, void* buffer, + PedSector start, PedSector count); +extern PedConstraint* ped_device_get_constraint (const PedDevice* dev); + +extern PedConstraint *ped_device_get_minimal_aligned_constraint( + const PedDevice *dev); +extern PedConstraint *ped_device_get_optimal_aligned_constraint( + const PedDevice *dev); + +extern PedAlignment *ped_device_get_minimum_alignment(const PedDevice *dev); +extern PedAlignment *ped_device_get_optimum_alignment(const PedDevice *dev); + +/* private stuff ;-) */ + +extern void _ped_device_probe (const char* path); + +#endif /* PED_DEVICE_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/device.in.h b/include/parted/device.in.h new file mode 100644 index 0000000..bcee2dd --- /dev/null +++ b/include/parted/device.in.h @@ -0,0 +1,168 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2001, 2005, 2007-2008, 2011-2014, 2019-2023 Free + Software Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedDevice + * @{ + */ + +/** \file device.h */ + +#ifndef PED_DEVICE_H_INCLUDED +#define PED_DEVICE_H_INCLUDED + +/** We can address 2^63 sectors */ +typedef long long PedSector; + +typedef enum { + PED_DEVICE_UNKNOWN = 0, + PED_DEVICE_SCSI = 1, + PED_DEVICE_IDE = 2, + PED_DEVICE_DAC960 = 3, + PED_DEVICE_CPQARRAY = 4, + PED_DEVICE_FILE = 5, + PED_DEVICE_ATARAID = 6, + PED_DEVICE_I2O = 7, + PED_DEVICE_UBD = 8, + PED_DEVICE_DASD = 9, + PED_DEVICE_VIODASD = 10, + PED_DEVICE_SX8 = 11, + PED_DEVICE_DM = 12, + PED_DEVICE_XVD = 13, + PED_DEVICE_SDMMC = 14, + PED_DEVICE_VIRTBLK = 15, + PED_DEVICE_AOE = 16, + PED_DEVICE_MD = 17, + PED_DEVICE_LOOP = 18, + PED_DEVICE_NVME = 19, + PED_DEVICE_RAM = 20, + PED_DEVICE_PMEM = 21 +} PedDeviceType; + +typedef struct _PedDevice PedDevice; +typedef struct _PedDeviceArchOps PedDeviceArchOps; +typedef struct _PedCHSGeometry PedCHSGeometry; + +/** + * A cylinder-head-sector "old-style" geometry. + * + * A device addressed in this way has C*H*S sectors. + */ +struct _PedCHSGeometry { + int cylinders; + int heads; + int sectors; +}; + +/** A block device - for example, /dev/hda, not /dev/hda3 */ +struct _PedDevice { + PedDevice* next; + + char* model; /**< \brief description of hardware + (manufacturer, model) */ + char* path; /**< device /dev entry */ + + PedDeviceType type; /**< SCSI, IDE, etc. \sa PedDeviceType */ + long long sector_size; /**< logical sector size */ + long long phys_sector_size; /**< physical sector size */ + PedSector length; /**< device length (LBA) */ + + int open_count; /**< the number of times this device has + been opened with ped_device_open(). */ + int read_only; + int external_mode; + int dirty; + int boot_dirty; + + PedCHSGeometry hw_geom; + PedCHSGeometry bios_geom; + short host, did; + + void* arch_specific; +}; + +#include <parted/natmath.h> + +/** + * List of functions implementing architecture-specific operations. + */ +struct _PedDeviceArchOps { + PedDevice* (*_new) (const char* path); + void (*destroy) (PedDevice* dev); + int (*is_busy) (PedDevice* dev); + int (*open) (PedDevice* dev); + int (*refresh_open) (PedDevice* dev); + int (*close) (PedDevice* dev); + int (*refresh_close) (PedDevice* dev); + int (*read) (const PedDevice* dev, void* buffer, + PedSector start, PedSector count); + int (*write) (PedDevice* dev, const void* buffer, + PedSector start, PedSector count); + int (*sync) (PedDevice* dev); + int (*sync_fast) (PedDevice* dev); + PedSector (*check) (PedDevice* dev, void* buffer, + PedSector start, PedSector count); + void (*probe_all) (); + /* These functions are optional */ + PedAlignment *(*get_minimum_alignment)(const PedDevice *dev); + PedAlignment *(*get_optimum_alignment)(const PedDevice *dev); +}; + +#include <parted/constraint.h> +#include <parted/timer.h> + +extern void ped_device_probe_all (); +extern void ped_device_free_all (); + +extern PedDevice* ped_device_get (const char* name); +extern PedDevice* ped_device_get_next (const PedDevice* dev) _GL_ATTRIBUTE_PURE; +extern int ped_device_is_busy (PedDevice* dev); +extern int ped_device_open (PedDevice* dev); +extern int ped_device_close (PedDevice* dev); +extern void ped_device_destroy (PedDevice* dev); +extern void ped_device_cache_remove (PedDevice* dev); + +extern int ped_device_begin_external_access (PedDevice* dev); +extern int ped_device_end_external_access (PedDevice* dev); + +extern int ped_device_read (const PedDevice* dev, void* buffer, + PedSector start, PedSector count); +extern int ped_device_write (PedDevice* dev, const void* buffer, + PedSector start, PedSector count); +extern int ped_device_sync (PedDevice* dev); +extern int ped_device_sync_fast (PedDevice* dev); +extern PedSector ped_device_check (PedDevice* dev, void* buffer, + PedSector start, PedSector count); +extern PedConstraint* ped_device_get_constraint (const PedDevice* dev); + +extern PedConstraint *ped_device_get_minimal_aligned_constraint( + const PedDevice *dev); +extern PedConstraint *ped_device_get_optimal_aligned_constraint( + const PedDevice *dev); + +extern PedAlignment *ped_device_get_minimum_alignment(const PedDevice *dev); +extern PedAlignment *ped_device_get_optimum_alignment(const PedDevice *dev); + +/* private stuff ;-) */ + +extern void _ped_device_probe (const char* path); + +#endif /* PED_DEVICE_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/disk.h b/include/parted/disk.h new file mode 100644 index 0000000..0b1d4b9 --- /dev/null +++ b/include/parted/disk.h @@ -0,0 +1,503 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2002, 2007-2014, 2019-2023 Free Software Foundation, + Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedDisk + * @{ + */ + +/** \file disk.h */ + +#ifndef PED_DISK_H_INCLUDED +#define PED_DISK_H_INCLUDED + +/* Include these to work around gnulib redefining free, read, etc. which causes problems + * with pt-common.h + */ +#include <stdlib.h> +#include <unistd.h> +#include <stdint.h> + +/** + * Disk flags + */ +enum _PedDiskFlag { + /* This flag (which defaults to true) controls if disk types for + which cylinder alignment is optional do cylinder alignment when a + new partition gets added. + This flag is available for msdos and sun disklabels (for sun labels + it only controls the aligning of the end of the partition) */ + PED_DISK_CYLINDER_ALIGNMENT=1, + /* This flag controls whether the boot flag of a GPT PMBR is set */ + PED_DISK_GPT_PMBR_BOOT=2, +}; +// NOTE: DO NOT define using enums +#define PED_DISK_FIRST_FLAG 1 // PED_DISK_CYLINDER_ALIGNMENT +#define PED_DISK_LAST_FLAG 2 // PED_DISK_GPT_PMBR_BOOT + +/** + * Partition types + */ +enum _PedPartitionType { + PED_PARTITION_NORMAL = 0x00, + PED_PARTITION_LOGICAL = 0x01, + PED_PARTITION_EXTENDED = 0x02, + PED_PARTITION_FREESPACE = 0x04, + PED_PARTITION_METADATA = 0x08, + PED_PARTITION_PROTECTED = 0x10 +}; + +/** + * Partition flags. + */ +enum _PedPartitionFlag { + PED_PARTITION_BOOT=1, + PED_PARTITION_ROOT=2, + PED_PARTITION_SWAP=3, + PED_PARTITION_HIDDEN=4, + PED_PARTITION_RAID=5, + PED_PARTITION_LVM=6, + PED_PARTITION_LBA=7, + PED_PARTITION_HPSERVICE=8, + PED_PARTITION_PALO=9, + PED_PARTITION_PREP=10, + PED_PARTITION_MSFT_RESERVED=11, + PED_PARTITION_BIOS_GRUB=12, + PED_PARTITION_APPLE_TV_RECOVERY=13, + PED_PARTITION_DIAG=14, + PED_PARTITION_LEGACY_BOOT=15, + PED_PARTITION_MSFT_DATA=16, + PED_PARTITION_IRST=17, + PED_PARTITION_ESP=18, + PED_PARTITION_CHROMEOS_KERNEL=19, + PED_PARTITION_BLS_BOOT=20, + PED_PARTITION_LINUX_HOME=21, + PED_PARTITION_NO_AUTOMOUNT=22, +}; +// NOTE: DO NOT define using enums +#define PED_PARTITION_FIRST_FLAG 1 // PED_PARTITION_BOOT +#define PED_PARTITION_LAST_FLAG 22 // PED_PARTITION_NO_AUTOMOUNT + +enum _PedDiskTypeFeature { + PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ + PED_DISK_TYPE_PARTITION_NAME=2, /**< supports partition names */ + PED_DISK_TYPE_PARTITION_TYPE_ID=4, /**< supports partition type-ids */ + PED_DISK_TYPE_PARTITION_TYPE_UUID=8, /**< supports partition type-uuids */ + PED_DISK_TYPE_DISK_UUID=16, /**< supports disk uuids */ + PED_DISK_TYPE_PARTITION_UUID=32, /**< supports partition uuids */ +}; +// NOTE: DO NOT define using enums +#define PED_DISK_TYPE_FIRST_FEATURE 1 // PED_DISK_TYPE_EXTENDED +#define PED_DISK_TYPE_LAST_FEATURE 32 // PED_DISK_TYPE_PARTITION_UUID + +struct _PedDisk; +struct _PedPartition; +struct _PedDiskOps; +struct _PedDiskType; +struct _PedDiskArchOps; + +typedef enum _PedDiskFlag PedDiskFlag; +typedef enum _PedPartitionType PedPartitionType; +typedef enum _PedPartitionFlag PedPartitionFlag; +typedef enum _PedDiskTypeFeature PedDiskTypeFeature; +typedef struct _PedDisk PedDisk; +typedef struct _PedPartition PedPartition; +typedef const struct _PedDiskOps PedDiskOps; +typedef struct _PedDiskType PedDiskType; +typedef const struct _PedDiskArchOps PedDiskArchOps; + +#include <parted/device.h> +#include <parted/filesys.h> +#include <parted/natmath.h> +#include <parted/geom.h> +#include <stdbool.h> + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +/** \file disk.h */ + +/** + * PedPartition structure represents a partition. + */ +struct _PedPartition { + PedPartition* prev; + PedPartition* next; + + /**< the partition table of the partition */ + PedDisk* disk; + PedGeometry geom; /**< geometry of the partition */ + + /**< the partition number: In Linux, this is the + same as the minor number. No assumption + should be made about "num" and "type" + - different disk labels have different rules. */ + + int num; + PedPartitionType type; /**< the type of partition: a bit field of + PED_PARTITION_LOGICAL, PED_PARTITION_EXTENDED, + PED_PARTITION_METADATA + and PED_PARTITION_FREESPACE. + Both the first two, and the last two are + mutually exclusive. + An extended partition is a primary + partition that may contain logical partitions. + There is at most one extended partition on + a disk. + A logical partition is like a primary + partition, except it's inside an extended + partition. Internally, pseudo partitions are + allocated to represent free space, or disk + label meta-data. These have the + PED_PARTITION_FREESPACE or + PED_PARTITION_METADATA bit set. */ + + /**< The type of file system on the partition. NULL if unknown. */ + const PedFileSystemType* fs_type; + + /**< Only used for an extended partition. The list of logical + partitions (and free space and metadata within the extended + partition). */ + PedPartition* part_list; + + void* disk_specific; +}; + +/** @} */ + +/** + * \addtogroup PedDisk + * @{ + */ + +/** + * Represents a disk label (partition table). + */ +struct _PedDisk { + PedDevice* dev; /**< the device where the + partition table lies */ + const PedDiskType* type; /**< type of disk label */ + const int* block_sizes; /**< block sizes supported + by this label */ + PedPartition* part_list; /**< list of partitions. Access with + ped_disk_next_partition() */ + + void* disk_specific; + +/* office use only ;-) */ + int needs_clobber; /**< clobber before write? */ + int update_mode; /**< mode without free/metadata + partitions, for easier + update */ +}; + +struct _PedDiskOps { + /* disk label operations */ + int (*probe) (const PedDevice *dev); + int (*clobber) (PedDevice* dev); + PedDisk* (*alloc) (const PedDevice* dev); + PedDisk* (*duplicate) (const PedDisk* disk); + void (*free) (PedDisk* disk); + int (*read) (PedDisk* disk); + int (*write) (const PedDisk* disk); + int (*disk_set_flag) ( + PedDisk *disk, + PedDiskFlag flag, + int state); + int (*disk_get_flag) ( + const PedDisk *disk, + PedDiskFlag flag); + int (*disk_is_flag_available) ( + const PedDisk *disk, + PedDiskFlag flag); + uint8_t* (*disk_get_uuid) (const PedDisk* disk); + /** \todo add label guessing op here */ + + /* partition operations */ + PedPartition* (*partition_new) ( + const PedDisk* disk, + PedPartitionType part_type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); + PedPartition* (*partition_duplicate) (const PedPartition* part); + void (*partition_destroy) (PedPartition* part); + int (*partition_set_system) (PedPartition* part, + const PedFileSystemType* fs_type); + int (*partition_set_flag) ( + PedPartition* part, + PedPartitionFlag flag, + int state); + int (*partition_get_flag) ( + const PedPartition* part, + PedPartitionFlag flag); + int (*partition_is_flag_available) ( + const PedPartition* part, + PedPartitionFlag flag); + void (*partition_set_name) (PedPartition* part, const char* name); + const char* (*partition_get_name) (const PedPartition* part); + + int (*partition_set_type_id) (PedPartition* part, uint8_t id); + uint8_t (*partition_get_type_id) (const PedPartition* part); + + int (*partition_set_type_uuid) (PedPartition* part, const uint8_t* uuid); + uint8_t* (*partition_get_type_uuid) (const PedPartition* part); + + uint8_t* (*partition_get_uuid) (const PedPartition* part); + + int (*partition_align) (PedPartition* part, + const PedConstraint* constraint); + int (*partition_enumerate) (PedPartition* part); + bool (*partition_check) (const PedPartition* part); + + /* other */ + int (*alloc_metadata) (PedDisk* disk); + int (*get_max_primary_partition_count) (const PedDisk* disk); + bool (*get_max_supported_partition_count) (const PedDisk* disk, + int* supported); + PedAlignment *(*get_partition_alignment)(const PedDisk *disk); + PedSector (*max_length) (void); + PedSector (*max_start_sector) (void); +}; + +struct _PedDiskType { + PedDiskType* next; + const char* name; /**< the name of the partition table type. + \todo not very intuitive name */ + PedDiskOps* const ops; + + PedDiskTypeFeature features; /**< bitmap of supported features */ +}; + +/** + * Architecture-specific operations. i.e. communication with kernel (or + * whatever) about changes, etc. + */ +struct _PedDiskArchOps { + char* (*partition_get_path) (const PedPartition* part); + int (*partition_is_busy) (const PedPartition* part); + int (*disk_commit) (PedDisk* disk); +}; + +extern void ped_disk_type_register (PedDiskType* type); +extern void ped_disk_type_unregister (PedDiskType* type); + +extern PedDiskType* ped_disk_type_get_next (PedDiskType const *type) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedDiskType* ped_disk_type_get (const char* name) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_disk_type_check_feature (const PedDiskType* disk_type, + PedDiskTypeFeature feature) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedDiskType* ped_disk_probe (PedDevice* dev); +extern int ped_disk_clobber (PedDevice* dev); +extern PedDisk* ped_disk_new (PedDevice* dev); +extern PedDisk* ped_disk_new_fresh (PedDevice* dev, + const PedDiskType* disk_type); +extern PedDisk* ped_disk_duplicate (const PedDisk* old_disk); +extern void ped_disk_destroy (PedDisk* disk); +extern int ped_disk_commit (PedDisk* disk); +extern int ped_disk_commit_to_dev (PedDisk* disk); +extern int ped_disk_commit_to_os (PedDisk* disk); +extern int ped_disk_check (const PedDisk* disk); +extern void ped_disk_print (const PedDisk* disk); + +extern int ped_disk_get_primary_partition_count (const PedDisk* disk) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_disk_get_last_partition_num (const PedDisk* disk) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk); +extern bool ped_disk_get_max_supported_partition_count(const PedDisk* disk, + int* supported); +extern PedAlignment *ped_disk_get_partition_alignment(const PedDisk *disk); + +extern int ped_disk_set_flag(PedDisk *disk, PedDiskFlag flag, int state); +extern int ped_disk_get_flag(const PedDisk *disk, PedDiskFlag flag); +extern int ped_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag); + +extern uint8_t* ped_disk_get_uuid (const PedDisk* disk); + +extern const char *ped_disk_flag_get_name(PedDiskFlag flag); +extern PedDiskFlag ped_disk_flag_get_by_name(const char *name); +extern PedDiskFlag ped_disk_flag_next(PedDiskFlag flag) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +extern PedPartition* ped_partition_new (const PedDisk* disk, + PedPartitionType type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); +extern void ped_partition_destroy (PedPartition* part); +extern int ped_partition_is_active (const PedPartition* part) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, + int state); +extern int ped_partition_get_flag (const PedPartition* part, + PedPartitionFlag flag); +extern int ped_partition_is_flag_available (const PedPartition* part, + PedPartitionFlag flag); +extern int ped_partition_set_system (PedPartition* part, + const PedFileSystemType* fs_type); +extern int ped_partition_set_name (PedPartition* part, const char* name); +extern const char* ped_partition_get_name (const PedPartition* part); + +extern int ped_partition_set_type_id (PedPartition* part, uint8_t id); +extern uint8_t ped_partition_get_type_id (const PedPartition* part); + +extern int ped_partition_set_type_uuid (PedPartition* part, const uint8_t* uuid); +extern uint8_t* ped_partition_get_type_uuid (const PedPartition* part); + +extern uint8_t* ped_partition_get_uuid (const PedPartition* part); + +extern int ped_partition_is_busy (const PedPartition* part); +extern char* ped_partition_get_path (const PedPartition* part); + +extern const char* ped_partition_type_get_name (PedPartitionType part_type) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern const char* ped_partition_flag_get_name (PedPartitionFlag flag); +extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name); +extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; + +/** @} */ + +/** + * \addtogroup PedDisk + * @{ + */ + +extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint); +extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part); +extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part); +extern int ped_disk_delete_all (PedDisk* disk); +extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint, + PedSector start, PedSector end); +extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint); +extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk, + PedPartition* part, const PedConstraint* constraint); +extern int ped_disk_minimize_extended_partition (PedDisk* disk); + +extern PedPartition* ped_disk_next_partition (const PedDisk* disk, + const PedPartition* part) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk, + PedSector sect) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedPartition* ped_disk_extended_partition (const PedDisk* disk) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedSector ped_disk_max_partition_length (const PedDisk *disk); +extern PedSector ped_disk_max_partition_start_sector (const PedDisk *disk); + +/* internal functions */ +extern PedDisk* _ped_disk_alloc (const PedDevice* dev, const PedDiskType* type); +extern void _ped_disk_free (PedDisk* disk); + + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +extern PedPartition* _ped_partition_alloc (const PedDisk* disk, + PedPartitionType type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); +extern void _ped_partition_free (PedPartition* part); + +extern int _ped_partition_attempt_align ( + PedPartition* part, const PedConstraint* external, + PedConstraint* internal); + +#endif /* PED_DISK_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h new file mode 100644 index 0000000..8f6a5c3 --- /dev/null +++ b/include/parted/disk.in.h @@ -0,0 +1,451 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2002, 2007-2014, 2019-2023 Free Software Foundation, + Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedDisk + * @{ + */ + +/** \file disk.h */ + +#ifndef PED_DISK_H_INCLUDED +#define PED_DISK_H_INCLUDED + +/* Include these to work around gnulib redefining free, read, etc. which causes problems + * with pt-common.h + */ +#include <stdlib.h> +#include <unistd.h> +#include <stdint.h> + +/** + * Disk flags + */ +enum _PedDiskFlag { + /* This flag (which defaults to true) controls if disk types for + which cylinder alignment is optional do cylinder alignment when a + new partition gets added. + This flag is available for msdos and sun disklabels (for sun labels + it only controls the aligning of the end of the partition) */ + PED_DISK_CYLINDER_ALIGNMENT=1, + /* This flag controls whether the boot flag of a GPT PMBR is set */ + PED_DISK_GPT_PMBR_BOOT=2, +}; +// NOTE: DO NOT define using enums +#define PED_DISK_FIRST_FLAG 1 // PED_DISK_CYLINDER_ALIGNMENT +#define PED_DISK_LAST_FLAG 2 // PED_DISK_GPT_PMBR_BOOT + +/** + * Partition types + */ +enum _PedPartitionType { + PED_PARTITION_NORMAL = 0x00, + PED_PARTITION_LOGICAL = 0x01, + PED_PARTITION_EXTENDED = 0x02, + PED_PARTITION_FREESPACE = 0x04, + PED_PARTITION_METADATA = 0x08, + PED_PARTITION_PROTECTED = 0x10 +}; + +/** + * Partition flags. + */ +enum _PedPartitionFlag { + PED_PARTITION_BOOT=1, + PED_PARTITION_ROOT=2, + PED_PARTITION_SWAP=3, + PED_PARTITION_HIDDEN=4, + PED_PARTITION_RAID=5, + PED_PARTITION_LVM=6, + PED_PARTITION_LBA=7, + PED_PARTITION_HPSERVICE=8, + PED_PARTITION_PALO=9, + PED_PARTITION_PREP=10, + PED_PARTITION_MSFT_RESERVED=11, + PED_PARTITION_BIOS_GRUB=12, + PED_PARTITION_APPLE_TV_RECOVERY=13, + PED_PARTITION_DIAG=14, + PED_PARTITION_LEGACY_BOOT=15, + PED_PARTITION_MSFT_DATA=16, + PED_PARTITION_IRST=17, + PED_PARTITION_ESP=18, + PED_PARTITION_CHROMEOS_KERNEL=19, + PED_PARTITION_BLS_BOOT=20, + PED_PARTITION_LINUX_HOME=21, + PED_PARTITION_NO_AUTOMOUNT=22, +}; +// NOTE: DO NOT define using enums +#define PED_PARTITION_FIRST_FLAG 1 // PED_PARTITION_BOOT +#define PED_PARTITION_LAST_FLAG 22 // PED_PARTITION_NO_AUTOMOUNT + +enum _PedDiskTypeFeature { + PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ + PED_DISK_TYPE_PARTITION_NAME=2, /**< supports partition names */ + PED_DISK_TYPE_PARTITION_TYPE_ID=4, /**< supports partition type-ids */ + PED_DISK_TYPE_PARTITION_TYPE_UUID=8, /**< supports partition type-uuids */ + PED_DISK_TYPE_DISK_UUID=16, /**< supports disk uuids */ + PED_DISK_TYPE_PARTITION_UUID=32, /**< supports partition uuids */ +}; +// NOTE: DO NOT define using enums +#define PED_DISK_TYPE_FIRST_FEATURE 1 // PED_DISK_TYPE_EXTENDED +#define PED_DISK_TYPE_LAST_FEATURE 32 // PED_DISK_TYPE_PARTITION_UUID + +struct _PedDisk; +struct _PedPartition; +struct _PedDiskOps; +struct _PedDiskType; +struct _PedDiskArchOps; + +typedef enum _PedDiskFlag PedDiskFlag; +typedef enum _PedPartitionType PedPartitionType; +typedef enum _PedPartitionFlag PedPartitionFlag; +typedef enum _PedDiskTypeFeature PedDiskTypeFeature; +typedef struct _PedDisk PedDisk; +typedef struct _PedPartition PedPartition; +typedef const struct _PedDiskOps PedDiskOps; +typedef struct _PedDiskType PedDiskType; +typedef const struct _PedDiskArchOps PedDiskArchOps; + +#include <parted/device.h> +#include <parted/filesys.h> +#include <parted/natmath.h> +#include <parted/geom.h> +#include <stdbool.h> + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +/** \file disk.h */ + +/** + * PedPartition structure represents a partition. + */ +struct _PedPartition { + PedPartition* prev; + PedPartition* next; + + /**< the partition table of the partition */ + PedDisk* disk; + PedGeometry geom; /**< geometry of the partition */ + + /**< the partition number: In Linux, this is the + same as the minor number. No assumption + should be made about "num" and "type" + - different disk labels have different rules. */ + + int num; + PedPartitionType type; /**< the type of partition: a bit field of + PED_PARTITION_LOGICAL, PED_PARTITION_EXTENDED, + PED_PARTITION_METADATA + and PED_PARTITION_FREESPACE. + Both the first two, and the last two are + mutually exclusive. + An extended partition is a primary + partition that may contain logical partitions. + There is at most one extended partition on + a disk. + A logical partition is like a primary + partition, except it's inside an extended + partition. Internally, pseudo partitions are + allocated to represent free space, or disk + label meta-data. These have the + PED_PARTITION_FREESPACE or + PED_PARTITION_METADATA bit set. */ + + /**< The type of file system on the partition. NULL if unknown. */ + const PedFileSystemType* fs_type; + + /**< Only used for an extended partition. The list of logical + partitions (and free space and metadata within the extended + partition). */ + PedPartition* part_list; + + void* disk_specific; +}; + +/** @} */ + +/** + * \addtogroup PedDisk + * @{ + */ + +/** + * Represents a disk label (partition table). + */ +struct _PedDisk { + PedDevice* dev; /**< the device where the + partition table lies */ + const PedDiskType* type; /**< type of disk label */ + const int* block_sizes; /**< block sizes supported + by this label */ + PedPartition* part_list; /**< list of partitions. Access with + ped_disk_next_partition() */ + + void* disk_specific; + +/* office use only ;-) */ + int needs_clobber; /**< clobber before write? */ + int update_mode; /**< mode without free/metadata + partitions, for easier + update */ +}; + +struct _PedDiskOps { + /* disk label operations */ + int (*probe) (const PedDevice *dev); + int (*clobber) (PedDevice* dev); + PedDisk* (*alloc) (const PedDevice* dev); + PedDisk* (*duplicate) (const PedDisk* disk); + void (*free) (PedDisk* disk); + int (*read) (PedDisk* disk); + int (*write) (const PedDisk* disk); + int (*disk_set_flag) ( + PedDisk *disk, + PedDiskFlag flag, + int state); + int (*disk_get_flag) ( + const PedDisk *disk, + PedDiskFlag flag); + int (*disk_is_flag_available) ( + const PedDisk *disk, + PedDiskFlag flag); + uint8_t* (*disk_get_uuid) (const PedDisk* disk); + /** \todo add label guessing op here */ + + /* partition operations */ + PedPartition* (*partition_new) ( + const PedDisk* disk, + PedPartitionType part_type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); + PedPartition* (*partition_duplicate) (const PedPartition* part); + void (*partition_destroy) (PedPartition* part); + int (*partition_set_system) (PedPartition* part, + const PedFileSystemType* fs_type); + int (*partition_set_flag) ( + PedPartition* part, + PedPartitionFlag flag, + int state); + int (*partition_get_flag) ( + const PedPartition* part, + PedPartitionFlag flag); + int (*partition_is_flag_available) ( + const PedPartition* part, + PedPartitionFlag flag); + void (*partition_set_name) (PedPartition* part, const char* name); + const char* (*partition_get_name) (const PedPartition* part); + + int (*partition_set_type_id) (PedPartition* part, uint8_t id); + uint8_t (*partition_get_type_id) (const PedPartition* part); + + int (*partition_set_type_uuid) (PedPartition* part, const uint8_t* uuid); + uint8_t* (*partition_get_type_uuid) (const PedPartition* part); + + uint8_t* (*partition_get_uuid) (const PedPartition* part); + + int (*partition_align) (PedPartition* part, + const PedConstraint* constraint); + int (*partition_enumerate) (PedPartition* part); + bool (*partition_check) (const PedPartition* part); + + /* other */ + int (*alloc_metadata) (PedDisk* disk); + int (*get_max_primary_partition_count) (const PedDisk* disk); + bool (*get_max_supported_partition_count) (const PedDisk* disk, + int* supported); + PedAlignment *(*get_partition_alignment)(const PedDisk *disk); + PedSector (*max_length) (void); + PedSector (*max_start_sector) (void); +}; + +struct _PedDiskType { + PedDiskType* next; + const char* name; /**< the name of the partition table type. + \todo not very intuitive name */ + PedDiskOps* const ops; + + PedDiskTypeFeature features; /**< bitmap of supported features */ +}; + +/** + * Architecture-specific operations. i.e. communication with kernel (or + * whatever) about changes, etc. + */ +struct _PedDiskArchOps { + char* (*partition_get_path) (const PedPartition* part); + int (*partition_is_busy) (const PedPartition* part); + int (*disk_commit) (PedDisk* disk); +}; + +extern void ped_disk_type_register (PedDiskType* type); +extern void ped_disk_type_unregister (PedDiskType* type); + +extern PedDiskType* ped_disk_type_get_next (PedDiskType const *type) + _GL_ATTRIBUTE_PURE; +extern PedDiskType* ped_disk_type_get (const char* name) + _GL_ATTRIBUTE_PURE; +extern int ped_disk_type_check_feature (const PedDiskType* disk_type, + PedDiskTypeFeature feature) + _GL_ATTRIBUTE_PURE; + +extern PedDiskType* ped_disk_probe (PedDevice* dev); +extern int ped_disk_clobber (PedDevice* dev); +extern PedDisk* ped_disk_new (PedDevice* dev); +extern PedDisk* ped_disk_new_fresh (PedDevice* dev, + const PedDiskType* disk_type); +extern PedDisk* ped_disk_duplicate (const PedDisk* old_disk); +extern void ped_disk_destroy (PedDisk* disk); +extern int ped_disk_commit (PedDisk* disk); +extern int ped_disk_commit_to_dev (PedDisk* disk); +extern int ped_disk_commit_to_os (PedDisk* disk); +extern int ped_disk_check (const PedDisk* disk); +extern void ped_disk_print (const PedDisk* disk); + +extern int ped_disk_get_primary_partition_count (const PedDisk* disk) + _GL_ATTRIBUTE_PURE; +extern int ped_disk_get_last_partition_num (const PedDisk* disk) + _GL_ATTRIBUTE_PURE; +extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk); +extern bool ped_disk_get_max_supported_partition_count(const PedDisk* disk, + int* supported); +extern PedAlignment *ped_disk_get_partition_alignment(const PedDisk *disk); + +extern int ped_disk_set_flag(PedDisk *disk, PedDiskFlag flag, int state); +extern int ped_disk_get_flag(const PedDisk *disk, PedDiskFlag flag); +extern int ped_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag); + +extern uint8_t* ped_disk_get_uuid (const PedDisk* disk); + +extern const char *ped_disk_flag_get_name(PedDiskFlag flag); +extern PedDiskFlag ped_disk_flag_get_by_name(const char *name); +extern PedDiskFlag ped_disk_flag_next(PedDiskFlag flag) _GL_ATTRIBUTE_CONST; + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +extern PedPartition* ped_partition_new (const PedDisk* disk, + PedPartitionType type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); +extern void ped_partition_destroy (PedPartition* part); +extern int ped_partition_is_active (const PedPartition* part) _GL_ATTRIBUTE_PURE; +extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, + int state); +extern int ped_partition_get_flag (const PedPartition* part, + PedPartitionFlag flag); +extern int ped_partition_is_flag_available (const PedPartition* part, + PedPartitionFlag flag); +extern int ped_partition_set_system (PedPartition* part, + const PedFileSystemType* fs_type); +extern int ped_partition_set_name (PedPartition* part, const char* name); +extern const char* ped_partition_get_name (const PedPartition* part); + +extern int ped_partition_set_type_id (PedPartition* part, uint8_t id); +extern uint8_t ped_partition_get_type_id (const PedPartition* part); + +extern int ped_partition_set_type_uuid (PedPartition* part, const uint8_t* uuid); +extern uint8_t* ped_partition_get_type_uuid (const PedPartition* part); + +extern uint8_t* ped_partition_get_uuid (const PedPartition* part); + +extern int ped_partition_is_busy (const PedPartition* part); +extern char* ped_partition_get_path (const PedPartition* part); + +extern const char* ped_partition_type_get_name (PedPartitionType part_type) + _GL_ATTRIBUTE_CONST; +extern const char* ped_partition_flag_get_name (PedPartitionFlag flag); +extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name); +extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag) + _GL_ATTRIBUTE_CONST; + +/** @} */ + +/** + * \addtogroup PedDisk + * @{ + */ + +extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint); +extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part); +extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part); +extern int ped_disk_delete_all (PedDisk* disk); +extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint, + PedSector start, PedSector end); +extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part, + const PedConstraint* constraint); +extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk, + PedPartition* part, const PedConstraint* constraint); +extern int ped_disk_minimize_extended_partition (PedDisk* disk); + +extern PedPartition* ped_disk_next_partition (const PedDisk* disk, + const PedPartition* part) + _GL_ATTRIBUTE_PURE; +extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num) + _GL_ATTRIBUTE_PURE; +extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk, + PedSector sect) + _GL_ATTRIBUTE_PURE; +extern PedPartition* ped_disk_extended_partition (const PedDisk* disk) + _GL_ATTRIBUTE_PURE; + +extern PedSector ped_disk_max_partition_length (const PedDisk *disk); +extern PedSector ped_disk_max_partition_start_sector (const PedDisk *disk); + +/* internal functions */ +extern PedDisk* _ped_disk_alloc (const PedDevice* dev, const PedDiskType* type); +extern void _ped_disk_free (PedDisk* disk); + + +/** @} */ + +/** + * \addtogroup PedPartition + * + * @{ + */ + +extern PedPartition* _ped_partition_alloc (const PedDisk* disk, + PedPartitionType type, + const PedFileSystemType* fs_type, + PedSector start, + PedSector end); +extern void _ped_partition_free (PedPartition* part); + +extern int _ped_partition_attempt_align ( + PedPartition* part, const PedConstraint* external, + PedConstraint* internal); + +#endif /* PED_DISK_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/endian.h b/include/parted/endian.h new file mode 100644 index 0000000..f9f473c --- /dev/null +++ b/include/parted/endian.h @@ -0,0 +1,85 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* should only be #included by files in libparted */ + +#ifndef PED_ENDIAN_H_INCLUDED +#define PED_ENDIAN_H_INCLUDED + +#include <stdint.h> + +/* returns the n'th least significant byte */ +#define _GET_BYTE(x, n) ( ((x) >> (8 * (n))) & 0xff ) + +#define _PED_SWAP16(x) ( (_GET_BYTE(x, 0) << 8) \ + + (_GET_BYTE(x, 1) << 0) ) + +#define _PED_SWAP32(x) ( (_GET_BYTE(x, 0) << 24) \ + + (_GET_BYTE(x, 1) << 16) \ + + (_GET_BYTE(x, 2) << 8) \ + + (_GET_BYTE(x, 3) << 0) ) + +#define _PED_SWAP64(x) ( (_GET_BYTE(x, 0) << 56) \ + + (_GET_BYTE(x, 1) << 48) \ + + (_GET_BYTE(x, 2) << 40) \ + + (_GET_BYTE(x, 3) << 32) \ + + (_GET_BYTE(x, 4) << 24) \ + + (_GET_BYTE(x, 5) << 16) \ + + (_GET_BYTE(x, 6) << 8) \ + + (_GET_BYTE(x, 7) << 0) ) + +#define PED_SWAP16(x) ((uint16_t) _PED_SWAP16( (uint16_t) (x) )) +#define PED_SWAP32(x) ((uint32_t) _PED_SWAP32( (uint32_t) (x) )) +#define PED_SWAP64(x) ((uint64_t) _PED_SWAP64( (uint64_t) (x) )) + +#ifdef WORDS_BIGENDIAN + +#define PED_CPU_TO_LE16(x) PED_SWAP16(x) +#define PED_CPU_TO_BE16(x) (x) +#define PED_CPU_TO_LE32(x) PED_SWAP32(x) +#define PED_CPU_TO_BE32(x) (x) +#define PED_CPU_TO_LE64(x) PED_SWAP64(x) +#define PED_CPU_TO_BE64(x) (x) + +#define PED_LE16_TO_CPU(x) PED_SWAP16(x) +#define PED_BE16_TO_CPU(x) (x) +#define PED_LE32_TO_CPU(x) PED_SWAP32(x) +#define PED_BE32_TO_CPU(x) (x) +#define PED_LE64_TO_CPU(x) PED_SWAP64(x) +#define PED_BE64_TO_CPU(x) (x) + +#else /* !WORDS_BIGENDIAN */ + +#define PED_CPU_TO_LE16(x) (x) +#define PED_CPU_TO_BE16(x) PED_SWAP16(x) +#define PED_CPU_TO_LE32(x) (x) +#define PED_CPU_TO_BE32(x) PED_SWAP32(x) +#define PED_CPU_TO_LE64(x) (x) +#define PED_CPU_TO_BE64(x) PED_SWAP64(x) + +#define PED_LE16_TO_CPU(x) (x) +#define PED_BE16_TO_CPU(x) PED_SWAP16(x) +#define PED_LE32_TO_CPU(x) (x) +#define PED_BE32_TO_CPU(x) PED_SWAP32(x) +#define PED_LE64_TO_CPU(x) (x) +#define PED_BE64_TO_CPU(x) PED_SWAP64(x) + +#endif /* !WORDS_BIGENDIAN */ + +#endif /* PED_ENDIAN_H_INCLUDED */ diff --git a/include/parted/endian.in.h b/include/parted/endian.in.h new file mode 100644 index 0000000..f9f473c --- /dev/null +++ b/include/parted/endian.in.h @@ -0,0 +1,85 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* should only be #included by files in libparted */ + +#ifndef PED_ENDIAN_H_INCLUDED +#define PED_ENDIAN_H_INCLUDED + +#include <stdint.h> + +/* returns the n'th least significant byte */ +#define _GET_BYTE(x, n) ( ((x) >> (8 * (n))) & 0xff ) + +#define _PED_SWAP16(x) ( (_GET_BYTE(x, 0) << 8) \ + + (_GET_BYTE(x, 1) << 0) ) + +#define _PED_SWAP32(x) ( (_GET_BYTE(x, 0) << 24) \ + + (_GET_BYTE(x, 1) << 16) \ + + (_GET_BYTE(x, 2) << 8) \ + + (_GET_BYTE(x, 3) << 0) ) + +#define _PED_SWAP64(x) ( (_GET_BYTE(x, 0) << 56) \ + + (_GET_BYTE(x, 1) << 48) \ + + (_GET_BYTE(x, 2) << 40) \ + + (_GET_BYTE(x, 3) << 32) \ + + (_GET_BYTE(x, 4) << 24) \ + + (_GET_BYTE(x, 5) << 16) \ + + (_GET_BYTE(x, 6) << 8) \ + + (_GET_BYTE(x, 7) << 0) ) + +#define PED_SWAP16(x) ((uint16_t) _PED_SWAP16( (uint16_t) (x) )) +#define PED_SWAP32(x) ((uint32_t) _PED_SWAP32( (uint32_t) (x) )) +#define PED_SWAP64(x) ((uint64_t) _PED_SWAP64( (uint64_t) (x) )) + +#ifdef WORDS_BIGENDIAN + +#define PED_CPU_TO_LE16(x) PED_SWAP16(x) +#define PED_CPU_TO_BE16(x) (x) +#define PED_CPU_TO_LE32(x) PED_SWAP32(x) +#define PED_CPU_TO_BE32(x) (x) +#define PED_CPU_TO_LE64(x) PED_SWAP64(x) +#define PED_CPU_TO_BE64(x) (x) + +#define PED_LE16_TO_CPU(x) PED_SWAP16(x) +#define PED_BE16_TO_CPU(x) (x) +#define PED_LE32_TO_CPU(x) PED_SWAP32(x) +#define PED_BE32_TO_CPU(x) (x) +#define PED_LE64_TO_CPU(x) PED_SWAP64(x) +#define PED_BE64_TO_CPU(x) (x) + +#else /* !WORDS_BIGENDIAN */ + +#define PED_CPU_TO_LE16(x) (x) +#define PED_CPU_TO_BE16(x) PED_SWAP16(x) +#define PED_CPU_TO_LE32(x) (x) +#define PED_CPU_TO_BE32(x) PED_SWAP32(x) +#define PED_CPU_TO_LE64(x) (x) +#define PED_CPU_TO_BE64(x) PED_SWAP64(x) + +#define PED_LE16_TO_CPU(x) (x) +#define PED_BE16_TO_CPU(x) PED_SWAP16(x) +#define PED_LE32_TO_CPU(x) (x) +#define PED_BE32_TO_CPU(x) PED_SWAP32(x) +#define PED_LE64_TO_CPU(x) (x) +#define PED_BE64_TO_CPU(x) PED_SWAP64(x) + +#endif /* !WORDS_BIGENDIAN */ + +#endif /* PED_ENDIAN_H_INCLUDED */ diff --git a/include/parted/exception.h b/include/parted/exception.h new file mode 100644 index 0000000..527cc73 --- /dev/null +++ b/include/parted/exception.h @@ -0,0 +1,136 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedException + * @{ + */ + +/** \file exception.h */ + +#ifndef PED_EXCEPTION_H_INCLUDED +#define PED_EXCEPTION_H_INCLUDED + +typedef struct _PedException PedException; + +/** + * Exception type + */ +enum _PedExceptionType { + PED_EXCEPTION_INFORMATION=1, + PED_EXCEPTION_WARNING=2, + PED_EXCEPTION_ERROR=3, + PED_EXCEPTION_FATAL=4, + PED_EXCEPTION_BUG=5, + PED_EXCEPTION_NO_FEATURE=6, +}; +typedef enum _PedExceptionType PedExceptionType; + +/** + * Option for resolving the exception + */ +enum _PedExceptionOption { + /* individual options */ + PED_EXCEPTION_UNHANDLED=0, + PED_EXCEPTION_FIX=1, + PED_EXCEPTION_YES=2, + PED_EXCEPTION_NO=4, + PED_EXCEPTION_OK=8, + PED_EXCEPTION_RETRY=16, + PED_EXCEPTION_IGNORE=32, + PED_EXCEPTION_CANCEL=64, + + /* combinations of individual options */ + PED_EXCEPTION_OK_CANCEL = PED_EXCEPTION_OK + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_YES_NO = PED_EXCEPTION_YES + PED_EXCEPTION_NO, + PED_EXCEPTION_YES_NO_CANCEL = + PED_EXCEPTION_YES_NO + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_IGNORE_CANCEL = + PED_EXCEPTION_IGNORE + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_RETRY_CANCEL = PED_EXCEPTION_RETRY + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_RETRY_IGNORE_CANCEL = + PED_EXCEPTION_RETRY + PED_EXCEPTION_IGNORE_CANCEL, +}; + +#define PED_EXCEPTION_OPTION_FIRST PED_EXCEPTION_FIX +#define PED_EXCEPTION_OPTION_LAST PED_EXCEPTION_CANCEL /* last individual option */ + +typedef enum _PedExceptionOption PedExceptionOption; + +/** + * Structure with information about exception + */ +struct _PedException { + char* message; /**< text describing what the event was */ + PedExceptionType type; /**< type of exception */ + PedExceptionOption options; /**< ORed list of options that + the exception handler can + return (the ways an exception + can be resolved) */ +}; + +typedef PedExceptionOption (PedExceptionHandler) (PedException* ex); + +extern int ped_exception; /* set to true if there's an exception */ + +extern char* ped_exception_get_type_string (PedExceptionType ex_type) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern char* ped_exception_get_option_string (PedExceptionOption ex_opt) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern void ped_exception_set_handler (PedExceptionHandler* handler); +extern PedExceptionHandler *ped_exception_get_handler(void) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedExceptionOption ped_exception_default_handler (PedException* ex); + +extern PedExceptionOption ped_exception_throw (PedExceptionType ex_type, + PedExceptionOption ex_opt, + const char* message, + ...); +/* rethrows an exception - i.e. calls the exception handler, (or returns a + code to return to pass up higher) */ +extern PedExceptionOption ped_exception_rethrow (); + +/* frees an exception, indicating that the exception has been handled. + Calling an exception handler counts. */ +extern void ped_exception_catch (); + +/* indicate that exceptions should not go to the exception handler, but passed + up to the calling function(s) */ +extern void ped_exception_fetch_all (); + +/* indicate that exceptions should invoke the exception handler */ +extern void ped_exception_leave_all (); + +#endif /* PED_EXCEPTION_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/exception.in.h b/include/parted/exception.in.h new file mode 100644 index 0000000..97b8c5b --- /dev/null +++ b/include/parted/exception.in.h @@ -0,0 +1,124 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedException + * @{ + */ + +/** \file exception.h */ + +#ifndef PED_EXCEPTION_H_INCLUDED +#define PED_EXCEPTION_H_INCLUDED + +typedef struct _PedException PedException; + +/** + * Exception type + */ +enum _PedExceptionType { + PED_EXCEPTION_INFORMATION=1, + PED_EXCEPTION_WARNING=2, + PED_EXCEPTION_ERROR=3, + PED_EXCEPTION_FATAL=4, + PED_EXCEPTION_BUG=5, + PED_EXCEPTION_NO_FEATURE=6, +}; +typedef enum _PedExceptionType PedExceptionType; + +/** + * Option for resolving the exception + */ +enum _PedExceptionOption { + /* individual options */ + PED_EXCEPTION_UNHANDLED=0, + PED_EXCEPTION_FIX=1, + PED_EXCEPTION_YES=2, + PED_EXCEPTION_NO=4, + PED_EXCEPTION_OK=8, + PED_EXCEPTION_RETRY=16, + PED_EXCEPTION_IGNORE=32, + PED_EXCEPTION_CANCEL=64, + + /* combinations of individual options */ + PED_EXCEPTION_OK_CANCEL = PED_EXCEPTION_OK + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_YES_NO = PED_EXCEPTION_YES + PED_EXCEPTION_NO, + PED_EXCEPTION_YES_NO_CANCEL = + PED_EXCEPTION_YES_NO + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_IGNORE_CANCEL = + PED_EXCEPTION_IGNORE + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_RETRY_CANCEL = PED_EXCEPTION_RETRY + PED_EXCEPTION_CANCEL, + PED_EXCEPTION_RETRY_IGNORE_CANCEL = + PED_EXCEPTION_RETRY + PED_EXCEPTION_IGNORE_CANCEL, +}; + +#define PED_EXCEPTION_OPTION_FIRST PED_EXCEPTION_FIX +#define PED_EXCEPTION_OPTION_LAST PED_EXCEPTION_CANCEL /* last individual option */ + +typedef enum _PedExceptionOption PedExceptionOption; + +/** + * Structure with information about exception + */ +struct _PedException { + char* message; /**< text describing what the event was */ + PedExceptionType type; /**< type of exception */ + PedExceptionOption options; /**< ORed list of options that + the exception handler can + return (the ways an exception + can be resolved) */ +}; + +typedef PedExceptionOption (PedExceptionHandler) (PedException* ex); + +extern int ped_exception; /* set to true if there's an exception */ + +extern char* ped_exception_get_type_string (PedExceptionType ex_type) + _GL_ATTRIBUTE_CONST; +extern char* ped_exception_get_option_string (PedExceptionOption ex_opt) + _GL_ATTRIBUTE_PURE; + +extern void ped_exception_set_handler (PedExceptionHandler* handler); +extern PedExceptionHandler *ped_exception_get_handler(void) + _GL_ATTRIBUTE_PURE; + +extern PedExceptionOption ped_exception_default_handler (PedException* ex); + +extern PedExceptionOption ped_exception_throw (PedExceptionType ex_type, + PedExceptionOption ex_opt, + const char* message, + ...); +/* rethrows an exception - i.e. calls the exception handler, (or returns a + code to return to pass up higher) */ +extern PedExceptionOption ped_exception_rethrow (); + +/* frees an exception, indicating that the exception has been handled. + Calling an exception handler counts. */ +extern void ped_exception_catch (); + +/* indicate that exceptions should not go to the exception handler, but passed + up to the calling function(s) */ +extern void ped_exception_fetch_all (); + +/* indicate that exceptions should invoke the exception handler */ +extern void ped_exception_leave_all (); + +#endif /* PED_EXCEPTION_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/fdasd.h b/include/parted/fdasd.h new file mode 100644 index 0000000..e3ba183 --- /dev/null +++ b/include/parted/fdasd.h @@ -0,0 +1,299 @@ +/* + * File...........: s390-tools/fdasd/fdasd.h + * Author(s)......: Volker Sameske <sameske@de.ibm.com> + * Horst Hummel <Horst.Hummel@de.ibm.com> + * Bugreports.to..: <Linux390@de.ibm.com> + * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001-2002 + * + * History of changes (starts March 2001) + * version 1.01 - menu entry 's' to show mapping devnode - DS name + * 1.02 - DS names count now from 0001 instead from 0000 + * 1.03 - volser checks: 'AA AAA' to 'AAAAA ' + * - removed dependency to kernel headers. + * 1.04 - added -p option + * 1.05 - new API policy, set it back to 0 + */ +#ifndef FDASD_H +#define FDASD_H + +#include <parted/vtoc.h> + +/***************************************************************************** + * SECTION: Definitions needed for DASD-API (see dasd.h) * + *****************************************************************************/ + +#define DASD_IOCTL_LETTER 'D' + +#define DASD_PARTN_BITS 2 + +#define PARTITION_LINUX_SWAP 0x82 +#define PARTITION_LINUX 0x83 +#define PARTITION_LINUX_LVM 0x8e +#define PARTITION_LINUX_RAID 0xfd + +#define PART_TYPE_NATIVE "NATIVE" +#define PART_TYPE_SWAP "SWAP " +#define PART_TYPE_RAID "RAID " +#define PART_TYPE_LVM "LVM " + +#ifdef DEBUG_DASD +#define PDEBUG fprintf(stderr, "%s:%d:%s\n", \ + __FILE__, \ + __LINE__, \ + __PRETTY_FUNCTION__); +#else +#define PDEBUG +#endif + +/* + * struct dasd_information_t + * represents any data about the device, which is visible to userspace. + * including foramt and featueres. + */ +typedef struct dasd_information_t { + unsigned int devno; /* S/390 devno */ + unsigned int real_devno; /* for aliases */ + unsigned int schid; /* S/390 subchannel identifier */ + unsigned int cu_type : 16; /* from SenseID */ + unsigned int cu_model : 8; /* from SenseID */ + unsigned int dev_type : 16; /* from SenseID */ + unsigned int dev_model : 8; /* from SenseID */ + unsigned int open_count; + unsigned int req_queue_len; + unsigned int chanq_len; /* length of chanq */ + char type[4]; /* from discipline.name, 'none' for */ + /* unknown */ + unsigned int status; /* current device level */ + unsigned int label_block; /* where to find the VOLSER */ + unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ + unsigned int characteristics_size; + unsigned int confdata_size; + char characteristics[64]; /* from read_device_characteristics */ + char configuration_data[256]; /* from read_configuration_data */ +} dasd_information_t; + +struct dasd_eckd_characteristics { + unsigned short cu_type; + struct { + unsigned char support:2; + unsigned char async:1; + unsigned char reserved:1; + unsigned char cache_info:1; + unsigned char model:3; + } __attribute__ ((packed)) cu_model; + unsigned short dev_type; + unsigned char dev_model; + struct { + unsigned char mult_burst:1; + unsigned char RT_in_LR:1; + unsigned char reserved1:1; + unsigned char RD_IN_LR:1; + unsigned char reserved2:4; + unsigned char reserved3:8; + unsigned char defect_wr:1; + unsigned char XRC_supported:1; + unsigned char reserved4:1; + unsigned char striping:1; + unsigned char reserved5:4; + unsigned char cfw:1; + unsigned char reserved6:2; + unsigned char cache:1; + unsigned char dual_copy:1; + unsigned char dfw:1; + unsigned char reset_alleg:1; + unsigned char sense_down:1; + } __attribute__ ((packed)) facilities; + unsigned char dev_class; + unsigned char unit_type; + unsigned short no_cyl; + unsigned short trk_per_cyl; + unsigned char sec_per_trk; + unsigned char byte_per_track[3]; + unsigned short home_bytes; + unsigned char formula; + union { + struct { + unsigned char f1; + unsigned short f2; + unsigned short f3; + } __attribute__ ((packed)) f_0x01; + struct { + unsigned char f1; + unsigned char f2; + unsigned char f3; + unsigned char f4; + unsigned char f5; + } __attribute__ ((packed)) f_0x02; + } __attribute__ ((packed)) factors; + unsigned short first_alt_trk; + unsigned short no_alt_trk; + unsigned short first_dia_trk; + unsigned short no_dia_trk; + unsigned short first_sup_trk; + unsigned short no_sup_trk; + unsigned char MDR_ID; + unsigned char OBR_ID; + unsigned char director; + unsigned char rd_trk_set; + unsigned short max_rec_zero; + unsigned char reserved1; + unsigned char RWANY_in_LR; + unsigned char factor6; + unsigned char factor7; + unsigned char factor8; + unsigned char reserved2[3]; + unsigned char reserved3[6]; + unsigned int long_no_cyl; +} __attribute__ ((packed)); + +/* + * struct format_data_t + * represents all data necessary to format a dasd + */ +typedef struct format_data_t { + int start_unit; /* from track */ + int stop_unit; /* to track */ + int blksize; /* sectorsize */ + int intensity; +} format_data_t; + +/* + * values to be used for format_data_t.intensity + * 0/8: normal format + * 1/9: also write record zero + * 3/11: also write home address + * 4/12: invalidate track + */ +#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ +#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ +#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ +#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ + + +/* Disable the volume (for Linux) */ +#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) +/* Enable the volume (for Linux) */ +#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) + +/* retrieve API version number */ +#define DASDAPIVER _IOR(DASD_IOCTL_LETTER,0,int) +/* Get information on a dasd device (enhanced) */ +#define BIODASDINFO _IOR(DASD_IOCTL_LETTER,1,dasd_information_t) + + +/***************************************************************************** + * SECTION: Further IOCTL Definitions (see fs.h) * + *****************************************************************************/ +#define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */ +/* re-read partition table */ +#define BLKRRPART _IO(0x12,95) +/* get block device sector size */ +#define BLKSSZGET _IO(0x12,104) +/* device size in bytes (u64 *arg)*/ +#define BLKGETSIZE64 _IOR(0x12,114,size_t) +/* get device geometry */ +#define HDIO_GETGEO 0x0301 + +/***************************************************************************** + * SECTION: FDASD internal types * + *****************************************************************************/ +#define PARTN_MASK ((1 << DASD_PARTN_BITS) - 1) +#define USABLE_PARTITIONS ((1 << DASD_PARTN_BITS) - 1) + +#define DASD_MIN_API_VERSION 0 + +#define DEFAULT_FDASD_CONF "/etc/fdasd.conf" /* default config file */ + +#define FDASD_VERSION "1.32.0" +#define DEVICE "device" +#define DISC "disc" +#define PART "part" + +#define ALTERNATE_CYLINDERS_USED 0x10 + +typedef struct partition_info { + u_int8_t used; + unsigned long start_trk; + unsigned long end_trk; + unsigned long len_trk; + unsigned long fspace_trk; + format1_label_t *f1; + struct partition_info *next; + struct partition_info *prev; + u_int8_t type; +} partition_info_t; + +typedef struct config_data { + unsigned long start; + unsigned long stop; +} config_data_t; + +typedef struct fdasd_anchor { + int vlabel_changed; + int vtoc_changed; + int auto_partition; + int print_table; + int big_disk; + int silent; + int verbose; + int devno; + int option_reuse; + int option_recreate; + int partno[USABLE_PARTITIONS]; + u_int16_t dev_type; + unsigned int used_partitions; + unsigned long label_pos; + unsigned int blksize; + unsigned long fspace_trk; + format4_label_t *f4; + format5_label_t *f5; + format7_label_t *f7; + format9_label_t *f9; /* template for all f9 labels */ + partition_info_t *first; + partition_info_t *last; + volume_label_t *vlabel; + config_data_t confdata[USABLE_PARTITIONS]; + u_int32_t hw_cylinders; + u_int32_t formatted_cylinders; + struct fdasd_hd_geometry geo; + unsigned int label_block; + unsigned int FBA_layout; + bool is_file; +} fdasd_anchor_t; + +enum offset {lower, upper}; + +enum fdasd_failure { + unable_to_open_disk, + unable_to_seek_disk, + unable_to_read_disk, + read_only_disk, + unable_to_ioctl, + api_version_mismatch, + wrong_disk_type, + wrong_disk_format, + disk_in_use, + config_syntax_error, + vlabel_corrupted, + dsname_corrupted, + malloc_failed, + device_verification_failed, + volser_not_found +}; + +void fdasd_cleanup (fdasd_anchor_t *anchor); +void fdasd_initialize_anchor (fdasd_anchor_t * anc); +int fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int fd); +void fdasd_check_api_version (fdasd_anchor_t *anc, int fd); +int fdasd_check_volume (fdasd_anchor_t *anc, int fd); +int fdasd_write_labels (fdasd_anchor_t *anc, int fd); +void fdasd_recreate_vtoc(fdasd_anchor_t *anc); +partition_info_t * fdasd_add_partition (fdasd_anchor_t *anc, + unsigned int start, unsigned int stop); +int fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) ; +void fdasd_check_volser(char *volser, int devno); +int fdasd_get_volser(fdasd_anchor_t *anc, char *volser, int fd); +void fdasd_change_volser(fdasd_anchor_t *anc, char *str); +void fdasd_reuse_vtoc(fdasd_anchor_t *anc); + +#endif /* FDASD_H */ diff --git a/include/parted/fdasd.in.h b/include/parted/fdasd.in.h new file mode 100644 index 0000000..e3ba183 --- /dev/null +++ b/include/parted/fdasd.in.h @@ -0,0 +1,299 @@ +/* + * File...........: s390-tools/fdasd/fdasd.h + * Author(s)......: Volker Sameske <sameske@de.ibm.com> + * Horst Hummel <Horst.Hummel@de.ibm.com> + * Bugreports.to..: <Linux390@de.ibm.com> + * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001-2002 + * + * History of changes (starts March 2001) + * version 1.01 - menu entry 's' to show mapping devnode - DS name + * 1.02 - DS names count now from 0001 instead from 0000 + * 1.03 - volser checks: 'AA AAA' to 'AAAAA ' + * - removed dependency to kernel headers. + * 1.04 - added -p option + * 1.05 - new API policy, set it back to 0 + */ +#ifndef FDASD_H +#define FDASD_H + +#include <parted/vtoc.h> + +/***************************************************************************** + * SECTION: Definitions needed for DASD-API (see dasd.h) * + *****************************************************************************/ + +#define DASD_IOCTL_LETTER 'D' + +#define DASD_PARTN_BITS 2 + +#define PARTITION_LINUX_SWAP 0x82 +#define PARTITION_LINUX 0x83 +#define PARTITION_LINUX_LVM 0x8e +#define PARTITION_LINUX_RAID 0xfd + +#define PART_TYPE_NATIVE "NATIVE" +#define PART_TYPE_SWAP "SWAP " +#define PART_TYPE_RAID "RAID " +#define PART_TYPE_LVM "LVM " + +#ifdef DEBUG_DASD +#define PDEBUG fprintf(stderr, "%s:%d:%s\n", \ + __FILE__, \ + __LINE__, \ + __PRETTY_FUNCTION__); +#else +#define PDEBUG +#endif + +/* + * struct dasd_information_t + * represents any data about the device, which is visible to userspace. + * including foramt and featueres. + */ +typedef struct dasd_information_t { + unsigned int devno; /* S/390 devno */ + unsigned int real_devno; /* for aliases */ + unsigned int schid; /* S/390 subchannel identifier */ + unsigned int cu_type : 16; /* from SenseID */ + unsigned int cu_model : 8; /* from SenseID */ + unsigned int dev_type : 16; /* from SenseID */ + unsigned int dev_model : 8; /* from SenseID */ + unsigned int open_count; + unsigned int req_queue_len; + unsigned int chanq_len; /* length of chanq */ + char type[4]; /* from discipline.name, 'none' for */ + /* unknown */ + unsigned int status; /* current device level */ + unsigned int label_block; /* where to find the VOLSER */ + unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ + unsigned int characteristics_size; + unsigned int confdata_size; + char characteristics[64]; /* from read_device_characteristics */ + char configuration_data[256]; /* from read_configuration_data */ +} dasd_information_t; + +struct dasd_eckd_characteristics { + unsigned short cu_type; + struct { + unsigned char support:2; + unsigned char async:1; + unsigned char reserved:1; + unsigned char cache_info:1; + unsigned char model:3; + } __attribute__ ((packed)) cu_model; + unsigned short dev_type; + unsigned char dev_model; + struct { + unsigned char mult_burst:1; + unsigned char RT_in_LR:1; + unsigned char reserved1:1; + unsigned char RD_IN_LR:1; + unsigned char reserved2:4; + unsigned char reserved3:8; + unsigned char defect_wr:1; + unsigned char XRC_supported:1; + unsigned char reserved4:1; + unsigned char striping:1; + unsigned char reserved5:4; + unsigned char cfw:1; + unsigned char reserved6:2; + unsigned char cache:1; + unsigned char dual_copy:1; + unsigned char dfw:1; + unsigned char reset_alleg:1; + unsigned char sense_down:1; + } __attribute__ ((packed)) facilities; + unsigned char dev_class; + unsigned char unit_type; + unsigned short no_cyl; + unsigned short trk_per_cyl; + unsigned char sec_per_trk; + unsigned char byte_per_track[3]; + unsigned short home_bytes; + unsigned char formula; + union { + struct { + unsigned char f1; + unsigned short f2; + unsigned short f3; + } __attribute__ ((packed)) f_0x01; + struct { + unsigned char f1; + unsigned char f2; + unsigned char f3; + unsigned char f4; + unsigned char f5; + } __attribute__ ((packed)) f_0x02; + } __attribute__ ((packed)) factors; + unsigned short first_alt_trk; + unsigned short no_alt_trk; + unsigned short first_dia_trk; + unsigned short no_dia_trk; + unsigned short first_sup_trk; + unsigned short no_sup_trk; + unsigned char MDR_ID; + unsigned char OBR_ID; + unsigned char director; + unsigned char rd_trk_set; + unsigned short max_rec_zero; + unsigned char reserved1; + unsigned char RWANY_in_LR; + unsigned char factor6; + unsigned char factor7; + unsigned char factor8; + unsigned char reserved2[3]; + unsigned char reserved3[6]; + unsigned int long_no_cyl; +} __attribute__ ((packed)); + +/* + * struct format_data_t + * represents all data necessary to format a dasd + */ +typedef struct format_data_t { + int start_unit; /* from track */ + int stop_unit; /* to track */ + int blksize; /* sectorsize */ + int intensity; +} format_data_t; + +/* + * values to be used for format_data_t.intensity + * 0/8: normal format + * 1/9: also write record zero + * 3/11: also write home address + * 4/12: invalidate track + */ +#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ +#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ +#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ +#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ + + +/* Disable the volume (for Linux) */ +#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) +/* Enable the volume (for Linux) */ +#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) + +/* retrieve API version number */ +#define DASDAPIVER _IOR(DASD_IOCTL_LETTER,0,int) +/* Get information on a dasd device (enhanced) */ +#define BIODASDINFO _IOR(DASD_IOCTL_LETTER,1,dasd_information_t) + + +/***************************************************************************** + * SECTION: Further IOCTL Definitions (see fs.h) * + *****************************************************************************/ +#define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */ +/* re-read partition table */ +#define BLKRRPART _IO(0x12,95) +/* get block device sector size */ +#define BLKSSZGET _IO(0x12,104) +/* device size in bytes (u64 *arg)*/ +#define BLKGETSIZE64 _IOR(0x12,114,size_t) +/* get device geometry */ +#define HDIO_GETGEO 0x0301 + +/***************************************************************************** + * SECTION: FDASD internal types * + *****************************************************************************/ +#define PARTN_MASK ((1 << DASD_PARTN_BITS) - 1) +#define USABLE_PARTITIONS ((1 << DASD_PARTN_BITS) - 1) + +#define DASD_MIN_API_VERSION 0 + +#define DEFAULT_FDASD_CONF "/etc/fdasd.conf" /* default config file */ + +#define FDASD_VERSION "1.32.0" +#define DEVICE "device" +#define DISC "disc" +#define PART "part" + +#define ALTERNATE_CYLINDERS_USED 0x10 + +typedef struct partition_info { + u_int8_t used; + unsigned long start_trk; + unsigned long end_trk; + unsigned long len_trk; + unsigned long fspace_trk; + format1_label_t *f1; + struct partition_info *next; + struct partition_info *prev; + u_int8_t type; +} partition_info_t; + +typedef struct config_data { + unsigned long start; + unsigned long stop; +} config_data_t; + +typedef struct fdasd_anchor { + int vlabel_changed; + int vtoc_changed; + int auto_partition; + int print_table; + int big_disk; + int silent; + int verbose; + int devno; + int option_reuse; + int option_recreate; + int partno[USABLE_PARTITIONS]; + u_int16_t dev_type; + unsigned int used_partitions; + unsigned long label_pos; + unsigned int blksize; + unsigned long fspace_trk; + format4_label_t *f4; + format5_label_t *f5; + format7_label_t *f7; + format9_label_t *f9; /* template for all f9 labels */ + partition_info_t *first; + partition_info_t *last; + volume_label_t *vlabel; + config_data_t confdata[USABLE_PARTITIONS]; + u_int32_t hw_cylinders; + u_int32_t formatted_cylinders; + struct fdasd_hd_geometry geo; + unsigned int label_block; + unsigned int FBA_layout; + bool is_file; +} fdasd_anchor_t; + +enum offset {lower, upper}; + +enum fdasd_failure { + unable_to_open_disk, + unable_to_seek_disk, + unable_to_read_disk, + read_only_disk, + unable_to_ioctl, + api_version_mismatch, + wrong_disk_type, + wrong_disk_format, + disk_in_use, + config_syntax_error, + vlabel_corrupted, + dsname_corrupted, + malloc_failed, + device_verification_failed, + volser_not_found +}; + +void fdasd_cleanup (fdasd_anchor_t *anchor); +void fdasd_initialize_anchor (fdasd_anchor_t * anc); +int fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int fd); +void fdasd_check_api_version (fdasd_anchor_t *anc, int fd); +int fdasd_check_volume (fdasd_anchor_t *anc, int fd); +int fdasd_write_labels (fdasd_anchor_t *anc, int fd); +void fdasd_recreate_vtoc(fdasd_anchor_t *anc); +partition_info_t * fdasd_add_partition (fdasd_anchor_t *anc, + unsigned int start, unsigned int stop); +int fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) ; +void fdasd_check_volser(char *volser, int devno); +int fdasd_get_volser(fdasd_anchor_t *anc, char *volser, int fd); +void fdasd_change_volser(fdasd_anchor_t *anc, char *str); +void fdasd_reuse_vtoc(fdasd_anchor_t *anc); + +#endif /* FDASD_H */ diff --git a/include/parted/filesys.h b/include/parted/filesys.h new file mode 100644 index 0000000..9fe6b6c --- /dev/null +++ b/include/parted/filesys.h @@ -0,0 +1,116 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2001, 2006-2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedFileSystem + * @{ + */ + +/** \file filesys.h */ + +#ifndef PED_FILESYS_H_INCLUDED +#define PED_FILESYS_H_INCLUDED + +typedef struct _PedFileSystem PedFileSystem; +typedef struct _PedFileSystemType PedFileSystemType; +typedef struct _PedFileSystemAlias PedFileSystemAlias; +typedef const struct _PedFileSystemOps PedFileSystemOps; + +#include <parted/geom.h> +#include <parted/constraint.h> +#include <parted/timer.h> + +struct _PedFileSystemOps { + PedGeometry* (*probe) (PedGeometry* geom); +}; + +/** + * Structure describing type of file system + */ +struct _PedFileSystemType { + PedFileSystemType* next; + const char* const name; /**< name of the file system type */ + PedFileSystemOps* const ops; +}; + +/** + * Structure describing a file system alias. This is separate from + * PedFileSystemType because probing only looks through the list of types, + * and does not probe aliases separately. + */ +struct _PedFileSystemAlias { + PedFileSystemAlias* next; + PedFileSystemType* fs_type; + const char* alias; + int deprecated; +}; + + +/** + * Structure describing file system + */ +struct _PedFileSystem { + PedFileSystemType* type; /**< the file system type */ + PedGeometry* geom; /**< where the file system actually is */ + int checked; /**< 1 if the file system has been checked. + 0 otherwise. */ + + void* type_specific; + +}; + +extern void ped_file_system_type_register (PedFileSystemType* type); +extern void ped_file_system_type_unregister (PedFileSystemType* type); + +extern void ped_file_system_alias_register (PedFileSystemType* type, + const char* alias, int deprecated); +extern void ped_file_system_alias_unregister (PedFileSystemType* type, + const char* alias); + +extern PedFileSystemType* ped_file_system_type_get (const char* name); +extern PedFileSystemType* +ped_file_system_type_get_next (const PedFileSystemType* fs_type) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedFileSystemAlias* +ped_file_system_alias_get_next (const PedFileSystemAlias* fs_alias) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom); +extern PedGeometry* ped_file_system_probe_specific ( + const PedFileSystemType* fs_type, + PedGeometry* geom); + +PedFileSystem *ped_file_system_open (PedGeometry *geom); +int ped_file_system_close (PedFileSystem *fs); +int ped_file_system_resize (PedFileSystem *fs, PedGeometry *geom, + PedTimer *timer); +PedConstraint *ped_file_system_get_resize_constraint (const PedFileSystem *fs); + +#endif /* PED_FILESYS_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/filesys.in.h b/include/parted/filesys.in.h new file mode 100644 index 0000000..93079b0 --- /dev/null +++ b/include/parted/filesys.in.h @@ -0,0 +1,108 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2001, 2006-2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedFileSystem + * @{ + */ + +/** \file filesys.h */ + +#ifndef PED_FILESYS_H_INCLUDED +#define PED_FILESYS_H_INCLUDED + +typedef struct _PedFileSystem PedFileSystem; +typedef struct _PedFileSystemType PedFileSystemType; +typedef struct _PedFileSystemAlias PedFileSystemAlias; +typedef const struct _PedFileSystemOps PedFileSystemOps; + +#include <parted/geom.h> +#include <parted/constraint.h> +#include <parted/timer.h> + +struct _PedFileSystemOps { + PedGeometry* (*probe) (PedGeometry* geom); +}; + +/** + * Structure describing type of file system + */ +struct _PedFileSystemType { + PedFileSystemType* next; + const char* const name; /**< name of the file system type */ + PedFileSystemOps* const ops; +}; + +/** + * Structure describing a file system alias. This is separate from + * PedFileSystemType because probing only looks through the list of types, + * and does not probe aliases separately. + */ +struct _PedFileSystemAlias { + PedFileSystemAlias* next; + PedFileSystemType* fs_type; + const char* alias; + int deprecated; +}; + + +/** + * Structure describing file system + */ +struct _PedFileSystem { + PedFileSystemType* type; /**< the file system type */ + PedGeometry* geom; /**< where the file system actually is */ + int checked; /**< 1 if the file system has been checked. + 0 otherwise. */ + + void* type_specific; + +}; + +extern void ped_file_system_type_register (PedFileSystemType* type); +extern void ped_file_system_type_unregister (PedFileSystemType* type); + +extern void ped_file_system_alias_register (PedFileSystemType* type, + const char* alias, int deprecated); +extern void ped_file_system_alias_unregister (PedFileSystemType* type, + const char* alias); + +extern PedFileSystemType* ped_file_system_type_get (const char* name); +extern PedFileSystemType* +ped_file_system_type_get_next (const PedFileSystemType* fs_type) + _GL_ATTRIBUTE_PURE; + +extern PedFileSystemAlias* +ped_file_system_alias_get_next (const PedFileSystemAlias* fs_alias) + _GL_ATTRIBUTE_PURE; + +extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom); +extern PedGeometry* ped_file_system_probe_specific ( + const PedFileSystemType* fs_type, + PedGeometry* geom); + +PedFileSystem *ped_file_system_open (PedGeometry *geom); +int ped_file_system_close (PedFileSystem *fs); +int ped_file_system_resize (PedFileSystem *fs, PedGeometry *geom, + PedTimer *timer); +PedConstraint *ped_file_system_get_resize_constraint (const PedFileSystem *fs); + +#endif /* PED_FILESYS_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/geom.h b/include/parted/geom.h new file mode 100644 index 0000000..387b779 --- /dev/null +++ b/include/parted/geom.h @@ -0,0 +1,106 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2001, 2005, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedGeometry + * @{ + */ + +/** \file geom.h */ + +#ifndef PED_GEOM_H_INCLUDED +#define PED_GEOM_H_INCLUDED + +typedef struct _PedGeometry PedGeometry; + +/** + * Geometry of the partition + */ +struct _PedGeometry { + PedDevice* dev; + PedSector start; + PedSector length; + PedSector end; +}; + +#include <parted/device.h> +#include <parted/timer.h> + +extern int ped_geometry_init (PedGeometry* geom, const PedDevice* dev, + PedSector start, PedSector length); +extern PedGeometry* ped_geometry_new (const PedDevice* dev, PedSector start, + PedSector length); +extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom); +extern PedGeometry* ped_geometry_intersect (const PedGeometry* a, + const PedGeometry* b); +extern void ped_geometry_destroy (PedGeometry* geom); +extern int ped_geometry_set (PedGeometry* geom, PedSector start, + PedSector length); +extern int ped_geometry_set_start (PedGeometry* geom, PedSector start); +extern int ped_geometry_set_end (PedGeometry* geom, PedSector end); +extern int ped_geometry_test_overlap (const PedGeometry* a, + const PedGeometry* b) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_geometry_test_inside (const PedGeometry* a, + const PedGeometry* b) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern int ped_geometry_test_sector_inside (const PedGeometry* geom, + PedSector sect) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern int ped_geometry_read (const PedGeometry* geom, void* buffer, + PedSector offset, PedSector count); +extern int ped_geometry_read_alloc (const PedGeometry* geom, void** buffer, + PedSector offset, PedSector count); +extern int ped_geometry_write (PedGeometry* geom, const void* buffer, + PedSector offset, PedSector count); +extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer, + PedSector buffer_size, PedSector offset, + PedSector granularity, PedSector count, + PedTimer* timer); +extern int ped_geometry_sync (PedGeometry* geom); +extern int ped_geometry_sync_fast (PedGeometry* geom); + +/* returns -1 if "sector" is not within dest's space. */ +extern PedSector ped_geometry_map (const PedGeometry* dst, + const PedGeometry* src, + PedSector sector) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +#endif /* PED_GEOM_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/geom.in.h b/include/parted/geom.in.h new file mode 100644 index 0000000..54c731c --- /dev/null +++ b/include/parted/geom.in.h @@ -0,0 +1,86 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1998-2001, 2005, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedGeometry + * @{ + */ + +/** \file geom.h */ + +#ifndef PED_GEOM_H_INCLUDED +#define PED_GEOM_H_INCLUDED + +typedef struct _PedGeometry PedGeometry; + +/** + * Geometry of the partition + */ +struct _PedGeometry { + PedDevice* dev; + PedSector start; + PedSector length; + PedSector end; +}; + +#include <parted/device.h> +#include <parted/timer.h> + +extern int ped_geometry_init (PedGeometry* geom, const PedDevice* dev, + PedSector start, PedSector length); +extern PedGeometry* ped_geometry_new (const PedDevice* dev, PedSector start, + PedSector length); +extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom); +extern PedGeometry* ped_geometry_intersect (const PedGeometry* a, + const PedGeometry* b); +extern void ped_geometry_destroy (PedGeometry* geom); +extern int ped_geometry_set (PedGeometry* geom, PedSector start, + PedSector length); +extern int ped_geometry_set_start (PedGeometry* geom, PedSector start); +extern int ped_geometry_set_end (PedGeometry* geom, PedSector end); +extern int ped_geometry_test_overlap (const PedGeometry* a, + const PedGeometry* b) _GL_ATTRIBUTE_PURE; +extern int ped_geometry_test_inside (const PedGeometry* a, + const PedGeometry* b) _GL_ATTRIBUTE_PURE; +extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b) + _GL_ATTRIBUTE_PURE; +extern int ped_geometry_test_sector_inside (const PedGeometry* geom, + PedSector sect) _GL_ATTRIBUTE_PURE; + +extern int ped_geometry_read (const PedGeometry* geom, void* buffer, + PedSector offset, PedSector count); +extern int ped_geometry_read_alloc (const PedGeometry* geom, void** buffer, + PedSector offset, PedSector count); +extern int ped_geometry_write (PedGeometry* geom, const void* buffer, + PedSector offset, PedSector count); +extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer, + PedSector buffer_size, PedSector offset, + PedSector granularity, PedSector count, + PedTimer* timer); +extern int ped_geometry_sync (PedGeometry* geom); +extern int ped_geometry_sync_fast (PedGeometry* geom); + +/* returns -1 if "sector" is not within dest's space. */ +extern PedSector ped_geometry_map (const PedGeometry* dst, + const PedGeometry* src, + PedSector sector) _GL_ATTRIBUTE_PURE; + +#endif /* PED_GEOM_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/natmath.h b/include/parted/natmath.h new file mode 100644 index 0000000..e88c821 --- /dev/null +++ b/include/parted/natmath.h @@ -0,0 +1,144 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2000, 2007-2014, 2019-2023 Free Software Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedAlignment + * @{ + */ + +/** \file natmath.h */ + +#ifndef PED_NATMATH_H_INCLUDED +#define PED_NATMATH_H_INCLUDED + + +typedef struct _PedAlignment PedAlignment; + +#include <parted/disk.h> +#include <parted/device.h> +#include <parted/geom.h> + +#define PED_MIN(a, b) ( ((a)<(b)) ? (a) : (b) ) +#define PED_MAX(a, b) ( ((a)>(b)) ? (a) : (b) ) + +/* this is weird (I'm still not sure I should be doing this!) + * + * For the functions: new, destroy, duplicate and merge: the following values + * for align are valid: + * * align == NULL (!) represents no solution + * * align->grain_size == 0 represents a single solution + * (align->offset) + * * align->grain_size > 0 represents a set of solutions + * + * These are invalid: + * * align->offset < 0 Note: this gets "normalized" + * * align->grain_size < 0 + * + * For the align_* operations, there must be a solution. i.e. align != NULL + * All solutions must be greater than zero. + */ + +struct _PedAlignment { + PedSector offset; + PedSector grain_size; +}; + +extern PedSector ped_round_up_to (PedSector sector, PedSector grain_size) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern PedSector ped_round_down_to (PedSector sector, PedSector grain_size) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern PedSector ped_round_to_nearest (PedSector sector, PedSector grain_size) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern PedSector ped_greatest_common_divisor (PedSector a, PedSector b) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern int ped_alignment_init (PedAlignment* align, PedSector offset, + PedSector grain_size); +extern PedAlignment* ped_alignment_new (PedSector offset, PedSector grain_size); +extern void ped_alignment_destroy (PedAlignment* align); +extern PedAlignment* ped_alignment_duplicate (const PedAlignment* align); +extern PedAlignment* ped_alignment_intersect (const PedAlignment* a, + const PedAlignment* b); + +extern PedSector +ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedSector +ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; +extern PedSector +ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern int +ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern const PedAlignment* ped_alignment_any; +extern const PedAlignment* ped_alignment_none; + +static inline PedSector +ped_div_round_up (PedSector numerator, PedSector divisor) +{ + return (numerator + divisor - 1) / divisor; +} + + +static inline PedSector +ped_div_round_to_nearest (PedSector numerator, PedSector divisor) +{ + return (numerator + divisor/2) / divisor; +} + +#endif /* PED_NATMATH_H_INCLUDED */ + +/** + * @} + */ diff --git a/include/parted/natmath.in.h b/include/parted/natmath.in.h new file mode 100644 index 0000000..e4c04e4 --- /dev/null +++ b/include/parted/natmath.in.h @@ -0,0 +1,112 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2000, 2007-2014, 2019-2023 Free Software Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedAlignment + * @{ + */ + +/** \file natmath.h */ + +#ifndef PED_NATMATH_H_INCLUDED +#define PED_NATMATH_H_INCLUDED + + +typedef struct _PedAlignment PedAlignment; + +#include <parted/disk.h> +#include <parted/device.h> +#include <parted/geom.h> + +#define PED_MIN(a, b) ( ((a)<(b)) ? (a) : (b) ) +#define PED_MAX(a, b) ( ((a)>(b)) ? (a) : (b) ) + +/* this is weird (I'm still not sure I should be doing this!) + * + * For the functions: new, destroy, duplicate and merge: the following values + * for align are valid: + * * align == NULL (!) represents no solution + * * align->grain_size == 0 represents a single solution + * (align->offset) + * * align->grain_size > 0 represents a set of solutions + * + * These are invalid: + * * align->offset < 0 Note: this gets "normalized" + * * align->grain_size < 0 + * + * For the align_* operations, there must be a solution. i.e. align != NULL + * All solutions must be greater than zero. + */ + +struct _PedAlignment { + PedSector offset; + PedSector grain_size; +}; + +extern PedSector ped_round_up_to (PedSector sector, PedSector grain_size) + _GL_ATTRIBUTE_CONST; +extern PedSector ped_round_down_to (PedSector sector, PedSector grain_size) + _GL_ATTRIBUTE_CONST; +extern PedSector ped_round_to_nearest (PedSector sector, PedSector grain_size) + _GL_ATTRIBUTE_CONST; +extern PedSector ped_greatest_common_divisor (PedSector a, PedSector b) + _GL_ATTRIBUTE_PURE; + +extern int ped_alignment_init (PedAlignment* align, PedSector offset, + PedSector grain_size); +extern PedAlignment* ped_alignment_new (PedSector offset, PedSector grain_size); +extern void ped_alignment_destroy (PedAlignment* align); +extern PedAlignment* ped_alignment_duplicate (const PedAlignment* align); +extern PedAlignment* ped_alignment_intersect (const PedAlignment* a, + const PedAlignment* b); + +extern PedSector +ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) _GL_ATTRIBUTE_PURE; +extern PedSector +ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) _GL_ATTRIBUTE_PURE; +extern PedSector +ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) _GL_ATTRIBUTE_PURE; + +extern int +ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom, + PedSector sector) _GL_ATTRIBUTE_PURE; + +extern const PedAlignment* ped_alignment_any; +extern const PedAlignment* ped_alignment_none; + +static inline PedSector +ped_div_round_up (PedSector numerator, PedSector divisor) +{ + return (numerator + divisor - 1) / divisor; +} + + +static inline PedSector +ped_div_round_to_nearest (PedSector numerator, PedSector divisor) +{ + return (numerator + divisor/2) / divisor; +} + +#endif /* PED_NATMATH_H_INCLUDED */ + +/** + * @} + */ diff --git a/include/parted/parted.h b/include/parted/parted.h new file mode 100644 index 0000000..e53655c --- /dev/null +++ b/include/parted/parted.h @@ -0,0 +1,61 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2001, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PARTED_H_INCLUDED +#define PARTED_H_INCLUDED + +#define PED_DEFAULT_ALIGNMENT (1024 * 1024) + +#ifdef __cplusplus +extern "C" { +#endif + +#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +# define __attribute(arg) __attribute__ (arg) +#else +# define __attribute(arg) +#endif + +#include <parted/constraint.h> +#include <parted/device.h> +#include <parted/disk.h> +#include <parted/exception.h> +#include <parted/filesys.h> +#include <parted/natmath.h> +#include <parted/unit.h> + +#include <stdint.h> +#include <stdlib.h> +#include <string.h> + +extern const char *ped_get_version () +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; + +extern void* __attribute__ ((malloc)) ped_malloc (size_t size); +extern void* __attribute__ ((malloc)) ped_calloc (size_t size); +extern void free (void* ptr); + +#ifdef __cplusplus +} +#endif + +#endif /* PARTED_H_INCLUDED */ diff --git a/include/parted/parted.in.h b/include/parted/parted.in.h new file mode 100644 index 0000000..9546127 --- /dev/null +++ b/include/parted/parted.in.h @@ -0,0 +1,57 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 1999-2001, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef PARTED_H_INCLUDED +#define PARTED_H_INCLUDED + +#define PED_DEFAULT_ALIGNMENT (1024 * 1024) + +#ifdef __cplusplus +extern "C" { +#endif + +#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +# define __attribute(arg) __attribute__ (arg) +#else +# define __attribute(arg) +#endif + +#include <parted/constraint.h> +#include <parted/device.h> +#include <parted/disk.h> +#include <parted/exception.h> +#include <parted/filesys.h> +#include <parted/natmath.h> +#include <parted/unit.h> + +#include <stdint.h> +#include <stdlib.h> +#include <string.h> + +extern const char *ped_get_version () _GL_ATTRIBUTE_CONST; + +extern void* __attribute__ ((malloc)) ped_malloc (size_t size); +extern void* __attribute__ ((malloc)) ped_calloc (size_t size); +extern void free (void* ptr); + +#ifdef __cplusplus +} +#endif + +#endif /* PARTED_H_INCLUDED */ diff --git a/include/parted/timer.h b/include/parted/timer.h new file mode 100644 index 0000000..f3aef74 --- /dev/null +++ b/include/parted/timer.h @@ -0,0 +1,66 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2001-2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedTimer + * @{ + */ + +/** \file timer.h */ + +#ifndef PED_TIMER_H_INCLUDED +#define PED_TIMER_H_INCLUDED + +#include <time.h> + +typedef struct _PedTimer PedTimer; + +typedef void PedTimerHandler (PedTimer* timer, void* context); + +/* + * Structure keeping track of progress and time + */ +struct _PedTimer { + float frac; /**< fraction of operation done */ + time_t start; /**< time of start of op */ + time_t now; /**< time of last update (now!) */ + time_t predicted_end; /**< expected finish time */ + const char* state_name; /**< eg: "copying data" */ + PedTimerHandler* handler; /**< who to notify on updates */ + void* context; /**< context to pass to handler */ +}; + +extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context); +extern void ped_timer_destroy (PedTimer* timer); + +/* a nested timer automatically notifies it's parent. You should only + * create one when you are going to use it (not before) + */ +extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac); +extern void ped_timer_destroy_nested (PedTimer* timer); + +extern void ped_timer_touch (PedTimer* timer); +extern void ped_timer_reset (PedTimer* timer); +extern void ped_timer_update (PedTimer* timer, float new_frac); +extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name); + +#endif /* PED_TIMER_H_INCLUDED */ + + +/** @} */ diff --git a/include/parted/timer.in.h b/include/parted/timer.in.h new file mode 100644 index 0000000..f3aef74 --- /dev/null +++ b/include/parted/timer.in.h @@ -0,0 +1,66 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2001-2002, 2007, 2009-2014, 2019-2023 Free Software + Foundation, Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedTimer + * @{ + */ + +/** \file timer.h */ + +#ifndef PED_TIMER_H_INCLUDED +#define PED_TIMER_H_INCLUDED + +#include <time.h> + +typedef struct _PedTimer PedTimer; + +typedef void PedTimerHandler (PedTimer* timer, void* context); + +/* + * Structure keeping track of progress and time + */ +struct _PedTimer { + float frac; /**< fraction of operation done */ + time_t start; /**< time of start of op */ + time_t now; /**< time of last update (now!) */ + time_t predicted_end; /**< expected finish time */ + const char* state_name; /**< eg: "copying data" */ + PedTimerHandler* handler; /**< who to notify on updates */ + void* context; /**< context to pass to handler */ +}; + +extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context); +extern void ped_timer_destroy (PedTimer* timer); + +/* a nested timer automatically notifies it's parent. You should only + * create one when you are going to use it (not before) + */ +extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac); +extern void ped_timer_destroy_nested (PedTimer* timer); + +extern void ped_timer_touch (PedTimer* timer); +extern void ped_timer_reset (PedTimer* timer); +extern void ped_timer_update (PedTimer* timer, float new_frac); +extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name); + +#endif /* PED_TIMER_H_INCLUDED */ + + +/** @} */ diff --git a/include/parted/unit.h b/include/parted/unit.h new file mode 100644 index 0000000..bb8459b --- /dev/null +++ b/include/parted/unit.h @@ -0,0 +1,101 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2005, 2007, 2009-2014, 2019-2023 Free Software Foundation, + Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedUnit + * @{ + */ + +/** \file unit.h */ + +#ifndef PED_UNIT_H_INCLUDED +#define PED_UNIT_H_INCLUDED + +#include <parted/device.h> + +#include <stdarg.h> +#include <stdio.h> + +#define PED_SECTOR_SIZE_DEFAULT 512LL +#define PED_KILOBYTE_SIZE 1000LL +#define PED_MEGABYTE_SIZE 1000000LL +#define PED_GIGABYTE_SIZE 1000000000LL +#define PED_TERABYTE_SIZE 1000000000000LL +#define PED_KIBIBYTE_SIZE 1024LL +#define PED_MEBIBYTE_SIZE 1048576LL +#define PED_GIBIBYTE_SIZE 1073741824LL +#define PED_TEBIBYTE_SIZE 1099511627776LL + +/** + * Human-friendly unit for representation of a location within device + */ +typedef enum { + PED_UNIT_SECTOR, + PED_UNIT_BYTE, + PED_UNIT_KILOBYTE, + PED_UNIT_MEGABYTE, + PED_UNIT_GIGABYTE, + PED_UNIT_TERABYTE, + PED_UNIT_COMPACT, + PED_UNIT_CYLINDER, + PED_UNIT_CHS, + PED_UNIT_PERCENT, + PED_UNIT_KIBIBYTE, + PED_UNIT_MEBIBYTE, + PED_UNIT_GIBIBYTE, + PED_UNIT_TEBIBYTE +} PedUnit; + +#define PED_UNIT_FIRST PED_UNIT_SECTOR +#define PED_UNIT_LAST PED_UNIT_TEBIBYTE + +extern long long ped_unit_get_size (const PedDevice* dev, PedUnit unit); +extern const char *ped_unit_get_name (PedUnit unit) + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__const__)) +#endif +; +extern PedUnit ped_unit_get_by_name (const char* unit_name) +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) + __attribute ((__pure__)) +#endif +; + +extern void ped_unit_set_default (PedUnit unit); +extern PedUnit ped_unit_get_default (); + +extern char* ped_unit_format_byte (const PedDevice* dev, PedSector byte); +extern char* ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, + PedUnit unit); + +extern char* ped_unit_format (const PedDevice* dev, PedSector sector); +extern char* ped_unit_format_custom (const PedDevice* dev, PedSector sector, + PedUnit unit); + +extern int ped_unit_parse (const char* str, const PedDevice* dev, + PedSector* sector, + PedGeometry** range); +extern int ped_unit_parse_custom (const char* str, const PedDevice* dev, + PedUnit unit, PedSector* sector, + PedGeometry** range); + +#endif /* PED_UNIT_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/unit.in.h b/include/parted/unit.in.h new file mode 100644 index 0000000..82f4c5c --- /dev/null +++ b/include/parted/unit.in.h @@ -0,0 +1,93 @@ +/* + libparted - a library for manipulating disk partitions + Copyright (C) 2005, 2007, 2009-2014, 2019-2023 Free Software Foundation, + Inc. + + 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; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** + * \addtogroup PedUnit + * @{ + */ + +/** \file unit.h */ + +#ifndef PED_UNIT_H_INCLUDED +#define PED_UNIT_H_INCLUDED + +#include <parted/device.h> + +#include <stdarg.h> +#include <stdio.h> + +#define PED_SECTOR_SIZE_DEFAULT 512LL +#define PED_KILOBYTE_SIZE 1000LL +#define PED_MEGABYTE_SIZE 1000000LL +#define PED_GIGABYTE_SIZE 1000000000LL +#define PED_TERABYTE_SIZE 1000000000000LL +#define PED_KIBIBYTE_SIZE 1024LL +#define PED_MEBIBYTE_SIZE 1048576LL +#define PED_GIBIBYTE_SIZE 1073741824LL +#define PED_TEBIBYTE_SIZE 1099511627776LL + +/** + * Human-friendly unit for representation of a location within device + */ +typedef enum { + PED_UNIT_SECTOR, + PED_UNIT_BYTE, + PED_UNIT_KILOBYTE, + PED_UNIT_MEGABYTE, + PED_UNIT_GIGABYTE, + PED_UNIT_TERABYTE, + PED_UNIT_COMPACT, + PED_UNIT_CYLINDER, + PED_UNIT_CHS, + PED_UNIT_PERCENT, + PED_UNIT_KIBIBYTE, + PED_UNIT_MEBIBYTE, + PED_UNIT_GIBIBYTE, + PED_UNIT_TEBIBYTE +} PedUnit; + +#define PED_UNIT_FIRST PED_UNIT_SECTOR +#define PED_UNIT_LAST PED_UNIT_TEBIBYTE + +extern long long ped_unit_get_size (const PedDevice* dev, PedUnit unit); +extern const char *ped_unit_get_name (PedUnit unit) + _GL_ATTRIBUTE_CONST; +extern PedUnit ped_unit_get_by_name (const char* unit_name) _GL_ATTRIBUTE_PURE; + +extern void ped_unit_set_default (PedUnit unit); +extern PedUnit ped_unit_get_default (); + +extern char* ped_unit_format_byte (const PedDevice* dev, PedSector byte); +extern char* ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, + PedUnit unit); + +extern char* ped_unit_format (const PedDevice* dev, PedSector sector); +extern char* ped_unit_format_custom (const PedDevice* dev, PedSector sector, + PedUnit unit); + +extern int ped_unit_parse (const char* str, const PedDevice* dev, + PedSector* sector, + PedGeometry** range); +extern int ped_unit_parse_custom (const char* str, const PedDevice* dev, + PedUnit unit, PedSector* sector, + PedGeometry** range); + +#endif /* PED_UNIT_H_INCLUDED */ + +/** @} */ diff --git a/include/parted/vtoc.h b/include/parted/vtoc.h new file mode 100644 index 0000000..c2756f9 --- /dev/null +++ b/include/parted/vtoc.h @@ -0,0 +1,387 @@ +/* + * File...........: s390-tools/dasdview/vtoc.h + * Author(s)......: Horst Hummel <horst.hummel@de.ibm.com> + * Bugreports.to..: <Linux390@de.ibm.com> + * + * This is a user-space copy of the kernel vtoc,h. + * + * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2002 + * + * History of changes (starts March 2002) + * 2002-03-12 initial + */ + +#ifndef VTOC_H +#define VTOC_H + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <ctype.h> +#include <time.h> +#include <fcntl.h> +#include <unistd.h> + +#include <sys/stat.h> +#include <sys/ioctl.h> + +#define LINE_LENGTH 80 +#define VTOC_START_CC 0x0 +#define VTOC_START_HH 0x1 +#define FIRST_USABLE_CYL 1 +#define FIRST_USABLE_TRK 2 + +#define DASD_3380_TYPE 13148 +#define DASD_3390_TYPE 13200 +#define DASD_9345_TYPE 37701 + +#define DASD_3380_VALUE 0xbb60 +#define DASD_3390_VALUE 0xe5a2 +#define DASD_9345_VALUE 0xbc98 + +#define VOLSER_LENGTH 6 +#define BIG_DISK_SIZE 0x10000 +#define LV_COMPAT_CYL 0xFFFE + +/***************************************************************************** + * SECTION: Definition from hdreq.h * + *****************************************************************************/ + +struct fdasd_hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; +}; + + +typedef struct ttr ttr_t; +typedef struct cchhb cchhb_t; +typedef struct cchh cchh_t; +typedef struct labeldate labeldate_t; +typedef struct volume_label volume_label_t; +typedef struct cms_volume_label cms_volume_label_t; +typedef struct extent extent_t; +typedef struct dev_const dev_const_t; +typedef struct format1_label format1_label_t; +typedef struct format4_label format4_label_t; +typedef struct ds5ext ds5ext_t; +typedef struct format5_label format5_label_t; +typedef struct ds7ext ds7ext_t; +typedef struct format7_label format7_label_t; +typedef struct format9_label format9_label_t; + +struct __attribute__ ((packed)) ttr { + u_int16_t tt; + u_int8_t r; +}; + +struct __attribute__ ((packed)) cchhb { + u_int16_t cc; + u_int16_t hh; + u_int8_t b; +}; + +struct __attribute__ ((packed)) cchh { + u_int16_t cc; + u_int16_t hh; +}; + +struct __attribute__ ((packed)) labeldate { + u_int8_t year; + u_int16_t day; +}; + +/* + * The following structure is a merger of the cdl and ldl volume label. + * On an ldl disk there is no key information, so when reading an + * ldl label from disk, the data should be copied at the address of vollbl. + * On the other side, the field ldl_version is reserved in a cdl record + * and the field formatted_blocks exists only for ldl labels. So when + * reading a cdl label from disk, the formatted_blocks field will contain + * arbitrary data. + * This layout may be a bit awkward, but the advantage of having the + * same label type for both disk layout types is bigger than the effort + * for taking a bit of extra care at the fringes. + */ + +struct __attribute__ ((packed)) volume_label { + char volkey[4]; /* volume key = volume label */ + char vollbl[4]; /* volume label ("VOL1" in EBCDIC) */ + char volid[6]; /* volume identifier */ + u_int8_t security; /* security byte */ + cchhb_t vtoc; /* VTOC address */ + char res1[5]; /* reserved */ + char cisize[4]; /* CI-size for FBA,... */ + /* ...blanks for CKD */ + char blkperci[4]; /* no of blocks per CI (FBA), blanks for CKD */ + char labperci[4]; /* no of labels per CI (FBA), blanks for CKD */ + char res2[4]; /* reserved */ + char lvtoc[14]; /* owner code for LVTOC */ + char res3[28]; /* reserved */ + char ldl_version; /* version number, valid for ldl format */ + u_int64_t formatted_blocks; /* valid when ldl_version >= "2" (in + EBCDIC) */ +}; + +/* + * See: + * z/VM V5R2.0 CMS Planning and Administration + * SC24-6078-01 + * What CMS Does / Disk and File Management / Disk File Format + * http://publib.boulder.ibm.com/infocenter/zvm/v5r4/topic/com.ibm.zvm.v54.dmsd1/hcsg2b1018.htm + */ +struct __attribute__ ((packed)) cms_volume_label { + char label_id[4]; /* Label identifier ("CMS1" in EBCDIC) */ + char vol_id[6]; /* Volume identifier */ + char version_id[2]; /* Version identifier ("\0\0") */ + u_int32_t block_size; /* Disk block size (512, 1024, 2048 or 4096) */ + u_int32_t origin_ptr; /* Disk origin pointer (4 or 5) */ + u_int32_t usable_count; /* Number of usable cylinders/blocks */ + u_int32_t formatted_count; /* Max # of formatted cylinders/blocks */ + u_int32_t block_count; /* Disk size in CMS blocks */ + u_int32_t used_count; /* Number of CMS blocks in use */ + u_int32_t fst_size; /* File Status Table (FST) size (64) */ + u_int32_t fst_count; /* Number of FSTs per CMS block */ + char format_date[6]; /* Disk FORMAT date (YYMMDDhhmmss) */ + char reserved1[2]; /* Reserved fields. + The low-order bit of the first byte is a + century flag. 0 = 1900s, 1 = 2000s. + It is used in conjunction with + "format_date" to determine the + four-digit year. */ + u_int32_t disk_offset; /* Offset in blocks to the start of the + reserved file when the disk is reserved. + This is the number of blocks to skip + before the partition starts. */ + u_int32_t map_block; /* Allocation map block with next hole */ + u_int32_t hblk_disp; /* Displacement in HBLK data of next hole */ + u_int32_t user_disp; /* Disp into user part of allocation map */ + u_int32_t open_files; /* Count of SFS open files for this ADT. + open_files is not really part of the + volume label. It is not used for + minidisks. */ + char segment_name[8]; /* Name of the shared segment. + segment_name is not really part of the + volume label. It is not stored on disk. */ +}; + +struct __attribute__ ((packed)) extent { + u_int8_t typeind; /* extent type indicator */ + u_int8_t seqno; /* extent sequence number */ + cchh_t llimit; /* starting point of this extent */ + cchh_t ulimit; /* ending point of this extent */ +}; + +struct __attribute__ ((packed)) dev_const { + u_int16_t DS4DSCYL; /* number of logical cyls */ + u_int16_t DS4DSTRK; /* number of tracks in a logical cylinder */ + u_int16_t DS4DEVTK; /* device track length */ + u_int8_t DS4DEVI; /* non-last keyed record overhead */ + u_int8_t DS4DEVL; /* last keyed record overhead */ + u_int8_t DS4DEVK; /* non-keyed record overhead differential */ + u_int8_t DS4DEVFG; /* flag byte */ + u_int16_t DS4DEVTL; /* device tolerance */ + u_int8_t DS4DEVDT; /* number of DSCB's per track */ + u_int8_t DS4DEVDB; /* number of directory blocks per track */ +}; + +/* + * format 1 and format 8 label have the same layout so we use the following + * structure for both. + */ +struct __attribute__ ((packed)) format1_label { + char DS1DSNAM[44]; /* data set name */ + u_int8_t DS1FMTID; /* format identifier */ + char DS1DSSN[6]; /* data set serial number */ + u_int16_t DS1VOLSQ; /* volume sequence number */ + labeldate_t DS1CREDT; /* creation date: ydd */ + labeldate_t DS1EXPDT; /* expiration date */ + u_int8_t DS1NOEPV; /* number of extents on volume */ + u_int8_t DS1NOBDB; /* no. of bytes used in last direction blk */ + u_int8_t DS1FLAG1; /* flag 1 */ + char DS1SYSCD[13]; /* system code */ + labeldate_t DS1REFD; /* date last referenced */ + u_int8_t DS1SMSFG; /* system managed storage indicators */ + u_int8_t DS1SCXTF; /* sec. space extension flag byte */ + u_int16_t DS1SCXTV; /* secondary space extension value */ + u_int8_t DS1DSRG1; /* data set organisation byte 1 */ + u_int8_t DS1DSRG2; /* data set organisation byte 2 */ + u_int8_t DS1RECFM; /* record format */ + u_int8_t DS1OPTCD; /* option code */ + u_int16_t DS1BLKL; /* block length */ + u_int16_t DS1LRECL; /* record length */ + u_int8_t DS1KEYL; /* key length */ + u_int16_t DS1RKP; /* relative key position */ + u_int8_t DS1DSIND; /* data set indicators */ + u_int8_t DS1SCAL1; /* secondary allocation flag byte */ + char DS1SCAL3[3]; /* secondary allocation quantity */ + ttr_t DS1LSTAR; /* last used track and block on track */ + u_int16_t DS1TRBAL; /* space remaining on last used track */ + u_int16_t res1; /* reserved */ + extent_t DS1EXT1; /* first extent description */ + extent_t DS1EXT2; /* second extent description */ + extent_t DS1EXT3; /* third extent description */ + cchhb_t DS1PTRDS; /* possible pointer to f2 or f3 DSCB */ +}; + +struct __attribute__ ((packed)) format4_label { + char DS4KEYCD[44]; /* key code for VTOC labels: 44 times 0x04 */ + u_int8_t DS4IDFMT; /* format identifier */ + cchhb_t DS4HPCHR; /* highest address of a format 1 DSCB */ + u_int16_t DS4DSREC; /* number of available DSCB's */ + cchh_t DS4HCCHH; /* CCHH of next available alternate track */ + u_int16_t DS4NOATK; /* number of remaining alternate tracks */ + u_int8_t DS4VTOCI; /* VTOC indicators */ + u_int8_t DS4NOEXT; /* number of extents in VTOC */ + u_int8_t DS4SMSFG; /* system managed storage indicators */ + u_int8_t DS4DEVAC; /* number of alternate cylinders. + Subtract from first two bytes of + DS4DEVSZ to get number of usable + cylinders. can be zero. valid + only if DS4DEVAV on. */ + dev_const_t DS4DEVCT; /* device constants */ + char DS4AMTIM[8]; /* VSAM timestamp */ + char DS4AMCAT[3]; /* VSAM catalog indicator */ + char DS4R2TIM[8]; /* VSAM volume/catalog match timestamp */ + char res1[5]; /* reserved */ + char DS4F6PTR[5]; /* pointer to first format 6 DSCB */ + extent_t DS4VTOCE; /* VTOC extent description */ + char res2[10]; /* reserved */ + u_int8_t DS4EFLVL; /* extended free-space management level */ + cchhb_t DS4EFPTR; /* pointer to extended free-space info */ + char res3; /* reserved */ + u_int32_t DS4DCYL; /* number of logical cyls */ + char res4[2]; /* reserved */ + u_int8_t DS4DEVF2; /* device flags */ + char res5; /* reserved */ +}; + +struct __attribute__ ((packed)) ds5ext { + u_int16_t t; /* RTA of the first track of free extent */ + u_int16_t fc; /* number of whole cylinders in free ext. */ + u_int8_t ft; /* number of remaining free tracks */ +}; + +struct __attribute__ ((packed)) format5_label { + char DS5KEYID[4]; /* key identifier */ + ds5ext_t DS5AVEXT; /* first available (free-space) extent. */ + ds5ext_t DS5EXTAV[7]; /* seven available extents */ + u_int8_t DS5FMTID; /* format identifier */ + ds5ext_t DS5MAVET[18]; /* eighteen available extents */ + cchhb_t DS5PTRDS; /* pointer to next format5 DSCB */ +}; + +struct __attribute__ ((packed)) ds7ext { + u_int32_t a; /* starting RTA value */ + u_int32_t b; /* ending RTA value + 1 */ +}; + +struct __attribute__ ((packed)) format7_label { + char DS7KEYID[4]; /* key identifier */ + ds7ext_t DS7EXTNT[5]; /* space for 5 extent descriptions */ + u_int8_t DS7FMTID; /* format identifier */ + ds7ext_t DS7ADEXT[11]; /* space for 11 extent descriptions */ + char res1[2]; /* reserved */ + cchhb_t DS7PTRDS; /* pointer to next FMT7 DSCB */ +}; + +struct __attribute__ ((packed)) format9_label { + u_int8_t DS9KEYID; /* key code for format 9 labels (0x09) */ + u_int8_t DS9SUBTY; /* subtype (0x01) */ + u_int8_t DS9NUMF9; /* number of F9 datasets */ + u_int8_t res1[41]; /* reserved */ + u_int8_t DS9FMTID; /* format identifier */ + u_int8_t res2[95]; /* reserved */ +}; + +char *vtoc_ebcdic_enc (char const *source, char *target, int l); +char *vtoc_ebcdic_dec (char const *source, char *target, int l); +void vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno, + cchh_t *lower, cchh_t *upper); +void vtoc_set_cchh (cchh_t *addr, u_int32_t cc, u_int16_t hh); +u_int32_t vtoc_get_cyl_from_cchh(cchh_t *addr); +u_int16_t vtoc_get_head_from_cchh(cchh_t *addr); +void vtoc_set_cchhb (cchhb_t *addr, u_int32_t cc, u_int16_t hh, u_int8_t b); +u_int32_t vtoc_get_cyl_from_cchhb(cchhb_t *addr); +u_int16_t vtoc_get_head_from_cchhb(cchhb_t *addr); +u_int64_t cchhb2blk(cchhb_t *p, struct fdasd_hd_geometry *geo); +u_int64_t cchh2blk (cchh_t *p, struct fdasd_hd_geometry *geo); +u_int32_t cchh2trk (cchh_t *p, struct fdasd_hd_geometry *geo); +void vtoc_set_date (labeldate_t *d, u_int8_t year, u_int16_t day); + +void vtoc_volume_label_init (volume_label_t *vlabel); + +int vtoc_read_volume_label (int fd, unsigned long vlabel_start, + volume_label_t *vlabel); + +int vtoc_write_volume_label (int fd, unsigned long vlabel_start, + volume_label_t const *vlabel); + +void vtoc_volume_label_set_volser (volume_label_t *vlabel, char const *volser); + +char *vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser); + +void vtoc_volume_label_set_key (volume_label_t *vlabel, char const *key); + +void vtoc_volume_label_set_label (volume_label_t *vlabel, char const *lbl); + +char *vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl); + +void vtoc_read_label (int fd, unsigned long position, format1_label_t *f1, + format4_label_t *f4, format5_label_t *f5, + format7_label_t *f7); + +void vtoc_write_label (int fd, unsigned long position, + format1_label_t const *f1, + format4_label_t const *f4, + format5_label_t const *f5, + format7_label_t const *f7, + format9_label_t const *f9); + +void vtoc_init_format1_label (unsigned int blksize, + extent_t *part_extent, format1_label_t *f1); + +void vtoc_init_format4_label (format4_label_t *f4lbl, + unsigned int compat_cylinders, + unsigned int real_cylinders, + unsigned int tracks, + unsigned int blocks, + unsigned int blksize, + u_int16_t dev_type); + +void vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1, + u_int16_t unused_update); + +void vtoc_init_format5_label (format5_label_t *f5); + +void vtoc_update_format5_label_add (format5_label_t *f5, int verbose, + int trk, u_int16_t a, u_int16_t b, + u_int8_t c); + +void vtoc_update_format5_label_del (format5_label_t *f5, int verbose, + int trk, u_int16_t a, u_int16_t b, + u_int8_t c); + +void vtoc_init_format7_label (format7_label_t *f7); + +void vtoc_update_format7_label_add (format7_label_t *f7, int verbose, + u_int32_t a, u_int32_t b); + +void vtoc_update_format7_label_del (format7_label_t *f7, int verbose, + u_int32_t a, u_int32_t b); + +void vtoc_init_format8_label (unsigned int blksize, + extent_t *part_extent, format1_label_t *f1); + +void vtoc_update_format8_label (cchhb_t *associated_f9, format1_label_t *f8); + +void vtoc_init_format9_label (format9_label_t *f9); + +void vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5, + format7_label_t *f7, char ch, int verbose, + u_int32_t start, u_int32_t stop, u_int32_t cyl, + u_int32_t trk); + +#endif /* VTOC_H */ diff --git a/include/parted/vtoc.in.h b/include/parted/vtoc.in.h new file mode 100644 index 0000000..c2756f9 --- /dev/null +++ b/include/parted/vtoc.in.h @@ -0,0 +1,387 @@ +/* + * File...........: s390-tools/dasdview/vtoc.h + * Author(s)......: Horst Hummel <horst.hummel@de.ibm.com> + * Bugreports.to..: <Linux390@de.ibm.com> + * + * This is a user-space copy of the kernel vtoc,h. + * + * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2002 + * + * History of changes (starts March 2002) + * 2002-03-12 initial + */ + +#ifndef VTOC_H +#define VTOC_H + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <ctype.h> +#include <time.h> +#include <fcntl.h> +#include <unistd.h> + +#include <sys/stat.h> +#include <sys/ioctl.h> + +#define LINE_LENGTH 80 +#define VTOC_START_CC 0x0 +#define VTOC_START_HH 0x1 +#define FIRST_USABLE_CYL 1 +#define FIRST_USABLE_TRK 2 + +#define DASD_3380_TYPE 13148 +#define DASD_3390_TYPE 13200 +#define DASD_9345_TYPE 37701 + +#define DASD_3380_VALUE 0xbb60 +#define DASD_3390_VALUE 0xe5a2 +#define DASD_9345_VALUE 0xbc98 + +#define VOLSER_LENGTH 6 +#define BIG_DISK_SIZE 0x10000 +#define LV_COMPAT_CYL 0xFFFE + +/***************************************************************************** + * SECTION: Definition from hdreq.h * + *****************************************************************************/ + +struct fdasd_hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; +}; + + +typedef struct ttr ttr_t; +typedef struct cchhb cchhb_t; +typedef struct cchh cchh_t; +typedef struct labeldate labeldate_t; +typedef struct volume_label volume_label_t; +typedef struct cms_volume_label cms_volume_label_t; +typedef struct extent extent_t; +typedef struct dev_const dev_const_t; +typedef struct format1_label format1_label_t; +typedef struct format4_label format4_label_t; +typedef struct ds5ext ds5ext_t; +typedef struct format5_label format5_label_t; +typedef struct ds7ext ds7ext_t; +typedef struct format7_label format7_label_t; +typedef struct format9_label format9_label_t; + +struct __attribute__ ((packed)) ttr { + u_int16_t tt; + u_int8_t r; +}; + +struct __attribute__ ((packed)) cchhb { + u_int16_t cc; + u_int16_t hh; + u_int8_t b; +}; + +struct __attribute__ ((packed)) cchh { + u_int16_t cc; + u_int16_t hh; +}; + +struct __attribute__ ((packed)) labeldate { + u_int8_t year; + u_int16_t day; +}; + +/* + * The following structure is a merger of the cdl and ldl volume label. + * On an ldl disk there is no key information, so when reading an + * ldl label from disk, the data should be copied at the address of vollbl. + * On the other side, the field ldl_version is reserved in a cdl record + * and the field formatted_blocks exists only for ldl labels. So when + * reading a cdl label from disk, the formatted_blocks field will contain + * arbitrary data. + * This layout may be a bit awkward, but the advantage of having the + * same label type for both disk layout types is bigger than the effort + * for taking a bit of extra care at the fringes. + */ + +struct __attribute__ ((packed)) volume_label { + char volkey[4]; /* volume key = volume label */ + char vollbl[4]; /* volume label ("VOL1" in EBCDIC) */ + char volid[6]; /* volume identifier */ + u_int8_t security; /* security byte */ + cchhb_t vtoc; /* VTOC address */ + char res1[5]; /* reserved */ + char cisize[4]; /* CI-size for FBA,... */ + /* ...blanks for CKD */ + char blkperci[4]; /* no of blocks per CI (FBA), blanks for CKD */ + char labperci[4]; /* no of labels per CI (FBA), blanks for CKD */ + char res2[4]; /* reserved */ + char lvtoc[14]; /* owner code for LVTOC */ + char res3[28]; /* reserved */ + char ldl_version; /* version number, valid for ldl format */ + u_int64_t formatted_blocks; /* valid when ldl_version >= "2" (in + EBCDIC) */ +}; + +/* + * See: + * z/VM V5R2.0 CMS Planning and Administration + * SC24-6078-01 + * What CMS Does / Disk and File Management / Disk File Format + * http://publib.boulder.ibm.com/infocenter/zvm/v5r4/topic/com.ibm.zvm.v54.dmsd1/hcsg2b1018.htm + */ +struct __attribute__ ((packed)) cms_volume_label { + char label_id[4]; /* Label identifier ("CMS1" in EBCDIC) */ + char vol_id[6]; /* Volume identifier */ + char version_id[2]; /* Version identifier ("\0\0") */ + u_int32_t block_size; /* Disk block size (512, 1024, 2048 or 4096) */ + u_int32_t origin_ptr; /* Disk origin pointer (4 or 5) */ + u_int32_t usable_count; /* Number of usable cylinders/blocks */ + u_int32_t formatted_count; /* Max # of formatted cylinders/blocks */ + u_int32_t block_count; /* Disk size in CMS blocks */ + u_int32_t used_count; /* Number of CMS blocks in use */ + u_int32_t fst_size; /* File Status Table (FST) size (64) */ + u_int32_t fst_count; /* Number of FSTs per CMS block */ + char format_date[6]; /* Disk FORMAT date (YYMMDDhhmmss) */ + char reserved1[2]; /* Reserved fields. + The low-order bit of the first byte is a + century flag. 0 = 1900s, 1 = 2000s. + It is used in conjunction with + "format_date" to determine the + four-digit year. */ + u_int32_t disk_offset; /* Offset in blocks to the start of the + reserved file when the disk is reserved. + This is the number of blocks to skip + before the partition starts. */ + u_int32_t map_block; /* Allocation map block with next hole */ + u_int32_t hblk_disp; /* Displacement in HBLK data of next hole */ + u_int32_t user_disp; /* Disp into user part of allocation map */ + u_int32_t open_files; /* Count of SFS open files for this ADT. + open_files is not really part of the + volume label. It is not used for + minidisks. */ + char segment_name[8]; /* Name of the shared segment. + segment_name is not really part of the + volume label. It is not stored on disk. */ +}; + +struct __attribute__ ((packed)) extent { + u_int8_t typeind; /* extent type indicator */ + u_int8_t seqno; /* extent sequence number */ + cchh_t llimit; /* starting point of this extent */ + cchh_t ulimit; /* ending point of this extent */ +}; + +struct __attribute__ ((packed)) dev_const { + u_int16_t DS4DSCYL; /* number of logical cyls */ + u_int16_t DS4DSTRK; /* number of tracks in a logical cylinder */ + u_int16_t DS4DEVTK; /* device track length */ + u_int8_t DS4DEVI; /* non-last keyed record overhead */ + u_int8_t DS4DEVL; /* last keyed record overhead */ + u_int8_t DS4DEVK; /* non-keyed record overhead differential */ + u_int8_t DS4DEVFG; /* flag byte */ + u_int16_t DS4DEVTL; /* device tolerance */ + u_int8_t DS4DEVDT; /* number of DSCB's per track */ + u_int8_t DS4DEVDB; /* number of directory blocks per track */ +}; + +/* + * format 1 and format 8 label have the same layout so we use the following + * structure for both. + */ +struct __attribute__ ((packed)) format1_label { + char DS1DSNAM[44]; /* data set name */ + u_int8_t DS1FMTID; /* format identifier */ + char DS1DSSN[6]; /* data set serial number */ + u_int16_t DS1VOLSQ; /* volume sequence number */ + labeldate_t DS1CREDT; /* creation date: ydd */ + labeldate_t DS1EXPDT; /* expiration date */ + u_int8_t DS1NOEPV; /* number of extents on volume */ + u_int8_t DS1NOBDB; /* no. of bytes used in last direction blk */ + u_int8_t DS1FLAG1; /* flag 1 */ + char DS1SYSCD[13]; /* system code */ + labeldate_t DS1REFD; /* date last referenced */ + u_int8_t DS1SMSFG; /* system managed storage indicators */ + u_int8_t DS1SCXTF; /* sec. space extension flag byte */ + u_int16_t DS1SCXTV; /* secondary space extension value */ + u_int8_t DS1DSRG1; /* data set organisation byte 1 */ + u_int8_t DS1DSRG2; /* data set organisation byte 2 */ + u_int8_t DS1RECFM; /* record format */ + u_int8_t DS1OPTCD; /* option code */ + u_int16_t DS1BLKL; /* block length */ + u_int16_t DS1LRECL; /* record length */ + u_int8_t DS1KEYL; /* key length */ + u_int16_t DS1RKP; /* relative key position */ + u_int8_t DS1DSIND; /* data set indicators */ + u_int8_t DS1SCAL1; /* secondary allocation flag byte */ + char DS1SCAL3[3]; /* secondary allocation quantity */ + ttr_t DS1LSTAR; /* last used track and block on track */ + u_int16_t DS1TRBAL; /* space remaining on last used track */ + u_int16_t res1; /* reserved */ + extent_t DS1EXT1; /* first extent description */ + extent_t DS1EXT2; /* second extent description */ + extent_t DS1EXT3; /* third extent description */ + cchhb_t DS1PTRDS; /* possible pointer to f2 or f3 DSCB */ +}; + +struct __attribute__ ((packed)) format4_label { + char DS4KEYCD[44]; /* key code for VTOC labels: 44 times 0x04 */ + u_int8_t DS4IDFMT; /* format identifier */ + cchhb_t DS4HPCHR; /* highest address of a format 1 DSCB */ + u_int16_t DS4DSREC; /* number of available DSCB's */ + cchh_t DS4HCCHH; /* CCHH of next available alternate track */ + u_int16_t DS4NOATK; /* number of remaining alternate tracks */ + u_int8_t DS4VTOCI; /* VTOC indicators */ + u_int8_t DS4NOEXT; /* number of extents in VTOC */ + u_int8_t DS4SMSFG; /* system managed storage indicators */ + u_int8_t DS4DEVAC; /* number of alternate cylinders. + Subtract from first two bytes of + DS4DEVSZ to get number of usable + cylinders. can be zero. valid + only if DS4DEVAV on. */ + dev_const_t DS4DEVCT; /* device constants */ + char DS4AMTIM[8]; /* VSAM timestamp */ + char DS4AMCAT[3]; /* VSAM catalog indicator */ + char DS4R2TIM[8]; /* VSAM volume/catalog match timestamp */ + char res1[5]; /* reserved */ + char DS4F6PTR[5]; /* pointer to first format 6 DSCB */ + extent_t DS4VTOCE; /* VTOC extent description */ + char res2[10]; /* reserved */ + u_int8_t DS4EFLVL; /* extended free-space management level */ + cchhb_t DS4EFPTR; /* pointer to extended free-space info */ + char res3; /* reserved */ + u_int32_t DS4DCYL; /* number of logical cyls */ + char res4[2]; /* reserved */ + u_int8_t DS4DEVF2; /* device flags */ + char res5; /* reserved */ +}; + +struct __attribute__ ((packed)) ds5ext { + u_int16_t t; /* RTA of the first track of free extent */ + u_int16_t fc; /* number of whole cylinders in free ext. */ + u_int8_t ft; /* number of remaining free tracks */ +}; + +struct __attribute__ ((packed)) format5_label { + char DS5KEYID[4]; /* key identifier */ + ds5ext_t DS5AVEXT; /* first available (free-space) extent. */ + ds5ext_t DS5EXTAV[7]; /* seven available extents */ + u_int8_t DS5FMTID; /* format identifier */ + ds5ext_t DS5MAVET[18]; /* eighteen available extents */ + cchhb_t DS5PTRDS; /* pointer to next format5 DSCB */ +}; + +struct __attribute__ ((packed)) ds7ext { + u_int32_t a; /* starting RTA value */ + u_int32_t b; /* ending RTA value + 1 */ +}; + +struct __attribute__ ((packed)) format7_label { + char DS7KEYID[4]; /* key identifier */ + ds7ext_t DS7EXTNT[5]; /* space for 5 extent descriptions */ + u_int8_t DS7FMTID; /* format identifier */ + ds7ext_t DS7ADEXT[11]; /* space for 11 extent descriptions */ + char res1[2]; /* reserved */ + cchhb_t DS7PTRDS; /* pointer to next FMT7 DSCB */ +}; + +struct __attribute__ ((packed)) format9_label { + u_int8_t DS9KEYID; /* key code for format 9 labels (0x09) */ + u_int8_t DS9SUBTY; /* subtype (0x01) */ + u_int8_t DS9NUMF9; /* number of F9 datasets */ + u_int8_t res1[41]; /* reserved */ + u_int8_t DS9FMTID; /* format identifier */ + u_int8_t res2[95]; /* reserved */ +}; + +char *vtoc_ebcdic_enc (char const *source, char *target, int l); +char *vtoc_ebcdic_dec (char const *source, char *target, int l); +void vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno, + cchh_t *lower, cchh_t *upper); +void vtoc_set_cchh (cchh_t *addr, u_int32_t cc, u_int16_t hh); +u_int32_t vtoc_get_cyl_from_cchh(cchh_t *addr); +u_int16_t vtoc_get_head_from_cchh(cchh_t *addr); +void vtoc_set_cchhb (cchhb_t *addr, u_int32_t cc, u_int16_t hh, u_int8_t b); +u_int32_t vtoc_get_cyl_from_cchhb(cchhb_t *addr); +u_int16_t vtoc_get_head_from_cchhb(cchhb_t *addr); +u_int64_t cchhb2blk(cchhb_t *p, struct fdasd_hd_geometry *geo); +u_int64_t cchh2blk (cchh_t *p, struct fdasd_hd_geometry *geo); +u_int32_t cchh2trk (cchh_t *p, struct fdasd_hd_geometry *geo); +void vtoc_set_date (labeldate_t *d, u_int8_t year, u_int16_t day); + +void vtoc_volume_label_init (volume_label_t *vlabel); + +int vtoc_read_volume_label (int fd, unsigned long vlabel_start, + volume_label_t *vlabel); + +int vtoc_write_volume_label (int fd, unsigned long vlabel_start, + volume_label_t const *vlabel); + +void vtoc_volume_label_set_volser (volume_label_t *vlabel, char const *volser); + +char *vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser); + +void vtoc_volume_label_set_key (volume_label_t *vlabel, char const *key); + +void vtoc_volume_label_set_label (volume_label_t *vlabel, char const *lbl); + +char *vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl); + +void vtoc_read_label (int fd, unsigned long position, format1_label_t *f1, + format4_label_t *f4, format5_label_t *f5, + format7_label_t *f7); + +void vtoc_write_label (int fd, unsigned long position, + format1_label_t const *f1, + format4_label_t const *f4, + format5_label_t const *f5, + format7_label_t const *f7, + format9_label_t const *f9); + +void vtoc_init_format1_label (unsigned int blksize, + extent_t *part_extent, format1_label_t *f1); + +void vtoc_init_format4_label (format4_label_t *f4lbl, + unsigned int compat_cylinders, + unsigned int real_cylinders, + unsigned int tracks, + unsigned int blocks, + unsigned int blksize, + u_int16_t dev_type); + +void vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1, + u_int16_t unused_update); + +void vtoc_init_format5_label (format5_label_t *f5); + +void vtoc_update_format5_label_add (format5_label_t *f5, int verbose, + int trk, u_int16_t a, u_int16_t b, + u_int8_t c); + +void vtoc_update_format5_label_del (format5_label_t *f5, int verbose, + int trk, u_int16_t a, u_int16_t b, + u_int8_t c); + +void vtoc_init_format7_label (format7_label_t *f7); + +void vtoc_update_format7_label_add (format7_label_t *f7, int verbose, + u_int32_t a, u_int32_t b); + +void vtoc_update_format7_label_del (format7_label_t *f7, int verbose, + u_int32_t a, u_int32_t b); + +void vtoc_init_format8_label (unsigned int blksize, + extent_t *part_extent, format1_label_t *f1); + +void vtoc_update_format8_label (cchhb_t *associated_f9, format1_label_t *f8); + +void vtoc_init_format9_label (format9_label_t *f9); + +void vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5, + format7_label_t *f7, char ch, int verbose, + u_int32_t start, u_int32_t stop, u_int32_t cyl, + u_int32_t trk); + +#endif /* VTOC_H */ |