!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/arch/ppc/kernel/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     gemini_pci.c (2.94 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * BK Id: SCCS/s.gemini_pci.c 1.6 10/11/01 08:51:46 trini
 */
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/slab.h>

#include <asm/machdep.h>
#include <asm/gemini.h>
#include <asm/byteorder.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/pci-bridge.h>

#include "pci.h"

#define pci_config_addr(bus,dev,offset) \
        (0x80000000 | (bus<<16) | (dev<<8) | offset)


int
gemini_pcibios_read_config_byte(struct pci_dev *dev, int offset, u8 *val)
{
    unsigned long reg;
    reg = grackle_read(pci_config_addr(dev->bus->number, dev->devfn,
                       (offset & ~(0x3))));
    *val = ((reg >> ((offset & 0x3) << 3)) & 0xff);
    return PCIBIOS_SUCCESSFUL;
}

int
gemini_pcibios_read_config_word(struct pci_dev *dev, int offset, u16 *val)
{
    unsigned long reg;
    reg = grackle_read(pci_config_addr(dev->bus->number, dev->devfn,
                       (offset & ~(0x3))));
    *val = ((reg >> ((offset & 0x3) << 3)) & 0xffff);
    return PCIBIOS_SUCCESSFUL;
}

int
gemini_pcibios_read_config_dword(struct pci_dev *dev, int offset, u32 *val)
{
    *val = grackle_read(pci_config_addr(dev->bus->number, dev->devfn,
                        (offset & ~(0x3))));
    return PCIBIOS_SUCCESSFUL;
}

int
gemini_pcibios_write_config_byte(struct pci_dev *dev, int offset, u8 val)
{
    unsigned long reg;
    int shifts = offset & 0x3;
    unsigned int addr = pci_config_addr(dev->bus->number, dev->devfn,
                        (offset & ~(0x3)));

    reg = grackle_read(addr);
    reg = (reg & ~(0xff << (shifts << 3))) | (val << (shifts << 3));
    grackle_write(addr, reg );
    return PCIBIOS_SUCCESSFUL;
}

int
gemini_pcibios_write_config_word(struct pci_dev *dev, int offset, u16 val)
{
    unsigned long reg;
    int shifts = offset & 0x3;
    unsigned int addr = pci_config_addr(dev->bus->number, dev->devfn,
                        (offset & ~(0x3)));

    reg = grackle_read(addr);
    reg = (reg & ~(0xffff << (shifts << 3))) | (val << (shifts << 3));
    grackle_write(addr, reg );
    return PCIBIOS_SUCCESSFUL;
}

int
gemini_pcibios_write_config_dword(struct pci_dev *dev, int offset, u32 val)
{
    grackle_write(pci_config_addr(dev->bus->number, dev->devfn,
                      (offset & ~(0x3))), val);
    return PCIBIOS_SUCCESSFUL;
}

static struct pci_ops gemini_pci_ops =
{
    gemini_pcibios_read_config_byte,
    gemini_pcibios_read_config_word,
    gemini_pcibios_read_config_dword,
    gemini_pcibios_write_config_byte,
    gemini_pcibios_write_config_word,
    gemini_pcibios_write_config_dword
};

void __init gemini_pcibios_fixup(void)
{
    int i;
    struct pci_dev *dev;
    
    pci_for_each_dev(dev) {
        for(i = 0; i < 6; i++) {
            if (dev->resource[i].flags & IORESOURCE_IO) {
                dev->resource[i].start |= (0xfe << 24);
                dev->resource[i].end |= (0xfe << 24);
            }
        }
    }
}


/* The "bootloader" for Synergy boards does none of this for us, so we need to
   lay it all out ourselves... --Dan */
void __init gemini_find_bridges(void)
{
    struct pci_controller* hose;
    
    ppc_md.pcibios_fixup = gemini_pcibios_fixup;

    hose = pcibios_alloc_controller();
    if (!hose)
        return;
    hose->ops = &gemini_pci_ops;
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.2687 ]--