Main Page | Data Structures | File List | Data Fields | Globals

axis_pci_device_entry Struct Reference

#include <axis_pci.h>

Collaboration diagram for axis_pci_device_entry:

Collaboration graph
[legend]

Detailed Description

Hardware master control structure.

For each PCI device we have a structure to track the hardware We stash a copy of this in the private data fields of the kernel structures we are assigned so the code that does the work can find its data


Data Fields

list_head list
atomic_t smart_card_open_count
wait_queue_head_t des_key_queue
wait_queue_head_t des_channel_queue
wait_queue_head_t spi_op_queue
wait_queue_head_t spi_interrupt_queue
wait_queue_head_t smart_card_tx_interrupt_queue
wait_queue_head_t smart_card_rx_interrupt_queue
unsigned char smart_card_rx_buffer [64]
unsigned char smart_card_tx_buffer [64]
volatile unsigned char * smart_card_tx_head
volatile unsigned char * smart_card_tx_tail
volatile unsigned char * smart_card_rx_head
volatile unsigned char * smart_card_rx_tail
volatile unsigned long rx_start_wait_time
unsigned long smart_card_rx_timeout
long smart_card_minimum_inter_char_time
atomic_t smart_card_tx_finished
atomic_t smart_card_tx_active
atomic_t spi_finished
atomic_t spi_active
semaphore output_lock
semaphore input_lock
semaphore serial_lock
semaphore des_security_lock
semaphore des_key_lock
semaphore des_channel_lock
semaphore spi_lock
pid_t thread_pid
unsigned long thread_delay
completion thread_exited
pci_dev * dev
unsigned long route_register
int device_number
unsigned int last_uart
unsigned long parallel_control_mirror
void * interrupt_dev_id
int uart_idents [8]
spi_channel spi_channels [4]
axis_des_hardware_key des_hardware_keys [16]
axis_des_hardware_channel des_channels [3]
axis_region regions [5]
axis_component_instance sub_devices [40]
axis_io_bitmapio_bitmap
proc_dir_entry * proc_root_directory
proc_dir_entry * proc_inputs_directory
proc_dir_entry * proc_outputs_directory
proc_dir_entry * proc_serial_directory
proc_dir_entry * proc_dipswitch_directory
proc_dir_entry * proc_sram_directory
axis_des_hardware_channel des_key_channel
list_head ram_partition_list
axis_w1 silicon_serial_number
axis_w1 ibutton


Field Documentation

struct semaphore axis_pci_device_entry::des_channel_lock
 

lock to serilise access to des key data structrues

wait_queue_head_t axis_pci_device_entry::des_channel_queue
 

having got a key DES ops may need to wait for a channel

struct axis_des_hardware_channel axis_pci_device_entry::des_channels[ 3 ]
 

array of control structure for DES keys

struct axis_des_hardware_key axis_pci_device_entry::des_hardware_keys[ 16 ]
 

Array of structures one for each SPI channel

struct axis_des_hardware_channel axis_pci_device_entry::des_key_channel
 

directory entry in Axis /proc file system

struct semaphore axis_pci_device_entry::des_key_lock
 

because of sercuity only one des device allowed to read at once

wait_queue_head_t axis_pci_device_entry::des_key_queue
 

Des ops may need to wait for key storage to become available

struct semaphore axis_pci_device_entry::des_security_lock
 

lock to serilise access to serial routing register

struct pci_dev* axis_pci_device_entry::dev
 

allow tidy thread deletion

int axis_pci_device_entry::device_number
 

mirror of serial routing register

struct axis_w1 axis_pci_device_entry::ibutton
 

struct semaphore axis_pci_device_entry::input_lock
 

lock to serilise access to outputs

void* axis_pci_device_entry::interrupt_dev_id
 

mirror for parallel IO control register

struct axis_io_bitmap* axis_pci_device_entry::io_bitmap
 

Allow sub devices to access data

unsigned int axis_pci_device_entry::last_uart
 

allocate a unique number for each Axis hardware device

struct list_head axis_pci_device_entry::list
 

in case of multiple hardware

struct semaphore axis_pci_device_entry::output_lock
 

unsigned long axis_pci_device_entry::parallel_control_mirror
 

how many external UARTs are fitted

struct proc_dir_entry* axis_pci_device_entry::proc_dipswitch_directory
 

directory entry in Axis /proc file system

struct proc_dir_entry* axis_pci_device_entry::proc_inputs_directory
 

root of Axis /proc file system

struct proc_dir_entry* axis_pci_device_entry::proc_outputs_directory
 

directory entry in Axis /proc file system

struct proc_dir_entry* axis_pci_device_entry::proc_root_directory
 

input and output IO mirrors

struct proc_dir_entry* axis_pci_device_entry::proc_serial_directory
 

directory entry in Axis /proc file system

struct proc_dir_entry* axis_pci_device_entry::proc_sram_directory
 

directory entry in Axis /proc file system

struct list_head axis_pci_device_entry::ram_partition_list
 

control structure for des key channel

struct axis_region axis_pci_device_entry::regions[ 5 ]
 

array of control struct for DES Channels

unsigned long axis_pci_device_entry::route_register
 

access back to kernels PCI configuration for this device

volatile unsigned long axis_pci_device_entry::rx_start_wait_time
 

remember smart card rx start time for timeouts

struct semaphore axis_pci_device_entry::serial_lock
 

lock to serilise access to inputs

struct axis_w1 axis_pci_device_entry::silicon_serial_number
 

list of SRAM partitions and maps

long axis_pci_device_entry::smart_card_minimum_inter_char_time
 

support tx throttleing for smart card

atomic_t axis_pci_device_entry::smart_card_open_count
 

only allow one smart card client at once

unsigned char axis_pci_device_entry::smart_card_rx_buffer[64]
 

rx buffer for smart card

volatile unsigned char* axis_pci_device_entry::smart_card_rx_head
 

next location for smart card rx interrupt to write

wait_queue_head_t axis_pci_device_entry::smart_card_rx_interrupt_queue
 

smart card code can wait for rx interrupt

volatile unsigned char* axis_pci_device_entry::smart_card_rx_tail
 

next location for smart card rx routine to read

unsigned long axis_pci_device_entry::smart_card_rx_timeout
 

current smart card rx time out

atomic_t axis_pci_device_entry::smart_card_tx_active
 

signals a SPI interrupt happened

unsigned char axis_pci_device_entry::smart_card_tx_buffer[64]
 

tx buffer for smart card

atomic_t axis_pci_device_entry::smart_card_tx_finished
 

check that smart card tx is finished before starting new tx

volatile unsigned char* axis_pci_device_entry::smart_card_tx_head
 

next location for smart card tx routine to write

wait_queue_head_t axis_pci_device_entry::smart_card_tx_interrupt_queue
 

smart card code can wait for tx interrupt

volatile unsigned char* axis_pci_device_entry::smart_card_tx_tail
 

next location for smart card tx interrupt to aquire date

atomic_t axis_pci_device_entry::spi_active
 

struct spi_channel axis_pci_device_entry::spi_channels[ 4 ]
 

remember ID returned from serial driver for each UART

atomic_t axis_pci_device_entry::spi_finished
 

signals a SPI operation is current

wait_queue_head_t axis_pci_device_entry::spi_interrupt_queue
 

spi code may need to wait for an SPI generated interrupt

struct semaphore axis_pci_device_entry::spi_lock
 

lock to serilise access to des data strutcures

wait_queue_head_t axis_pci_device_entry::spi_op_queue
 

spi code may wait for access to SPI hardware

struct axis_component_instance axis_pci_device_entry::sub_devices[ 40 ]
 

Contains physical and remapped addresses for PCI

unsigned long axis_pci_device_entry::thread_delay
 

thread id for kernel timeout thread

struct completion axis_pci_device_entry::thread_exited
 

how long kernel timeout thread sleeps for

pid_t axis_pci_device_entry::thread_pid
 

lock to serilise access to spi data structures

int axis_pci_device_entry::uart_idents[ 8 ]
 

ID for interrupt handler


The documentation for this struct was generated from the following file:
Generated on Fri Jan 28 12:37:41 2005 for Axis Kernel Driver by doxygen 1.3.6