#!/bin/sh - # # Copyright (c) 1985 The Regents of the University of California. # All rights reserved. # # This code is derived from software contributed to Berkeley by # James A. Woods, derived from original work by Spencer Thomas # and Joseph Orost. # # Redistribution and use in source and binary forms are permitted # provided that the above copyright notice and this paragraph are # duplicated in all such forms and that any documentation, # advertising materials, and other materials related to such # distribution and use acknowledge that the software was developed # by the University of California, Berkeley. The name of the # University may not be used to endorse or promote products derived # from this software without specific prior written permission. # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # @(#)usermem.sh 5.5 (Berkeley) 10/15/88 # : This shell script snoops around to find the maximum amount of available : user memory. These variables need to be set only if there is no : /usr/adm/messages. KMEM, UNIX, and CLICKSIZE can be set on the command : line, if desired, e.g. UNIX=/unix KMEM=/dev/kmem # User needs read access to KMEM UNIX= # VAX CLICKSIZE=512, UNIX=/vmunix # PDP-11 CLICKSIZE=64, UNIX=/unix # CADLINC 68000 CLICKSIZE=4096, UNIX=/unix # Perkin-Elmer 3205 CLICKSIZE=4096, UNIX=/edition7 # Perkin-Elmer all others, CLICKSIZE=2048, UNIX=/edition7 CLICKSIZE=512 eval $* if test -n "$UNIX" then : User must have specified it already. elif test -r /vmunix then UNIX=/vmunix CLICKSIZE=512 # Probably VAX elif test -r /edition7 then UNIX=/edition7 CLICKSIZE=2048 # Perkin-Elmer: change to 4096 on a 3205 elif test -r /unix then UNIX=/unix # Could be anything fi SIZE=0 # messages: probably the most transportable if test -r /usr/adm/messages -a -s /usr/adm/messages then SIZE=`grep avail /usr/adm/messages | sed -n '$s/.*[ ]//p'` fi if test 0$SIZE -le 0 # no SIZE in /usr/adm/messages then if test -r $KMEM # Readable KMEM then if test -n "$UNIX" then SIZE=`echo maxmem/D | adb $UNIX $KMEM | sed -n '$s/.*[ ]//p'` if test 0$SIZE -le 0 then SIZE=`echo physmem/D | adb $UNIX $KMEM | sed -n '$s/.*[ ]//p'` fi SIZE=`expr 0$SIZE '*' $CLICKSIZE` fi fi fi case $UNIX in /vmunix) # Assume 4.2bsd: check for resource limits MAXSIZE=`csh -c limit | awk 'BEGIN { MAXSIZE = 1000000 } /datasize|memoryuse/ && NF == 3 { if ($2 < MAXSIZE) MAXSIZE = $2 } END { print MAXSIZE * 1000 }'` if test $MAXSIZE -lt $SIZE then SIZE=$MAXSIZE fi ;; esac if test 0$SIZE -le 0 then echo 0;exit 1 else echo $SIZE fi