#!/sbin/runscript # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: $ depend() { need localmount } # Starting with kernel 2.6.8 there is a different syntax # for the pktsetup program. kernel_major=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f2` )) kernel_minor=$(( `uname -r | cut -d'-' -f1 | cut -d'.' -f3` )) # The pktsetup program doesn't seem to return any error codes. # So, we do our error checking by seeing whether the block # device has been set up or torn down correctly. This is not # terribly elegent. Blech. start() { local i local minor=0 local retval=0 local last_result=0 for i in ${cdrw_list} do ebegin "Enabling CD-RW packet writing on ${i}" if [ ! -e "/dev/pktcdvd" ] then /sbin/modprobe -a pktcdvd fi if [ ${kernel_major} -ge 6 ] && [ ${kernel_minor} -ge 8 ] then /usr/bin/pktsetup ${minor} ${i} >/dev/null 2>&1 else /usr/bin/pktsetup /dev/pktcdvd/${minor} ${i} >/dev/null 2>&1 fi if [ -b /dev/pktcdvd/${minor} ] then last_result=0 else last_result=1 fi retval=$(( ${retval} + ${last_result} )) minor=$(( ${minor} + 1 )) if [ ${last_result} -gt 0 ] then ewend ${last_result} "Failed to enable packet writing on ${i}" fi done eend ${retval} } stop() { local i local minor=0 local retval=0 local last_result=0 for i in ${cdrw_list} do ebegin "Disabling CD-RW packet writing on ${i}" umount /dev/pktcdvd/${minor} >/dev/null 2>&1 || true if [ ${kernel_major} -ge 6 ] && [ ${kernel_minor} -ge 8 ] then /usr/bin/pktsetup -d ${minor} >/dev/null 2>&1 else /usr/bin/pktsetup -d /dev/pktcdvd/${minor} ${i} >/dev/null 2>&1 fi if [ -b /dev/pktcdvd/${minor} ] then last_result=1 else last_result=0 fi retval=$(( ${retval} + ${last_result} )) minor=$(( ${minor} + 1 )) if [ ${last_result} -gt 0 ] then ewend ${last_result} "Failed to disable packet writing on ${i}" fi done eend ${retval} }