83 lines
2.3 KiB
Plaintext
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
|