\ *****************************************************************************
\ * Copyright (c) 2004, 2008 IBM Corporation
\ * All rights reserved.
\ * This program and the accompanying materials
\ * are made available under the terms of the BSD License
\ * which accompanies this distribution, and is available at
\ * http://www.opensource.org/licenses/bsd-license.php
\ *
\ * Contributors:
\ *     IBM Corporation - initial implementation
\ ****************************************************************************/

\ Starting alias number for net devices after the onboard devices.
2 VALUE pci-net-num
\ Starting alias number for disks after the onboard devices.
0 VALUE pci-disk-num
\ Starting alias number for cdroms after the onboard devices.
0 VALUE pci-cdrom-num

\ define a new alias for this device
: pci-set-alias ( str-addr str-len num -- )
        $cathex strdup       \ create alias name
        get-node node>path   \ get path string
        set-alias            \ and set the alias
;

\ define a new net alias
: unknown-enet ( -- pci-net-num )
	pci-net-num dup 1+ TO pci-net-num
;
: pci-alias-net ( config-addr -- )
	u3? IF
		pci-device-vec c@ CASE 
		2 OF pci-device-vec-len 1 >= IF  
					pci-device-vec 1+ c@ CASE 
						1 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN  ENDOF 
						dup OF  unknown-enet ENDOF
					ENDCASE
				ELSE
					unknown-enet
				THEN
			ENDOF
			dup OF unknown-enet  ENDOF	
		ENDCASE
	ELSE
		pci-device-vec c@ CASE 
		2 OF pci-device-vec-len 1 >= IF  
					pci-device-vec 1+ c@ CASE 
						4 OF dup pci-addr2fn 1 >= IF 1 ELSE 0 THEN  ENDOF 
						dup OF  unknown-enet ENDOF
					ENDCASE
				ELSE
					unknown-enet
				THEN
			ENDOF
			dup OF unknown-enet  ENDOF	
		ENDCASE
	THEN
	swap drop                               \ forget the config address

        s" net" rot pci-set-alias              \ create the alias
;

\ define a new disk alias
: pci-alias-disk ( config-addr -- )
        drop                                    \ forget the config address
        pci-disk-num dup 1+ TO pci-disk-num     \ increase the pci-disk-num
        s" disk" rot pci-set-alias              \ create the alias
;
\ define a new cdrom alias
: pci-alias-cdrom ( config-addr -- )
        drop                                    \ forget the config address
        pci-cdrom-num dup 1+ TO pci-cdrom-num     \ increase the pci-cdrom-num
        s" cdrom" rot pci-set-alias              \ create the alias
;

\ define the alias for the calling device
: pci-alias ( config-addr -- )
        dup pci-class@ 
        10 rshift CASE
                01 OF   pci-alias-disk ENDOF
                02 OF   pci-alias-net  ENDOF
               dup OF   drop           ENDOF
        ENDCASE
;
