mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh /etc/rc.common
 | |
| # Copyright (C) 2008 OpenWrt.org
 | |
| START=14
 | |
| 
 | |
| load_modules() {
 | |
| 	local section="$1"
 | |
| 	config_get "size_kbytes" "$section" "size_kbytes"
 | |
| 	config_get "backup_dev" "$section" "backup_dev"
 | |
| 	#CC_PARAM_STR="memlimit_kb=$1 backing_dev=$BACKING_DEV"
 | |
| 	config_get_bool "enabled" "$section" "enabled" '1'
 | |
| 	if [ "$enabled" -gt 0 ]; then
 | |
| 		if [ "`cat /proc/swaps | grep 'ramzswap0'`" != "" ]; then
 | |
| 			echo "compcache already loaded"
 | |
| 		else
 | |
| 			if [ "$backup_dev" != "" ]; then
 | |
| 				params_set="memlimit_kb=$size_kbytes backing_swap=$backup_dev"
 | |
| 			else
 | |
| 				params_set="disksize_kb=$size_kbytes"
 | |
| 			fi
 | |
| 			if [ "`lsmod | grep 'ramzswap'`" == "" ]; then
 | |
| 				insmod lzo1x
 | |
| 				insmod ramzswap $params_set
 | |
| 				sleep 2
 | |
| 				swapon /dev/ramzswap0
 | |
| 			fi
 | |
| 		fi
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| remove_modules() {
 | |
| 	local section="$1"
 | |
| 	config_get_bool "enabled" "$section" "enabled" '1'
 | |
| 	if [ "$enabled" -gt 0 ]; then
 | |
| 		[ "`cat /proc/swaps | grep 'ramzswap0'`" != "" ] && swapoff /dev/ramzswap0
 | |
| 		[ "`lsmod | grep 'ramzswap'`" != "" ] && rmmod ramzswap &> /dev/null
 | |
| 		[ "`lsmod | grep 'lzo1x'`" != "" ] && rmmod lzo1x &> /dev/null
 | |
| 	fi
 | |
| }
 | |
| 
 | |
| start() {
 | |
| 	config_load "compcache"
 | |
| 	config_foreach load_modules "compcache"
 | |
| }
 | |
| 
 | |
| stop() {
 | |
| 	config_load "compcache"
 | |
| 	config_foreach remove_modules "compcache"
 | |
| }
 |