Files
startup/startup-vxWorks

83 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
VX6=(*runtimeVersion>>24)-'5'
VMI=(*runtimeVersion>>8)&255
EPICS_HOST_ARCH=malloc(16)
sprintf EPICS_HOST_ARCH, "%s%c-ppc60%d", VX6 ? "V6" : "T", VX6 ? VMI : VMI>'3' ? '2' : '1', sysCpu-90
sprintf STRINGBUFFER, "EPICS_HOST_ARCH=%s", EPICS_HOST_ARCH
putenv STRINGBUFFER
puts STRINGBUFFER
# Router for SLS machine net (fails otherwise but that's ok)
routeAdd "0.0.0.0","172.20.10.1"
# Set DNS (if necessary)
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
FACILITY=IS_SLS?"sls":IS_HIPA?"hipa":IS_PROSCAN?"proscan":"unknown"
printf "FACILITY = %s\n", FACILITY
# Set NFS user 'ioc' and group 'unx-FACILITY_ioc'
nfsAuthUnixSet &sysBootHost,500,IS_SLS?35365:IS_HIPA?35344:IS_PROSCAN?35401:9102
# Do the NFS mounts (only one of each mount will succeed)
NFS_SERVER="gfa-vfs-ioc"
MOUNTDIR=malloc(48)
sprintf MOUNTDIR,"/export/%s/ioc/epics",FACILITY
nfsMount NFS_SERVER,MOUNTDIR,"/epics"
nfsMount NFS_SERVER,"/usr/local/epics","/epics"
nfsMount &sysBootHost,"/usr/local/epics","/epics"
sprintf MOUNTDIR,"/export/%s/ioc",FACILITY
nfsMount NFS_SERVER,MOUNTDIR,"/ioc"
nfsMount &sysBootHost,"/ioc","/ioc"
sprintf MOUNTDIR,"/export/%s/ioc_data",FACILITY
nfsMount NFS_SERVER,MOUNTDIR,"/ioc/data"
nfsMount &sysBootHost,"/ioc/data","/ioc/data"
# We should now have /epics, /ioc and maybe /ioc/data
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