!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/drivers/net/fc/   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:     tach_structs.h (9.81 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/**********************************************************************
 * iph5526.c: Structures for the Interphase 5526 PCI Fibre Channel 
 *              IP/SCSI driver.
 * Copyright (C) 1999 Vineet M Abraham <vmabraham@hotmail.com>
 **********************************************************************/

#ifndef _TACH_STRUCT_H
#define _TACH_STRUCT_H

typedef struct {
    u_short cmnd_code;
    u_short payload_length;
    u_short type_code;
    u_short est_image_pair;
    u_int originator_pa;
    u_int responder_pa;
    u_int service_params;
} PRLI;

typedef struct {
    u_int flags_and_byte_offset;
    u_int byte_count;
    u_short no_of_recvd_frames;
    u_short no_of_expected_frames;
    u_int last_fctl;
    u_int sdb_address;
    u_int scratch_pad;
    u_int expected_ro;
    u_short buffer_index;
    u_short buffer_offset;
    } INB_SEST_ENTRY;

typedef struct {
    u_int flags_and_did;
    u_short max_frame_len;
    u_short cntl;
    u_int total_seq_length;
    u_short link;
    u_short rx_id;
    u_int transaction_id;
    u_int header_address;
    u_char seq_id;
    u_char reserved;
    u_short header_length;
    u_int edb_address;
    } OUTB_SEST_ENTRY;

typedef struct {
    u_short d_naa;
    u_short dest_high;
    u_int dest_low;
    u_short s_naa;
    u_short source_high;
    u_int source_low;
    } NW_HEADER;

typedef struct {
    u_int resv;
    u_char sof_and_eof;
    u_char dest_alpa;
    u_short lcr_and_time_stamp;
    u_int r_ctl_and_d_id;
    u_int vc_id_and_s_id;
    u_int type_and_f_cntl;
    u_char seq_id;
    u_char df_cntl;
    u_short seq_cnt;
    u_short ox_id;
    u_short rx_id;
    u_int ro;
    NW_HEADER nw_header;
    } TACHYON_HEADER;

typedef struct {
    u_short service_options;
    u_short initiator_ctl;
    u_short recipient_ctl;
    u_short recv_data_field_size;
    u_short concurrent_sequences;
    u_short n_port_end_to_end_credit;
    u_short open_seq_per_exchange;
    u_short resv;
    }CLASS_OF_SERVICE;

typedef struct {
    u_int logo_cmnd;
    u_char reserved;
    u_char n_port_id_2;
    u_char n_port_id_1;
    u_char n_port_id_0;
    u_int port_name_up;
    u_int port_name_low;
    } LOGO;

typedef struct {
    u_int ls_cmnd_code;
    u_int hard_address;
    u_int port_name_high;
    u_int port_name_low;
    u_int node_name_high;
    u_int node_name_low;
    u_int n_port_id;
    } ADISC;
    
typedef struct {
    u_int cmnd_code;
    u_int reason_code;
    } LS_RJT;

typedef struct {
    u_int cmnd_code;
    } ACC;

typedef struct  {
    u_int seq_d_id;
    u_int tot_len;
    u_short cntl;
    u_short rx_id;
    u_short cs_enable;
    u_short cs_seed;
    u_int trans_id;
    u_int hdr_addr;
    u_short frame_len;
    u_short hdr_len;
    u_int edb_addr;
    }ODB;

typedef struct {
    u_int cmnd_code;
    u_int reg_function; /* in the last byte */
    } SCR;

typedef struct {
    u_int rev_in_id;
    u_char fs_type;
    u_char fs_subtype;
    u_char options;
    u_char resv1;
    u_short cmnd_resp_code;
    u_short max_res_size;
    u_char resv2;
    u_char reason_code;
    u_char expln_code;
    u_char vendor_unique;
    } CT_HDR;

typedef struct {
    CT_HDR     ct_hdr;
    u_int s_id;
    u_char bit_map[32]; /* 32 byte bit map */
    } RFC_4;

typedef struct {
    u_int ls_cmnd_code;
    u_short fc_ph_version;
    u_short buff_to_buff_credit;
    u_short common_features;
    u_short recv_data_field_size;
    u_short n_port_total_conc_seq;
    u_short rel_off_by_info_cat;
    u_int ED_TOV;
    u_int n_port_name_high;
    u_int n_port_name_low;
    u_int node_name_high;
    u_int node_name_low;
    CLASS_OF_SERVICE c_of_s[3];
    u_int resv[4];
    u_int vendor_version_level[4];
    }LOGIN;

typedef struct {
    CT_HDR     ct_hdr;
    u_int port_type; /* in the first byte */
    } GP_ID4;

typedef struct  {
    u_int   buf_addr;
    u_short ehf;
    u_short buf_len;
    }EDB;

/* (i)chip Registers */
struct i_chip_regs {
    u_int    ptr_ichip_hw_control_reg;
    u_int    ptr_ichip_hw_status_reg;
    u_int    ptr_ichip_hw_addr_mask_reg;
};

struct iph5526_novram {
    u_int    ptr_novram_hw_control_reg;
    u_int    ptr_novram_hw_status_reg;
    u_short data[IPH5526_NOVRAM_SIZE];
};

/* Tachyon Registers */
struct tachyon_regs {
    u_int    ptr_ocq_base_reg;
    u_int    ptr_ocq_len_reg;
    u_int    ptr_ocq_prod_indx_reg;
    u_int    ptr_ocq_cons_indx_reg;

    u_int    ptr_imq_base_reg;
    u_int    ptr_imq_len_reg;
    u_int    ptr_imq_cons_indx_reg;
    u_int    ptr_imq_prod_indx_reg;

    u_int    ptr_mfsbq_base_reg;
    u_int    ptr_mfsbq_len_reg;
    u_int    ptr_mfsbq_prod_reg;
    u_int    ptr_mfsbq_cons_reg;
    u_int    ptr_mfsbuff_len_reg;

    u_int    ptr_sfsbq_base_reg;
    u_int    ptr_sfsbq_len_reg;
    u_int    ptr_sfsbq_prod_reg;
    u_int    ptr_sfsbq_cons_reg;
    u_int    ptr_sfsbuff_len_reg;

    u_int    ptr_sest_base_reg;
    u_int    ptr_sest_len_reg;
    u_int    ptr_scsibuff_len_reg;

    u_int    ptr_tach_config_reg;
    u_int    ptr_tach_control_reg;
    u_int    ptr_tach_status_reg;
    u_int    ptr_tach_flush_oxid_reg;

    u_int    ptr_fm_config_reg;
    u_int    ptr_fm_control_reg;
    u_int    ptr_fm_status_reg;
    u_int    ptr_fm_tov_reg;
    u_int    ptr_fm_wwn_hi_reg;
    u_int    ptr_fm_wwn_low_reg;
    u_int    ptr_fm_rx_al_pa_reg;
};

struct globals {
    u_long tachyon_base;
    u_int *mem_base;
    u_short ox_id; /* OX_ID used for IP and ELS frames */
    u_short scsi_oxid; /* OX_ID for SEST entry */
    u_char seq_id;
    u_int my_id;
    u_int my_ddaa; /* my domain and area in a fabric */
    volatile u_char loop_up;
    volatile u_char ptp_up; /* we have a point-to-point link */
    volatile u_char link_up;
    volatile u_char n_port_try;
    volatile u_char nport_timer_set;
    volatile u_char lport_timer_set;
    /* Hmmm... We dont want to Initialize while closing */
    u_char dont_init; 
    u_int my_node_name_high;
    u_int my_node_name_low;
    u_int my_port_name_high;
    u_int my_port_name_low;
    u_char fabric_present;
    u_char explore_fabric;
    u_char name_server;  
    u_int my_mtu;
    u_int *els_buffer[MAX_PENDING_FRAMES]; /* temp space for ELS frames */
    char *arp_buffer; /* temp space for ARP frames */
    u_int mfs_buffer_count; /* keep track of MFS buffers used*/
    u_char scsi_registered;
    /* variables for port discovery */
    volatile u_char port_discovery;
    volatile u_char perform_adisc;
    u_short alpa_list_index;
    u_short type_of_frame; /* Could be IP/SCSI Read/SCSI Write*/    
    u_char no_of_targets; /* used to assign target_ids */
    u_long sem; /* to synchronize between IP and SCSI */
    u_char e_i;

    /* the frames */
    TACHYON_HEADER tach_header;
    LOGIN login;
    PRLI prli;
    LOGO logo;
    ADISC adisc;
    LS_RJT ls_rjt;
    ODB    odb;
    INB_SEST_ENTRY inb_sest_entry;
    OUTB_SEST_ENTRY outb_sest_entry;
    ACC    acc;
    SCR    scr;
    EDB    edb;
    RFC_4 rfc_4;
    GP_ID4 gp_id4;
};

struct queue_variables {
    /* Indices maintained in host memory.
     */
    u_int *host_ocq_cons_indx, *host_hpcq_cons_indx, *host_imq_prod_indx;
    u_int *ptr_host_ocq_cons_indx, *ptr_host_hpcq_cons_indx, *ptr_host_imq_prod_indx;

    /* Variables for Outbound Command Queue (OCQ).
     */
    u_int *ptr_ocq_base;
    u_int ocq_len, ocq_end;
    u_int ocq_prod_indx;
    u_int *ptr_odb[OCQ_LENGTH];

    /* Variables for Inbound Message Queue (IMQ).
     */
    u_int *ptr_imq_base;
    u_int imq_len, imq_end;
    u_int imq_cons_indx;
    u_int imq_prod_indx;
    u_int *ptr_imqe[IMQ_LENGTH];

    u_int *ptr_mfsbq_base;
    u_int mfsbq_len, mfsbq_end;
    u_int mfsbq_prod_indx;
    u_int mfsbq_cons_indx;
    u_int mfsbuff_len, mfsbuff_end;

    u_int *ptr_sfsbq_base;
    u_int sfsbq_len, sfsbq_end;
    u_int sfsbq_prod_indx;
    u_int sfsbq_cons_indx;
    u_int sfsbuff_len, sfsbuff_end;
    u_int *ptr_sfs_buffers[SFSBQ_LENGTH * NO_OF_ENTRIES];

    /* Tables for SCSI Transactions */
    u_int *ptr_sest_base;
    u_int *ptr_sest[SEST_LENGTH];
    u_char free_scsi_oxid[SEST_LENGTH];
    u_int *ptr_sdb_base;
    u_int *ptr_sdb_slot[NO_OF_SDB_ENTRIES];
    u_char sdb_slot_status[NO_OF_SDB_ENTRIES];
    u_int sdb_indx;
    u_int *ptr_fcp_cmnd_base;
    u_int *ptr_fcp_cmnd[NO_OF_FCP_CMNDS];
    u_int fcp_cmnd_indx;

    /* Table for data to be transmitted.
     */
    u_int *ptr_edb_base;
    u_int *ptr_edb[EDB_LEN];
    u_int edb_buffer_indx;
    volatile u_char free_edb_list[EDB_LEN];

    /* Table of Tachyon Headers.
     */
    u_int *ptr_tachyon_header[NO_OF_TACH_HEADERS];
    u_int *ptr_tachyon_header_base;
    u_int tachyon_header_indx;
};

/* Used to match incoming ACCs to ELS requests sent out */
struct ox_id_els_map {
    u_short ox_id;
    u_int els;
    struct ox_id_els_map *next;
};


/* Carries info about individual nodes... stores the info got at login 
 * time. Also maintains mapping between MAC->FC addresses 
 */
struct fc_node_info {
    /* Itz the WWN (8 bytes), the last 6 bytes is the MAC address */
    u_char hw_addr[PORT_NAME_LEN]; 
    u_char node_name[NODE_NAME_LEN]; 
    u_int d_id;  /*real FC address, 3 bytes */
    int mtu;
    /* login = 1 if login attempted
     * login = 2 if login completed 
     */
    int login;    
    u_char scsi; /*  = 1 if device is a SCSI Target */
    u_char target_id;
    CLASS_OF_SERVICE c_of_s[3];
    struct fc_node_info *next;
};

struct fc_info {
    char name[8];
    u_long base_addr;
    int irq;
    struct net_device_stats fc_stats;
    struct fc_node_info *node_info_list;
    int num_nodes;
    struct ox_id_els_map *ox_id_list;
    struct i_chip_regs i_r;
    struct tachyon_regs t_r;
    struct queue_variables q;
    struct globals g;
    struct iph5526_novram n_r;
    u_short clone_id;
    struct timer_list nport_timer;
    struct timer_list lport_timer;
    struct timer_list explore_timer;
    struct timer_list display_cache_timer;
    struct net_device *dev;
    struct Scsi_Host *host;
    spinlock_t fc_lock;
};

struct iph5526_hostdata {
    struct fc_info *fi;
    fcp_cmd cmnd;
    Scsi_Cmnd *cmnd_handler[SEST_LENGTH];
    u_int tag_ages[MAX_SCSI_TARGETS];
};

/* List of valid AL_PAs */
u_char alpa_list[127] = { 
    0x00, 0x01, 0x02, 0x04, 0x08, 0x0F, 0x10, 0x17, 
    0x18, 0x1B, 0x1D, 0x1E, 0x1F, 0x23, 0x25, 0x26, 
    0x27, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x31, 
    0x32, 0x33, 0x34, 0x35, 0x36, 0x39, 0x3A, 0x3C, 
    0x43, 0x45, 0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 
    0x4D, 0x4E, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 
    0x59, 0x5A, 0x5C, 0x63, 0x65, 0x66, 0x67, 0x69, 
    0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x71, 0x72, 0x73, 
    0x74, 0x75, 0x76, 0x79, 0x7A, 0x7C, 0x80, 0x81, 
    0x82, 0x84, 0x88, 0x8F, 0x90, 0x97, 0x98, 0x9B, 
    0x9D, 0x9E, 0x9F, 0xA3, 0xA5, 0xA6, 0xA7, 0xA9, 
    0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xB1, 0xB2, 0xB3, 
    0xB4, 0xB5, 0xB6, 0xB9, 0xBA, 0xBC, 0xC3, 0xC5, 
    0xC6, 0xC7, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 
    0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD9, 0xDA, 
    0xDC, 0xE0, 0xE1, 0xE2, 0xE4, 0xE8, 0xEF
};

#endif /* _TACH_STRUCT_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.0293 ]--