#!/bin/sh
#
# Start read all files
#

clear_failure_count_bcm74 () {
  local REG_FAILURE_COUNT="0x104083FC"
  devmem $REG_FAILURE_COUNT 32 0
}

clear_failure_count_bcm7252 () {
  local REG_FAILURE_COUNT="0xf04105fc"
  devmem $REG_FAILURE_COUNT 32 0
}

clear_failure_count_arl () {
  echo 0 >/proc/antirebootloop
}

clear_failure_count () {
  grep -q 'system type.*BCM74' /proc/cpuinfo && clear_failure_count_bcm74
  local platform=$(cat /etc/platform)
  [ "$platform" = GFHD254 ] && clear_failure_count_bcm7252
  [ -f /proc/antirebootloop ] && clear_failure_count_arl
}

case "$1" in
  start)
    (
      nice -n 19 readallfiles -q / &&
      clear_failure_count
    ) 2>&1 | logos readall &
    ;;
  stop)
    pkillwait -x readallfiles
    ;;
  restart|reload)
    $0 stop; $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}" >&2
    exit 1
esac
