#!/usr/bin/openrc-run

. /opt/etc/functions.openrc

HUGEFS=${HUGEFS-"/dev/hugetlb"}

depend()
{
	need procfs
	provide ${SVCNAME}
}

start()
{
	local SYSCTL=/proc/sys/vm/nr_hugepages
	ebegin "Starting \"${SVCNAME}\""
	HPAGES=$((((${GUEST_SIZE_IN_GB}*512))+30))
	echo ${HPAGES} > ${SYSCTL}
	# TODO: add $HPAGES to $(cat ${SYSCTL})
	if [ $(cat ${SYSCTL}) -ne ${HPAGES} ]; then
		update_me
		eerror "${ME}: unable to reserve ${HPAGES} huge pages."
		eend 1
	fi
	[ -d ${HUGEFS} ] || mkdir ${HUGEFS}
	mount -t hugetlbfs none ${HUGEFS}
	eend $?
}

stop()
{
	ebegin "Stopping service \"${SVCNAME}\""
	umount ${HUGEFS}
	rmdir ${HUGEFS}
	# TODO: subtract ${HPAGES} from $(cat ${SYSCTL})
	echo 0 > /proc/sys/vm/nr_hugepages
	eend 0
}
	