Files
startup/startup-vxWorks

82 lines
2.3 KiB
Plaintext

# Generic vxWorks startup script
STRINGBUFFER=malloc(256)
# Set target name as IOC name
IOC=&sysBootParams+60
sprintf STRINGBUFFER, "IOC=%s", IOC
putenv STRINGBUFFER
puts STRINGBUFFER
# Set bootpc (still needed?)
BOOTPC=&sysBootHost
sprintf STRINGBUFFER, "BOOTPC=%s", BOOTPC
putenv STRINGBUFFER
puts STRINGBUFFER
# Set the prompt
sprintf STRINGBUFFER, "%s (startup.script aborted) > ", IOC
shellPromptSet STRINGBUFFER
# Set EPICS_HOST_ARCH according to vxWorks version and cpu type
VMI=(*runtimeVersion>>8)&255
EPICS_HOST_ARCH=malloc(16)
sprintf EPICS_HOST_ARCH, "V6%c-ppc60%d", VMI, sysCpu-90
sprintf STRINGBUFFER, "EPICS_HOST_ARCH=%s", EPICS_HOST_ARCH
putenv STRINGBUFFER
puts STRINGBUFFER
# Set DNS (necessary when not using DHCP)
resolvInit "129.129.190.11","psi.ch"
# Guess FACILITY from sysBootHost name
IS_SLS=(sysBootHost&0xdf000000)==0x58000000||(sysBootHost&0xdfdfdf00)==0x534c5300
IS_HIPA=(sysBootHost&0xdfdfdfdf)==0x48495041
IS_PROSCAN=(sysBootHost&0xdfdfdf00)==0x50524f00
IS_STANDALONE=!(IS_SLS||IS_HIPA||IS_PROSCAN)
FACILITY=IS_SLS?"sls":IS_HIPA?"hipa":IS_PROSCAN?"proscan":""
printf "FACILITY = %s\n", FACILITY
# Do the NFS mounts (only one of each mount will succeed)
nfsAuthUnixSet &sysBootHost,500,IS_SLS?35365:IS_HIPA?35344:IS_PROSCAN?35401:9102
NFS_SERVER=malloc(16)
sprintf NFS_SERVER,"%s-fs",FACILITY
NFS_SERVER=IS_STANDALONE?&sysBootHost:NFS_SERVER
NFS_BASE=malloc(16)
sprintf NFS_BASE,"/export/%s",FACILITY
NFS_BASE=IS_STANDALONE?"":NFS_BASE
NFS_DIR=malloc(48)
sprintf NFS_DIR,"%s/ioc/epics",NFS_BASE
puts NFS_SERVER
puts NFS_DIR
nfsMount NFS_SERVER,NFS_DIR,"/epics"
nfsMount NFS_SERVER,"/usr/local/epics","/epics"
sprintf NFS_DIR,"%s/ioc",NFS_BASE
nfsMount NFS_SERVER,NFS_DIR,"/ioc"
sprintf STRINGBUFFER,strstr(&sysBootHost,"129-")?"nfsMount \"%s\",\"/export/gfa/ioc/data\",\"/ioc/data\"":";",NFS_SERVER
execute STRINGBUFFER
# We should now have /epics and /ioc (and /ioc/data on office network)
nfsDevShow
# Create some path variables
HOME=malloc(80)
sprintf HOME, "/ioc/%s", IOC
sprintf STRINGBUFFER, "HOME=%s", HOME
putenv STRINGBUFFER
cd HOME
pwd
CFG=malloc(80)
sprintf CFG, "%s/cfg", HOME
sprintf STRINGBUFFER, "CFG=%s", CFG
putenv STRINGBUFFER
PVA=0
# load IOC startup script
< startup.script
# Set the final prompt
sprintf STRINGBUFFER, "%s > ", IOC
shellPromptSet STRINGBUFFER