|
|
1.1 ! root 1: \ ***************************************************************************** ! 2: \ * Copyright (c) 2004, 2008 IBM Corporation ! 3: \ * All rights reserved. ! 4: \ * This program and the accompanying materials ! 5: \ * are made available under the terms of the BSD License ! 6: \ * which accompanies this distribution, and is available at ! 7: \ * http://www.opensource.org/licenses/bsd-license.php ! 8: \ * ! 9: \ * Contributors: ! 10: \ * IBM Corporation - initial implementation ! 11: \ ****************************************************************************/ ! 12: ! 13: \ Starting alias number for net devices after the onboard devices. ! 14: 2 VALUE pci-net-num ! 15: \ Starting alias number for disks after the onboard devices. ! 16: 0 VALUE pci-disk-num ! 17: \ Starting alias number for cdroms after the onboard devices. ! 18: 0 VALUE pci-cdrom-num ! 19: ! 20: \ define a new alias for this device ! 21: : pci-set-alias ( str-addr str-len num -- ) ! 22: $cathex strdup \ create alias name ! 23: get-node node>path \ get path string ! 24: set-alias \ and set the alias ! 25: ; ! 26: ! 27: \ define a new net alias ! 28: : unknown-enet ( -- pci-net-num ) ! 29: pci-net-num dup 1+ TO pci-net-num ! 30: ; ! 31: : pci-alias-net ( config-addr -- ) ! 32: u3? IF ! 33: pci-device-vec c@ CASE ! 34: 2 OF pci-device-vec-len 1 >= IF ! 35: pci-device-vec 1+ c@ CASE ! 36: 1 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN ENDOF ! 37: dup OF unknown-enet ENDOF ! 38: ENDCASE ! 39: ELSE ! 40: unknown-enet ! 41: THEN ! 42: ENDOF ! 43: dup OF unknown-enet ENDOF ! 44: ENDCASE ! 45: ELSE ! 46: pci-device-vec c@ CASE ! 47: 2 OF pci-device-vec-len 1 >= IF ! 48: pci-device-vec 1+ c@ CASE ! 49: 4 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN ENDOF ! 50: dup OF unknown-enet ENDOF ! 51: ENDCASE ! 52: ELSE ! 53: unknown-enet ! 54: THEN ! 55: ENDOF ! 56: dup OF unknown-enet ENDOF ! 57: ENDCASE ! 58: THEN ! 59: swap drop \ forget the config address ! 60: ! 61: s" net" rot pci-set-alias \ create the alias ! 62: ; ! 63: ! 64: \ define a new disk alias ! 65: : pci-alias-disk ( config-addr -- ) ! 66: drop \ forget the config address ! 67: pci-disk-num dup 1+ TO pci-disk-num \ increase the pci-disk-num ! 68: s" disk" rot pci-set-alias \ create the alias ! 69: ; ! 70: \ define a new cdrom alias ! 71: : pci-alias-cdrom ( config-addr -- ) ! 72: drop \ forget the config address ! 73: pci-cdrom-num dup 1+ TO pci-cdrom-num \ increase the pci-cdrom-num ! 74: s" cdrom" rot pci-set-alias \ create the alias ! 75: ; ! 76: ! 77: \ define the alias for the calling device ! 78: : pci-alias ( config-addr -- ) ! 79: dup pci-class@ ! 80: 10 rshift CASE ! 81: 01 OF pci-alias-disk ENDOF ! 82: 02 OF pci-alias-net ENDOF ! 83: dup OF drop ENDOF ! 84: ENDCASE ! 85: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.