#!/bin/bash

# name        : bdflush
# author      : Jens Axboe <axboe@suse.de>
# modified    : Matthias Grimm <joker@cymes.de>
# description : toggle laptop mode in kernel and adjust
#               memory management buffer flush timeouts
# requirements: laptop-mode patch in kernel
# limitations : none 
#
# --- end of public part -- don't change below this line ---

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# source configuration
. config

# kernel default dirty buffer age
DEF_AGE=30
DEF_UPDATE=5

if [ -w /proc/sys/vm/laptop_mode ]; then
  case "$1" in
    powersave)
      AGE=$(($general_FreqBase*$powersave_BufferAge))
      echo "1" > /proc/sys/vm/laptop_mode
      echo "30 500 0 0 $AGE $AGE 60 20 0" > /proc/sys/vm/bdflush
      ;;
    custom)
      AGE=$(($general_FreqBase*$custom_BufferAge))
      echo "1" > /proc/sys/vm/laptop_mode
      echo "30 500 0 0 $AGE $AGE 60 20 0" > /proc/sys/vm/bdflush
      ;;
    performance)
      U_AGE=$(($general_FreqBase*$DEF_UPDATE))
      B_AGE=$(($general_FreqBase*$DEF_AGE))
      echo "0" > /proc/sys/vm/laptop_mode
      echo "30 500 0 0 $U_AGE $B_AGE 60 20 0" > /proc/sys/vm/bdflush
      ;;
    sleep)
      ;;
    wakeup)
      ;;
  esac
fi

exit 0

