summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/modctl.c
diff options
context:
space:
mode:
authorcindi <none@none>2006-02-11 15:36:52 -0800
committercindi <none@none>2006-02-11 15:36:52 -0800
commit7aec1d6e253b21f9e9b7ef68b4d81ab9859b51fe (patch)
tree6d2238a19328181f6effdcd9f45c17b71b905c87 /usr/src/uts/common/os/modctl.c
parent25145214af3b4b0be324f9115e4aee99f1e31edf (diff)
downloadillumos-joyent-7aec1d6e253b21f9e9b7ef68b4d81ab9859b51fe.tar.gz
PSARC 2006/020 FMA for Athlon 64 and Opteron Processors
PSARC 2006/028 eversholt language enhancements 6181364 Eversholt needs method to revise value of a fault's property 6183842 eft can construct extra propagations in the instance tree 6187143 eversholt needs to use fmd_case_add_serd() to add counted ereports against open case 6232253 wildcarding may not pick up matches buried in config path 6284455 eversholt wildcarding and vertical expansion have trouble working together 6298484 properties are not auto-converting to integers in eversholt constraints 6298972 eversholt should be able to mark faults as no-message like the cpumem DE 6298974 nested SERD engines don't work 6298981 eft memory usage could improve by caching common constraint expressions 6323319 call() is not allowing string-valued returns 6323322 a global variable should be allowed as the RHS of an nvpair 6323393 eversholt caches a little too much info when caching constraints 6323554 eversholt type conversion can cause core dump 6328144 libexacct leaks like a really big sieve when faced with non-exacct input 6331093 payloadprop should be able to read and interpret hc scheme fmris 6332245 payloadprop() returns cached value from existing FME when not appropriate 6333617 eversholt should have way to check if a global is defined 6346926 eversholt needs a way to maintain diagnosis statistics 6359264 Provide FMA support for AMD64 processors 6363503 Can not register error handler callbacks for root node 6366821 cpu scheme serial number should be a string 6367031 eft.so leaks memory 6370284 cpumem-diagnosis checks the asru version against FM_EREPORT_VERSION instead of FM_CPU_SCHEME_VERSION 6377319 eft could close cases for resources already in the faulty state 6379498 fmd dies on assertion failure when repairing an fmd module 6381022 fmd_case_insert_event() should reject duplicates and save memory --HG-- rename : usr/src/cmd/fm/schemes/cpu/Makefile.targ => deleted_files/usr/src/cmd/fm/schemes/cpu/Makefile.targ rename : usr/src/cmd/fm/schemes/mem/Makefile.targ => deleted_files/usr/src/cmd/fm/schemes/mem/Makefile.targ rename : usr/src/cmd/fm/topo/Makefile => deleted_files/usr/src/cmd/fm/topo.1/Makefile rename : usr/src/cmd/fm/topo/Makefile.rootdirs => deleted_files/usr/src/cmd/fm/topo.1/Makefile.rootdirs rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T1000/Makefile => deleted_files/usr/src/cmd/fm/topo/files.1/sparc/SUNW,Sun-Fire-T1000/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T1000/platform.topo => deleted_files/usr/src/cmd/fm/topo/files.1/sparc/SUNW,Sun-Fire-T1000/platform.topo rename : usr/src/cmd/fm/topo/files/Makefile => deleted_files/usr/src/cmd/fm/topo/files/Makefile rename : usr/src/cmd/fm/topo/files/Makefile.com => deleted_files/usr/src/cmd/fm/topo/files/Makefile.com rename : usr/src/cmd/fm/topo/files/Makefile.link => deleted_files/usr/src/cmd/fm/topo/files/Makefile.link rename : usr/src/cmd/fm/topo/files/i386/Makefile => deleted_files/usr/src/cmd/fm/topo/files/i386/Makefile rename : usr/src/cmd/fm/topo/files/sparc/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,A70/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,A70/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,A70/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,A70/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-210/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-210/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-210/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-210/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-240/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-240/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-440/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-440/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-CP3010/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T12/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T12/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T12/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T12/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T4/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Netra-T4/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Serverblade1/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Serverblade1/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Serverblade1/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Serverblade1/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-100/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-100/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-100/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-100/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1000/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1000/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1000/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1000/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1500/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1500/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1500/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-1500/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2000/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2000/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2500/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2500/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2500/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Blade-2500/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-15000/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-15000/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-15000/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-15000/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-280R/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-280R/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-480R/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-480R/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-480R/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-480R/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-880/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-880/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-880/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-880/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/pcidev.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/pcidev.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/pciexdev.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/pciexdev.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-T200/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V210/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V210/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V215/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V215/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V240/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V240/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V240/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V240/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V245/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V245/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V245/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V245/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V250/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V250/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V440/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V440/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V440/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V440/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V445/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V445/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V445/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V445/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V490/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V490/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V890/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire-V890/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Sun-Fire/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-250/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-250/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-250/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-250/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-30/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-30/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-30/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-30/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-4/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-4/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-4/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-4/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-5_10/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-5_10/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-5_10/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-5_10/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-60/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-60/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-60/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-60/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-80/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-80/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-80/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,Ultra-80/platform.topo rename : usr/src/cmd/fm/topo/files/sparc/SUNW,UltraAX-i2/Makefile => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,UltraAX-i2/Makefile rename : usr/src/cmd/fm/topo/files/sparc/SUNW,UltraAX-i2/platform.topo => deleted_files/usr/src/cmd/fm/topo/files/sparc/SUNW,UltraAX-i2/platform.topo rename : usr/src/cmd/fm/topo/plugins/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/Makefile rename : usr/src/cmd/fm/topo/plugins/Makefile.plugin => deleted_files/usr/src/cmd/fm/topo/plugins/Makefile.plugin rename : usr/src/cmd/fm/topo/plugins/Makefile.topoonly => deleted_files/usr/src/cmd/fm/topo/plugins/Makefile.topoonly rename : usr/src/cmd/fm/topo/plugins/common/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/common/Makefile rename : usr/src/cmd/fm/topo/plugins/common/pcibus/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/common/pcibus/Makefile rename : usr/src/cmd/fm/topo/plugins/common/pcibus/enumpci.h => deleted_files/usr/src/cmd/fm/topo/plugins/common/pcibus/enumpci.h rename : usr/src/cmd/fm/topo/plugins/common/pcibus/pcibus.c => deleted_files/usr/src/cmd/fm/topo/plugins/common/pcibus/pcibus.c rename : usr/src/cmd/fm/topo/plugins/common/pcibus/pcibus.topo => deleted_files/usr/src/cmd/fm/topo/plugins/common/pcibus/pcibus.topo rename : usr/src/cmd/fm/topo/plugins/common/pciexbus/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/common/pciexbus/Makefile rename : usr/src/cmd/fm/topo/plugins/common/pciexbus/pciexbus.topo => deleted_files/usr/src/cmd/fm/topo/plugins/common/pciexbus/pciexbus.topo rename : usr/src/cmd/fm/topo/plugins/common/pciexrc/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/common/pciexrc/Makefile rename : usr/src/cmd/fm/topo/plugins/common/pciexrc/pciexrc.topo => deleted_files/usr/src/cmd/fm/topo/plugins/common/pciexrc/pciexrc.topo rename : usr/src/cmd/fm/topo/plugins/common/cpu/Makefile => deleted_files/usr/src/cmd/fm/topo/plugins/sparc/cpu/Makefile rename : usr/src/cmd/fm/topo/plugins/common/cpu/cpu.c => deleted_files/usr/src/cmd/fm/topo/plugins/sparc/cpu/cpu.c rename : usr/src/cmd/fm/topo/plugins/common/cpu/cpu.topo => deleted_files/usr/src/cmd/fm/topo/plugins/sparc/cpu/cpu.topo rename : usr/src/lib/fm/libtopo/Makefile => deleted_files/usr/src/lib/fm/libtopo/Makefile rename : usr/src/lib/fm/libtopo/Makefile.com => deleted_files/usr/src/lib/fm/libtopo/Makefile.com rename : usr/src/lib/fm/libtopo/amd64/Makefile => deleted_files/usr/src/lib/fm/libtopo/amd64/Makefile rename : usr/src/lib/fm/libtopo/common/libtopo.h => deleted_files/usr/src/lib/fm/libtopo/common/libtopo.h rename : usr/src/lib/fm/libtopo/common/libtopo_enum.h => deleted_files/usr/src/lib/fm/libtopo/common/libtopo_enum.h rename : usr/src/lib/fm/libtopo/common/llib-ltopo => deleted_files/usr/src/lib/fm/libtopo/common/llib-ltopo rename : usr/src/lib/fm/libtopo/common/topo.c => deleted_files/usr/src/lib/fm/libtopo/common/topo.c rename : usr/src/lib/fm/libtopo/common/topo_enum.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_enum.c rename : usr/src/lib/fm/libtopo/common/topo_enum.h => deleted_files/usr/src/lib/fm/libtopo/common/topo_enum.h rename : usr/src/lib/fm/libtopo/common/topo_hash.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_hash.c rename : usr/src/lib/fm/libtopo/common/topo_hcfmri.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_hcfmri.c rename : usr/src/lib/fm/libtopo/common/topo_hcpath.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_hcpath.c rename : usr/src/lib/fm/libtopo/common/topo_impl.h => deleted_files/usr/src/lib/fm/libtopo/common/topo_impl.h rename : usr/src/lib/fm/libtopo/common/topo_mem.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_mem.c rename : usr/src/lib/fm/libtopo/common/topo_out.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_out.c rename : usr/src/lib/fm/libtopo/common/topo_parse.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_parse.c rename : usr/src/lib/fm/libtopo/common/topo_paths.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_paths.c rename : usr/src/lib/fm/libtopo/common/topo_pkg.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_pkg.c rename : usr/src/lib/fm/libtopo/common/topo_prop.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_prop.c rename : usr/src/lib/fm/libtopo/common/topo_traverse.c => deleted_files/usr/src/lib/fm/libtopo/common/topo_traverse.c rename : usr/src/lib/fm/libtopo/i386/Makefile => deleted_files/usr/src/lib/fm/libtopo/i386/Makefile rename : usr/src/lib/fm/libtopo/sparc/Makefile => deleted_files/usr/src/lib/fm/libtopo/sparc/Makefile rename : usr/src/lib/fm/libtopo/sparcv9/Makefile => deleted_files/usr/src/lib/fm/libtopo/sparcv9/Makefile rename : usr/src/lib/fm/libtopo/spec/Makefile => deleted_files/usr/src/lib/fm/libtopo/spec/Makefile rename : usr/src/lib/fm/libtopo/spec/Makefile.targ => deleted_files/usr/src/lib/fm/libtopo/spec/Makefile.targ rename : usr/src/lib/fm/libtopo/spec/amd64/Makefile => deleted_files/usr/src/lib/fm/libtopo/spec/amd64/Makefile rename : usr/src/lib/fm/libtopo/spec/i386/Makefile => deleted_files/usr/src/lib/fm/libtopo/spec/i386/Makefile rename : usr/src/lib/fm/libtopo/spec/sparc/Makefile => deleted_files/usr/src/lib/fm/libtopo/spec/sparc/Makefile rename : usr/src/lib/fm/libtopo/spec/sparcv9/Makefile => deleted_files/usr/src/lib/fm/libtopo/spec/sparcv9/Makefile rename : usr/src/lib/fm/libtopo/spec/topo.spec => deleted_files/usr/src/lib/fm/libtopo/spec/topo.spec rename : usr/src/lib/fm/libtopo/spec/versions => deleted_files/usr/src/lib/fm/libtopo/spec/versions rename : usr/src/cmd/fm/topo/prtopo/Makefile => usr/src/cmd/fm/fmtopo/Makefile rename : usr/src/cmd/fm/topo/prtopo/Makefile.com => usr/src/cmd/fm/fmtopo/Makefile.com rename : usr/src/cmd/fm/topo/prtopo/common/prtopo.c => usr/src/cmd/fm/fmtopo/common/fmtopo.c rename : usr/src/cmd/fm/topo/prtopo/i386/Makefile => usr/src/cmd/fm/fmtopo/i386/Makefile rename : usr/src/cmd/fm/topo/prtopo/sparc/Makefile => usr/src/cmd/fm/fmtopo/sparc/Makefile rename : usr/src/cmd/fm/schemes/cpu/cpu_mdesc.c => usr/src/cmd/fm/schemes/cpu/sparc/cpu_mdesc.c rename : usr/src/cmd/fm/schemes/cpu/cpu.h => usr/src/cmd/fm/schemes/cpu/sparc/cpu_mdesc.h rename : usr/src/cmd/fm/schemes/mem/mem_disc.c => usr/src/cmd/fm/schemes/mem/sparc/mem_disc.c rename : usr/src/uts/common/sys/fm/cpu/UltraSPARC-II.h => usr/src/uts/sparc/sys/fm/cpu/UltraSPARC-II.h rename : usr/src/uts/common/sys/fm/cpu/UltraSPARC-III.h => usr/src/uts/sparc/sys/fm/cpu/UltraSPARC-III.h rename : usr/src/uts/common/sys/fm/cpu/UltraSPARC-T1.h => usr/src/uts/sparc/sys/fm/cpu/UltraSPARC-T1.h
Diffstat (limited to 'usr/src/uts/common/os/modctl.c')
-rw-r--r--usr/src/uts/common/os/modctl.c97
1 files changed, 85 insertions, 12 deletions
diff --git a/usr/src/uts/common/os/modctl.c b/usr/src/uts/common/os/modctl.c
index 73e0447ab1..e776a36310 100644
--- a/usr/src/uts/common/os/modctl.c
+++ b/usr/src/uts/common/os/modctl.c
@@ -19,6 +19,7 @@
*
* CDDL HEADER END
*/
+
/*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
@@ -84,15 +85,14 @@ static int modinfo(modid_t, struct modinfo *);
static void mod_uninstall_all(void);
static int mod_getinfo(struct modctl *, struct modinfo *);
-static struct modctl *allocate_modp(char *, char *);
+static struct modctl *allocate_modp(const char *, const char *);
static int mod_load(struct modctl *, int);
static void mod_unload(struct modctl *);
static int modinstall(struct modctl *);
static int moduninstall(struct modctl *);
-static struct modctl *mod_hold_by_name_common(struct modctl *, char *);
-static struct modctl *mod_hold_by_id(modid_t);
+static struct modctl *mod_hold_by_name_common(struct modctl *, const char *);
static struct modctl *mod_hold_next_by_id(modid_t);
static struct modctl *mod_hold_loaded_mod(struct modctl *, char *, int *);
static struct modctl *mod_hold_installed_mod(char *, int, int *);
@@ -1943,6 +1943,71 @@ modload(char *subdir, char *filename)
}
/*
+ * Load a module using a series of qualified names from most specific to least
+ * specific, e.g. for subdir "foo", p1 "bar", p2 "baz", we might try:
+ *
+ * foo/bar.baz.1.2.3
+ * foo/bar.baz.1.2
+ * foo/bar.baz.1
+ *
+ * Return the module ID on success; -1 if no module was loaded.
+ */
+int
+modload_qualified(const char *subdir, const char *p1,
+ const char *p2, const char *delim, uint_t suffv[], int suffc)
+{
+ char path[MOD_MAXPATH];
+ size_t n, resid = sizeof (path);
+ char *p = path;
+
+ char **dotv;
+ int i, rc, id;
+ modctl_t *mp;
+
+ if (p2 != NULL)
+ n = snprintf(p, resid, "%s/%s%s%s", subdir, p1, delim, p2);
+ else
+ n = snprintf(p, resid, "%s/%s", subdir, p1);
+
+ if (n >= resid)
+ return (-1);
+
+ p += n;
+ resid -= n;
+ dotv = kmem_alloc(sizeof (char *) * (suffc + 1), KM_SLEEP);
+
+ for (i = 0; i < suffc; i++) {
+ dotv[i] = p;
+ n = snprintf(p, resid, "%s%u", delim, suffv[i]);
+
+ if (n >= resid) {
+ kmem_free(dotv, sizeof (char *) * (suffc + 1));
+ return (-1);
+ }
+
+ p += n;
+ resid -= n;
+ }
+
+ dotv[suffc] = p;
+
+ for (i = suffc; i >= 0; i--) {
+ dotv[i][0] = '\0';
+ mp = mod_hold_installed_mod(path, 1, &rc);
+
+ if (mp != NULL) {
+ kmem_free(dotv, sizeof (char *) * (suffc + 1));
+ id = mp->mod_id;
+ mod_release_mod(mp);
+ return (id);
+ }
+ }
+
+ kmem_free(dotv, sizeof (char *) * (suffc + 1));
+ return (-1);
+}
+
+/*
* Load a module.
*/
int
@@ -2440,7 +2505,7 @@ modadd(struct modctl *mp)
/*ARGSUSED*/
static struct modctl *
-allocate_modp(char *filename, char *modname)
+allocate_modp(const char *filename, const char *modname)
{
struct modctl *mp;
@@ -2473,12 +2538,12 @@ modgetsymname(uintptr_t value, ulong_t *offset)
}
/*
- * Lookup a symbol in a specified module. This is a wrapper routine that
- * calls kobj_lookup(). kobj_lookup() may go away but this
- * wrapper will prevent callers from noticing.
+ * Lookup a symbol in a specified module. These are wrapper routines that
+ * call kobj_lookup(). kobj_lookup() may go away but these wrappers will
+ * prevent callers from noticing.
*/
uintptr_t
-modlookup(char *modname, char *symname)
+modlookup(const char *modname, const char *symname)
{
struct modctl *modp;
uintptr_t val;
@@ -2490,6 +2555,14 @@ modlookup(char *modname, char *symname)
return (val);
}
+uintptr_t
+modlookup_by_modctl(modctl_t *modp, const char *symname)
+{
+ ASSERT(modp->mod_ref > 0 || modp->mod_busy);
+
+ return (kobj_lookup(modp->mod_mp, symname));
+}
+
/*
* Ask the user for the name of the system file and the default path
* for modules.
@@ -3149,9 +3222,9 @@ mod_hold_by_modctl(struct modctl *mp, int f)
}
static struct modctl *
-mod_hold_by_name_common(struct modctl *dep, char *filename)
+mod_hold_by_name_common(struct modctl *dep, const char *filename)
{
- char *modname;
+ const char *modname;
struct modctl *mp;
char *curname, *newname;
int found = 0;
@@ -3232,12 +3305,12 @@ mod_hold_by_name_requisite(struct modctl *dep, char *filename)
}
struct modctl *
-mod_hold_by_name(char *filename)
+mod_hold_by_name(const char *filename)
{
return (mod_hold_by_name_common(NULL, filename));
}
-static struct modctl *
+struct modctl *
mod_hold_by_id(modid_t modid)
{
struct modctl *mp;