1
  9   ˆl–Ü4ý( ©³( 	Å€fàD¦-ÿÁ741a–Ðz¾””ÔD¨ 	ÅíÆÅq‘)‹FÿÀ å    # SPDX-License-Identifier: GPL-2.0

ifeq ($(CONFIG_COMMON_CLK), y)
obj-$(CONFIG_ARCH_DAVINCI_DA8XX)	+= da8xx-cfgchip.o

obj-y += pll.o
obj-$(CONFIG_ARCH_DAVINCI_DA830)	+= pll-da830.o
obj-$(CONFIG_ARCH_DAVINCI_DA850)	+= pll-da850.o
obj-$(CONFIG_ARCH_DAVINCI_DM355)	+= pll-dm355.o
obj-$(CONFIG_ARCH_DAVINCI_DM365)	+= pll-dm365.o
obj-$(CONFIG_ARCH_DAVINCI_DM644x)	+= pll-dm644x.o
obj-$(CONFIG_ARCH_DAVINCI_DM646x)	+= pll-dm646x.o

obj-y += psc.o
obj-$(CONFIG_ARCH_DAVINCI_DA830)	+= psc-da830.o
obj-$(CONFIG_ARCH_DAVINCI_DA850)	+= psc-da850.o
obj-$(CONFIG_ARCH_DAVINCI_DM355)	+= psc-dm355.o
obj-$(CONFIG_ARCH_DAVINCI_DM365)	+= psc-dm365.o
obj-$(CONFIG_ARCH_DAVINCI_DM644x)	+= psc-dm644x.o
obj-$(CONFIG_ARCH_DAVINCI_DM646x)	+= psc-dm646x.o
endif
  0   ˆl–ßi~”Ja,jm@?q‘\TÅ£ÃƒuæE_ŒuÐb&=LyYÿÀÂ ˜    newns () {
  [ "$OS_PROBER_NEWNS" ] || exec /usr/libexec/os-prober/newns "$0" "$@"
}

cleanup_tmpdir=false
cleanup () {
  if $cleanup_tmpdir; then
    rm -rf "$OS_PROBER_TMP"
  fi
}

require_tmpdir() {
  if [ -z "$OS_PROBER_TMP" ]; then
    if type mktemp >/dev/null 2>&1; then
      export OS_PROBER_TMP="$(mktemp -d /tmp/os-prober.XXXXXX)"
      cleanup_tmpdir=:
      trap cleanup EXIT HUP INT QUIT TERM
    else
      export OS_PROBER_TMP=/tmp
    fi
  fi
}

count_for() {
  _labelprefix="$1"
  _result=$(grep "^${_labelprefix} " /var/lib/os-prober/labels 2>/dev/null || true)

  if [ -z "$_result" ]; then
    return
  else
    echo "$_result" | cut -d' ' -f2
  fi
}

count_next_label() {
  require_tmpdir

  _labelprefix="$1"
  _cfor="$(count_for "${_labelprefix}")"

  if [ -z "$_cfor" ]; then
    echo "${_labelprefix} 1" >> /var/lib/os-prober/labels
  else
    sed "s/^${_labelprefix} ${_cfor}/${_labelprefix} $(($_cfor + 1))/" /var/lib/os-prober/labels > "$OS_PROBER_TMP/os-prober.tmp"
    mv "$OS_PROBER_TMP/os-prober.tmp" /var/lib/os-prober/labels
  fi
  
  echo "${_labelprefix}${_cfor}"
}

progname=
cache_progname() {
  case $progname in
    '')
      progname="${0##*/}"
      ;;
  esac
}

# fd_logger: bind value now, possibly after assigning default. 
eval '
  log() {
    cache_progname
    echo "$progname: $@"  1>&'${fd_logger:=9}'
  }
'
export fd_logger  # so subshells inherit current value by default

error() {
  log "error: $@"
}

warn() {
  log "warning: $@"
}

debug() {
  if [ -z "$OS_PROBER_DISABLE_DEBUG" ]; then
    log "debug: $@"
  fi
}

# fd_result: bind value now, possibly after assigning default.
eval '
  result() {
    log "result:" "$@"
    echo "$@"  1>&'${fd_result:=1}'
  }
'
export fd_result  # so subshells inherit current value by default

# shim to make it easier to use os-prober outside d-i
if ! type mapdevfs >/dev/null 2>&1; then
  mapdevfs () {
    echo "$1"
  }
fi

item_in_dir () {
	if [ "$1" = "-q" ]; then
		q="-q"
		shift 1
	else
		q=""
	fi
	[ -d "$2" ] || return 1
	# find files with any case
	ls -1 "$2" | grep $q -i "^$1$"
}

# We can't always tell the filesystem type up front, but if we have the
# information then we should use it. Note that we can't use block-attr here
# as it's only available in udebs.
# If not detected after different attempts then "NOT-DETECTED" will be printed
# because function is not supposed to exit error codes.
fs_type () {
	local fstype=""
	if (export PATH="/lib/udev:$PATH"; type vol_id) >/dev/null 2>&1; then
		PATH="/lib/udev:$PATH" \
			fstype=$(vol_id --type "$1" 2>/dev/null || true)
		[ -z "$fstype" ] || { echo "$fstype"; return; }
	fi
	if type lsblk >/dev/null 2>&1 ; then
		fstype=$(lsblk --nodeps --noheading --output FSTYPE -- "$1" || true)
		[ -z "$fstype" ] || { echo "$fstype"; return; }
	fi
	if type blkid >/dev/null 2>&1; then
		fstype=$(blkid -o value -s TYPE "$1" 2>/dev/null || true)
		[ -z "$fstype" ] || { echo "$fstype"; return; }
	fi
	echo "NOT-DETECTED"
}

is_dos_extended_partition() {
	if type blkid >/dev/null 2>&1; then
		local output

		output="$(blkid -o export $1)"

		# old blkid (util-linux << 2.24) errors out on extended p.
		if [ "$?" = "2" ]; then
			return 0
		fi

		# dos parti