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