!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/include/asm-ia64/sn/xtalk/   drwxr-xr-x
Free 318.34 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     xtalk.h (13.8 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* $Id$
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 1992 - 1997, 2000 Silicon Graphics, Inc.
 * Copyright (C) 2000 by Colin Ngam
 */
#ifndef _ASM_SN_XTALK_XTALK_H
#define _ASM_SN_XTALK_XTALK_H

/*
 * xtalk.h -- platform-independent crosstalk interface
 */
/*
 * User-level device driver visible types
 */
typedef char            xwidgetnum_t;    /* xtalk widget number  (0..15) */

#define XWIDGET_NONE        -1

typedef int xwidget_part_num_t;    /* xtalk widget part number */

#define XWIDGET_PART_NUM_NONE    -1

typedef int             xwidget_rev_num_t;    /* xtalk widget revision number */

#define XWIDGET_REV_NUM_NONE    -1

typedef int xwidget_mfg_num_t;    /* xtalk widget manufacturing ID */

#define XWIDGET_MFG_NUM_NONE    -1

typedef struct xtalk_piomap_s *xtalk_piomap_t;

/* It is often convenient to fold the XIO target port
 * number into the XIO address.
 */
#define    XIO_NOWHERE    (0xFFFFFFFFFFFFFFFFull)
#define    XIO_ADDR_BITS    (0x0000FFFFFFFFFFFFull)
#define    XIO_PORT_BITS    (0xF000000000000000ull)
#define    XIO_PORT_SHIFT    (60)

#define    XIO_PACKED(x)    (((x)&XIO_PORT_BITS) != 0)
#define    XIO_ADDR(x)    ((x)&XIO_ADDR_BITS)
#define    XIO_PORT(x)    ((xwidgetnum_t)(((x)&XIO_PORT_BITS) >> XIO_PORT_SHIFT))
#define    XIO_PACK(p,o)    ((((uint64_t)(p))<<XIO_PORT_SHIFT) | ((o)&XIO_ADDR_BITS))


/*
 * Kernel/driver only definitions
 */
#if __KERNEL__

#include <asm/types.h>
#include <asm/sn/types.h>
#include <asm/sn/alenlist.h>
#include <asm/sn/ioerror.h>
#include <asm/sn/iobus.h>
#include <asm/sn/dmamap.h>

struct xwidget_hwid_s;

/*
 *    Acceptable flag bits for xtalk service calls
 *
 * XTALK_FIXED: require that mappings be established
 *    using fixed sharable resources; address
 *    translation results will be permanently
 *    available. (PIOMAP_FIXED and DMAMAP_FIXED are
 *    the same numeric value and are acceptable).
 * XTALK_NOSLEEP: if any part of the operation would
 *    sleep waiting for resoruces, return an error
 *    instead. (PIOMAP_NOSLEEP and DMAMAP_NOSLEEP are
 *    the same numeric value and are acceptable).
 * XTALK_INPLACE: when operating on alenlist structures,
 *    reuse the source alenlist rather than creating a
 *    new one. (PIOMAP_INPLACE and DMAMAP_INPLACE are
 *    the same numeric value and are acceptable).
 */
#define    XTALK_FIXED        DMAMAP_FIXED
#define    XTALK_NOSLEEP        DMAMAP_NOSLEEP
#define    XTALK_INPLACE        DMAMAP_INPLACE

/* PIO MANAGEMENT */
typedef xtalk_piomap_t
xtalk_piomap_alloc_f    (devfs_handle_t dev,    /* set up mapping for this device */
             device_desc_t dev_desc,    /* device descriptor */
             iopaddr_t xtalk_addr,    /* map for this xtalk_addr range */
             size_t byte_count,
             size_t byte_count_max,        /* maximum size of a mapping */
             unsigned flags);    /* defined in sys/pio.h */
typedef void
xtalk_piomap_free_f     (xtalk_piomap_t xtalk_piomap);

typedef caddr_t
xtalk_piomap_addr_f     (xtalk_piomap_t xtalk_piomap,    /* mapping resources */
             iopaddr_t xtalk_addr,    /* map for this xtalk address */
             size_t byte_count);    /* map this many bytes */

typedef void
xtalk_piomap_done_f     (xtalk_piomap_t xtalk_piomap);

typedef caddr_t
xtalk_piotrans_addr_f   (devfs_handle_t dev,    /* translate for this device */
             device_desc_t dev_desc,    /* device descriptor */
             iopaddr_t xtalk_addr,    /* Crosstalk address */
             size_t byte_count,    /* map this many bytes */
             unsigned flags);    /* (currently unused) */

extern caddr_t
xtalk_pio_addr        (devfs_handle_t dev,    /* translate for this device */
             device_desc_t dev_desc,    /* device descriptor */
             iopaddr_t xtalk_addr,    /* Crosstalk address */
             size_t byte_count,    /* map this many bytes */
             xtalk_piomap_t *xtalk_piomapp,    /* RETURNS mapping resources */
             unsigned flags);    /* (currently unused) */

/* DMA MANAGEMENT */

typedef struct xtalk_dmamap_s *xtalk_dmamap_t;

typedef xtalk_dmamap_t
xtalk_dmamap_alloc_f    (devfs_handle_t dev,    /* set up mappings for this device */
             device_desc_t dev_desc,    /* device descriptor */
             size_t byte_count_max,        /* max size of a mapping */
             unsigned flags);    /* defined in dma.h */

typedef void
xtalk_dmamap_free_f     (xtalk_dmamap_t dmamap);

typedef iopaddr_t
xtalk_dmamap_addr_f     (xtalk_dmamap_t dmamap,        /* use these mapping resources */
             paddr_t paddr,        /* map for this address */
             size_t byte_count);    /* map this many bytes */

typedef alenlist_t
xtalk_dmamap_list_f     (xtalk_dmamap_t dmamap,        /* use these mapping resources */
             alenlist_t alenlist,    /* map this address/length list */
             unsigned flags);

typedef void
xtalk_dmamap_done_f     (xtalk_dmamap_t dmamap);

typedef iopaddr_t
xtalk_dmatrans_addr_f   (devfs_handle_t dev,    /* translate for this device */
             device_desc_t dev_desc,    /* device descriptor */
             paddr_t paddr,        /* system physical address */
             size_t byte_count,    /* length */
             unsigned flags);

typedef alenlist_t
xtalk_dmatrans_list_f   (devfs_handle_t dev,    /* translate for this device */
             device_desc_t dev_desc,    /* device descriptor */
             alenlist_t palenlist,    /* system address/length list */
             unsigned flags);

typedef void
xtalk_dmamap_drain_f    (xtalk_dmamap_t map);    /* drain this map's channel */

typedef void
xtalk_dmaaddr_drain_f    (devfs_handle_t vhdl,    /* drain channel from this device */
             paddr_t addr,        /* to this physical address */
             size_t bytes);        /* for this many bytes */

typedef void
xtalk_dmalist_drain_f    (devfs_handle_t vhdl,    /* drain channel from this device */
             alenlist_t list);    /* for this set of physical blocks */


/* INTERRUPT MANAGEMENT */

/*
 * A xtalk interrupt resource handle.  When resources are allocated
 * in order to satisfy a xtalk_intr_alloc request, a xtalk_intr handle
 * is returned.  xtalk_intr_connect associates a software handler with

 * these system resources.
 */
typedef struct xtalk_intr_s *xtalk_intr_t;


/*
 * When a crosstalk device connects an interrupt, it passes in a function
 * that knows how to set its xtalk interrupt register appropriately.  The
 * low-level interrupt code may invoke this function later in order to
 * migrate an interrupt transparently to the device driver(s) that use this
 * interrupt.
 *
 * The argument passed to this function contains enough information for a
 * crosstalk device to (re-)target an interrupt.  A function of this type
 * must be supplied by every crosstalk driver.
 */
typedef int
xtalk_intr_setfunc_f    (xtalk_intr_t intr_hdl);    /* interrupt handle */

typedef xtalk_intr_t
xtalk_intr_alloc_f      (devfs_handle_t dev,    /* which crosstalk device */
             device_desc_t dev_desc,    /* device descriptor */
             devfs_handle_t owner_dev);    /* owner of this intr */

typedef void
xtalk_intr_free_f       (xtalk_intr_t intr_hdl);

typedef int
xtalk_intr_connect_f    (xtalk_intr_t intr_hdl,        /* xtalk intr resource handle */
             intr_func_t intr_func,        /* xtalk intr handler */
             void *intr_arg,    /* arg to intr handler */
             xtalk_intr_setfunc_f *setfunc,        /* func to set intr hw */
             void *setfunc_arg,    /* arg to setfunc. This must be */
                            /* sufficient to determine which */
                            /* interrupt on which board needs */
                            /* to be set. */
             void *thread);        /* which intr thread to use */

typedef void
xtalk_intr_disconnect_f (xtalk_intr_t intr_hdl);

typedef devfs_handle_t
xtalk_intr_cpu_get_f    (xtalk_intr_t intr_hdl);    /* xtalk intr resource handle */

/* CONFIGURATION MANAGEMENT */

typedef void
xtalk_provider_startup_f (devfs_handle_t xtalk_provider);

typedef void
xtalk_provider_shutdown_f (devfs_handle_t xtalk_provider);

typedef void
xtalk_widgetdev_enable_f (devfs_handle_t, int);

typedef void
xtalk_widgetdev_shutdown_f (devfs_handle_t, int);

typedef int
xtalk_dma_enabled_f (devfs_handle_t);

/* Error Management */

typedef int
xtalk_error_devenable_f (devfs_handle_t xconn_vhdl,
             int devnum,
             int error_code);

/* Early Action Support */
typedef caddr_t
xtalk_early_piotrans_addr_f (xwidget_part_num_t part_num,
                 xwidget_mfg_num_t mfg_num,
                 int which,
                 iopaddr_t xtalk_addr,
                 size_t byte_count,
                 unsigned flags);

/*
 * Adapters that provide a crosstalk interface adhere to this software interface.
 */
typedef struct xtalk_provider_s {
    /* PIO MANAGEMENT */
    xtalk_piomap_alloc_f   *piomap_alloc;
    xtalk_piomap_free_f    *piomap_free;
    xtalk_piomap_addr_f    *piomap_addr;
    xtalk_piomap_done_f    *piomap_done;
    xtalk_piotrans_addr_f  *piotrans_addr;

    /* DMA MANAGEMENT */
    xtalk_dmamap_alloc_f   *dmamap_alloc;
    xtalk_dmamap_free_f    *dmamap_free;
    xtalk_dmamap_addr_f    *dmamap_addr;
    xtalk_dmamap_list_f    *dmamap_list;
    xtalk_dmamap_done_f    *dmamap_done;
    xtalk_dmatrans_addr_f  *dmatrans_addr;
    xtalk_dmatrans_list_f  *dmatrans_list;
    xtalk_dmamap_drain_f   *dmamap_drain;
    xtalk_dmaaddr_drain_f  *dmaaddr_drain;
    xtalk_dmalist_drain_f  *dmalist_drain;

    /* INTERRUPT MANAGEMENT */
    xtalk_intr_alloc_f     *intr_alloc;
    xtalk_intr_alloc_f     *intr_alloc_nothd;
    xtalk_intr_free_f      *intr_free;
    xtalk_intr_connect_f   *intr_connect;
    xtalk_intr_disconnect_f *intr_disconnect;
    xtalk_intr_cpu_get_f   *intr_cpu_get;

    /* CONFIGURATION MANAGEMENT */
    xtalk_provider_startup_f *provider_startup;
    xtalk_provider_shutdown_f *provider_shutdown;

    /* Error Management     */
    xtalk_error_devenable_f *error_devenable;
} xtalk_provider_t;

/* Crosstalk devices use these standard Crosstalk provider interfaces */
extern xtalk_piomap_alloc_f xtalk_piomap_alloc;
extern xtalk_piomap_free_f xtalk_piomap_free;
extern xtalk_piomap_addr_f xtalk_piomap_addr;
extern xtalk_piomap_done_f xtalk_piomap_done;
extern xtalk_piotrans_addr_f xtalk_piotrans_addr;
extern xtalk_dmamap_alloc_f xtalk_dmamap_alloc;
extern xtalk_dmamap_free_f xtalk_dmamap_free;
extern xtalk_dmamap_addr_f xtalk_dmamap_addr;
extern xtalk_dmamap_list_f xtalk_dmamap_list;
extern xtalk_dmamap_done_f xtalk_dmamap_done;
extern xtalk_dmatrans_addr_f xtalk_dmatrans_addr;
extern xtalk_dmatrans_list_f xtalk_dmatrans_list;
extern xtalk_dmamap_drain_f xtalk_dmamap_drain;
extern xtalk_dmaaddr_drain_f xtalk_dmaaddr_drain;
extern xtalk_dmalist_drain_f xtalk_dmalist_drain;
extern xtalk_intr_alloc_f xtalk_intr_alloc;
extern xtalk_intr_alloc_f xtalk_intr_alloc_nothd;
extern xtalk_intr_free_f xtalk_intr_free;
extern xtalk_intr_connect_f xtalk_intr_connect;
extern xtalk_intr_disconnect_f xtalk_intr_disconnect;
extern xtalk_intr_cpu_get_f xtalk_intr_cpu_get;
extern xtalk_provider_startup_f xtalk_provider_startup;
extern xtalk_provider_shutdown_f xtalk_provider_shutdown;
extern xtalk_widgetdev_enable_f xtalk_widgetdev_enable;
extern xtalk_widgetdev_shutdown_f xtalk_widgetdev_shutdown;
extern xtalk_dma_enabled_f xtalk_dma_enabled;
extern xtalk_error_devenable_f xtalk_error_devenable;
extern xtalk_early_piotrans_addr_f xtalk_early_piotrans_addr;

/* error management */

extern int              xtalk_error_handler(devfs_handle_t,
                        int,
                        ioerror_mode_t,
                        ioerror_t *);

/*
 * Generic crosstalk interface, for use with all crosstalk providers
 * and all crosstalk devices.
 */
typedef unchar xtalk_intr_vector_t;    /* crosstalk interrupt vector (0..255) */

#define XTALK_INTR_VECTOR_NONE    (xtalk_intr_vector_t)0

/* Generic crosstalk interrupt interfaces */
extern devfs_handle_t     xtalk_intr_dev_get(xtalk_intr_t xtalk_intr);
extern xwidgetnum_t     xtalk_intr_target_get(xtalk_intr_t xtalk_intr);
extern xtalk_intr_vector_t xtalk_intr_vector_get(xtalk_intr_t xtalk_intr);
extern iopaddr_t        xtalk_intr_addr_get(xtalk_intr_t xtalk_intr);
extern devfs_handle_t     xtalk_intr_cpu_get(xtalk_intr_t xtalk_intr);
extern void            *xtalk_intr_sfarg_get(xtalk_intr_t xtalk_intr);

/* Generic crosstalk pio interfaces */
extern devfs_handle_t     xtalk_pio_dev_get(xtalk_piomap_t xtalk_piomap);
extern xwidgetnum_t     xtalk_pio_target_get(xtalk_piomap_t xtalk_piomap);
extern iopaddr_t        xtalk_pio_xtalk_addr_get(xtalk_piomap_t xtalk_piomap);
extern size_t           xtalk_pio_mapsz_get(xtalk_piomap_t xtalk_piomap);
extern caddr_t          xtalk_pio_kvaddr_get(xtalk_piomap_t xtalk_piomap);

/* Generic crosstalk dma interfaces */
extern devfs_handle_t     xtalk_dma_dev_get(xtalk_dmamap_t xtalk_dmamap);
extern xwidgetnum_t     xtalk_dma_target_get(xtalk_dmamap_t xtalk_dmamap);

/* Register/unregister Crosstalk providers and get implementation handle */
extern void             xtalk_set_early_piotrans_addr(xtalk_early_piotrans_addr_f *);
extern void             xtalk_provider_register(devfs_handle_t provider, xtalk_provider_t *xtalk_fns);
extern void             xtalk_provider_unregister(devfs_handle_t provider);
extern xtalk_provider_t *xtalk_provider_fns_get(devfs_handle_t provider);

/* Crosstalk Switch generic layer, for use by initialization code */
extern void             xswitch_census(devfs_handle_t xswitchv);
extern void             xswitch_init_widgets(devfs_handle_t xswitchv);

/* early init interrupt management */

typedef void
xwidget_intr_preset_f   (void *which_widget,
             int which_widget_intr,
             xwidgetnum_t targ,
             iopaddr_t addr,
             xtalk_intr_vector_t vect);

typedef void
xtalk_intr_prealloc_f   (void *which_xtalk,
             xtalk_intr_vector_t xtalk_vector,
             xwidget_intr_preset_f *preset_func,
             void *which_widget,
             int which_widget_intr);

typedef void
xtalk_intr_preconn_f    (void *which_xtalk,
             xtalk_intr_vector_t xtalk_vector,
             intr_func_t intr_func,
             intr_arg_t intr_arg);


#define XTALK_ADDR_TO_UPPER(xtalk_addr) (((iopaddr_t)(xtalk_addr) >> 32) & 0xffff)
#define XTALK_ADDR_TO_LOWER(xtalk_addr) ((iopaddr_t)(xtalk_addr) & 0xffffffff)

typedef xtalk_intr_setfunc_f *xtalk_intr_setfunc_t;

typedef void        xtalk_iter_f(devfs_handle_t vhdl);

extern void        xtalk_iterate(char *prefix, xtalk_iter_f *func);

extern int        xtalk_device_powerup(devfs_handle_t, xwidgetnum_t);
extern int        xtalk_device_shutdown(devfs_handle_t, xwidgetnum_t);
extern int        xtalk_device_inquiry(devfs_handle_t, xwidgetnum_t);

#endif                /* __KERNEL__ */
#endif                /* _ASM_SN_XTALK_XTALK_H */

:: 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.0052 ]--