Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
synclinkmp.c File Reference
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/serial.h>
#include <linux/major.h>
#include <linux/string.h>
#include <linux/fcntl.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/mm.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/netdevice.h>
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/ioctl.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/dma.h>
#include <linux/bitops.h>
#include <asm/types.h>
#include <linux/termios.h>
#include <linux/workqueue.h>
#include <linux/hdlc.h>
#include <linux/synclink.h>
#include <asm/uaccess.h>

Go to the source code of this file.

Data Structures

struct  _SCADESC
 
struct  _SCADESC_EX
 
struct  _input_signal_events
 
struct  _synclinkmp_info
 

Macros

#define VERSION(ver, rel, seq)   (((ver)<<16) | ((rel)<<8) | (seq))
 
#define BREAKPOINT()   { }
 
#define MAX_DEVICES   12
 
#define SYNCLINK_GENERIC_HDLC   0
 
#define GET_USER(error, value, addr)   error = get_user(value,addr)
 
#define COPY_FROM_USER(error, dest, src, size)   error = copy_from_user(dest,src,size) ? -EFAULT : 0
 
#define PUT_USER(error, value, addr)   error = put_user(value,addr)
 
#define COPY_TO_USER(error, dest, src, size)   error = copy_to_user(dest,src,size) ? -EFAULT : 0
 
#define SCABUFSIZE   1024
 
#define SCA_MEM_SIZE   0x40000
 
#define SCA_BASE_SIZE   512
 
#define SCA_REG_SIZE   16
 
#define SCA_MAX_PORTS   4
 
#define SCAMAXDESC   128
 
#define BUFFERLISTSIZE   4096
 
#define BH_RECEIVE   1
 
#define BH_TRANSMIT   2
 
#define BH_STATUS   4
 
#define IO_PIN_SHUTDOWN_LIMIT   100
 
#define MGSL_MAGIC   0x5401
 
#define MISCSTATUS_DCD_LATCHED   (SerialSignal_DCD<<8) /* indicates change in DCD */
 
#define MISCSTATUS_RI_LATCHED   (SerialSignal_RI<<8) /* indicates change in RI */
 
#define MISCSTATUS_CTS_LATCHED   (SerialSignal_CTS<<8) /* indicates change in CTS */
 
#define MISCSTATUS_DSR_LATCHED   (SerialSignal_DSR<<8) /* change in DSR */
 
#define LPR   0x00
 
#define PABR0   0x02
 
#define PABR1   0x03
 
#define WCRL   0x04
 
#define WCRM   0x05
 
#define WCRH   0x06
 
#define DPCR   0x08
 
#define DMER   0x09
 
#define ISR0   0x10
 
#define ISR1   0x11
 
#define ISR2   0x12
 
#define IER0   0x14
 
#define IER1   0x15
 
#define IER2   0x16
 
#define ITCR   0x18
 
#define INTVR   0x1a
 
#define IMVR   0x1c
 
#define TRB   0x20
 
#define TRBL   0x20
 
#define TRBH   0x21
 
#define SR0   0x22
 
#define SR1   0x23
 
#define SR2   0x24
 
#define SR3   0x25
 
#define FST   0x26
 
#define IE0   0x28
 
#define IE1   0x29
 
#define IE2   0x2a
 
#define FIE   0x2b
 
#define CMD   0x2c
 
#define MD0   0x2e
 
#define MD1   0x2f
 
#define MD2   0x30
 
#define CTL   0x31
 
#define SA0   0x32
 
#define SA1   0x33
 
#define IDL   0x34
 
#define TMC   0x35
 
#define RXS   0x36
 
#define TXS   0x37
 
#define TRC0   0x38
 
#define TRC1   0x39
 
#define RRC   0x3a
 
#define CST0   0x3c
 
#define CST1   0x3d
 
#define TCNT   0x60
 
#define TCNTL   0x60
 
#define TCNTH   0x61
 
#define TCONR   0x62
 
#define TCONRL   0x62
 
#define TCONRH   0x63
 
#define TMCS   0x64
 
#define TEPR   0x65
 
#define DARL   0x80
 
#define DARH   0x81
 
#define DARB   0x82
 
#define BAR   0x80
 
#define BARL   0x80
 
#define BARH   0x81
 
#define BARB   0x82
 
#define SAR   0x84
 
#define SARL   0x84
 
#define SARH   0x85
 
#define SARB   0x86
 
#define CPB   0x86
 
#define CDA   0x88
 
#define CDAL   0x88
 
#define CDAH   0x89
 
#define EDA   0x8a
 
#define EDAL   0x8a
 
#define EDAH   0x8b
 
#define BFL   0x8c
 
#define BFLL   0x8c
 
#define BFLH   0x8d
 
#define BCR   0x8e
 
#define BCRL   0x8e
 
#define BCRH   0x8f
 
#define DSR   0x90
 
#define DMR   0x91
 
#define FCT   0x93
 
#define DIR   0x94
 
#define DCMD   0x95
 
#define TIMER0   0x00
 
#define TIMER1   0x08
 
#define TIMER2   0x10
 
#define TIMER3   0x18
 
#define RXDMA   0x00
 
#define TXDMA   0x20
 
#define NOOP   0x00
 
#define TXRESET   0x01
 
#define TXENABLE   0x02
 
#define TXDISABLE   0x03
 
#define TXCRCINIT   0x04
 
#define TXCRCEXCL   0x05
 
#define TXEOM   0x06
 
#define TXABORT   0x07
 
#define MPON   0x08
 
#define TXBUFCLR   0x09
 
#define RXRESET   0x11
 
#define RXENABLE   0x12
 
#define RXDISABLE   0x13
 
#define RXCRCINIT   0x14
 
#define RXREJECT   0x15
 
#define SEARCHMP   0x16
 
#define RXCRCEXCL   0x17
 
#define RXCRCCALC   0x18
 
#define CHRESET   0x21
 
#define HUNT   0x31
 
#define SWABORT   0x01
 
#define FEICLEAR   0x02
 
#define TXINTE   BIT7
 
#define RXINTE   BIT6
 
#define TXRDYE   BIT1
 
#define RXRDYE   BIT0
 
#define UDRN   BIT7
 
#define IDLE   BIT6
 
#define SYNCD   BIT4
 
#define FLGD   BIT4
 
#define CCTS   BIT3
 
#define CDCD   BIT2
 
#define BRKD   BIT1
 
#define ABTD   BIT1
 
#define GAPD   BIT1
 
#define BRKE   BIT0
 
#define IDLD   BIT0
 
#define EOM   BIT7
 
#define PMP   BIT6
 
#define SHRT   BIT6
 
#define PE   BIT5
 
#define ABT   BIT5
 
#define FRME   BIT4
 
#define RBIT   BIT4
 
#define OVRN   BIT3
 
#define CRCE   BIT2
 
#define WAKEUP_CHARS   256
 
#define TESTFRAMESIZE   20
 
#define CALC_REGADDR()
 

Typedefs

typedef struct _SCADESC SCADESC
 
typedef struct _SCADESCPSCADESC
 
typedef struct _SCADESC_EX SCADESC_EX
 
typedef struct _SCADESC_EXPSCADESC_EX
 
typedef struct _synclinkmp_info SLMP_INFO
 

Functions

 module_param (break_on_load, bool, 0)
 
 module_param (ttymajor, int, 0)
 
 module_param (debug_level, int, 0)
 
 module_param_array (maxframe, int, NULL, 0)
 
 MODULE_DEVICE_TABLE (pci, synclinkmp_pci_tbl)
 
 MODULE_LICENSE ("GPL")
 
 module_init (synclinkmp_init)
 
 module_exit (synclinkmp_exit)
 

Macro Definition Documentation

#define ABT   BIT5

Definition at line 439 of file synclinkmp.c.

#define ABTD   BIT1

Definition at line 429 of file synclinkmp.c.

#define BAR   0x80

Definition at line 354 of file synclinkmp.c.

#define BARB   0x82

Definition at line 357 of file synclinkmp.c.

#define BARH   0x81

Definition at line 356 of file synclinkmp.c.

#define BARL   0x80

Definition at line 355 of file synclinkmp.c.

#define BCR   0x8e

Definition at line 372 of file synclinkmp.c.

#define BCRH   0x8f

Definition at line 374 of file synclinkmp.c.

#define BCRL   0x8e

Definition at line 373 of file synclinkmp.c.

#define BFL   0x8c

Definition at line 369 of file synclinkmp.c.

#define BFLH   0x8d

Definition at line 371 of file synclinkmp.c.

#define BFLL   0x8c

Definition at line 370 of file synclinkmp.c.

#define BH_RECEIVE   1

Definition at line 131 of file synclinkmp.c.

#define BH_STATUS   4

Definition at line 133 of file synclinkmp.c.

#define BH_TRANSMIT   2

Definition at line 132 of file synclinkmp.c.

#define BREAKPOINT ( )    { }

Definition at line 32 of file synclinkmp.c.

#define BRKD   BIT1

Definition at line 428 of file synclinkmp.c.

#define BRKE   BIT0

Definition at line 431 of file synclinkmp.c.

#define BUFFERLISTSIZE   4096

Definition at line 108 of file synclinkmp.c.

#define CALC_REGADDR ( )
Value:
unsigned char * RegAddr = (unsigned char*)(info->sca_base + Addr); \
if (info->port_num > 1) \
RegAddr += 256; /* port 0-1 SCA0, 2-3 SCA1 */ \
if ( info->port_num & 1) { \
if (Addr > 0x7f) \
RegAddr += 0x40; /* DMA access */ \
else if (Addr > 0x1f && Addr < 0x60) \
RegAddr += 0x20; /* MSCI access */ \
}

Definition at line 5547 of file synclinkmp.c.

#define CCTS   BIT3

Definition at line 426 of file synclinkmp.c.

#define CDA   0x88

Definition at line 363 of file synclinkmp.c.

#define CDAH   0x89

Definition at line 365 of file synclinkmp.c.

#define CDAL   0x88

Definition at line 364 of file synclinkmp.c.

#define CDCD   BIT2

Definition at line 427 of file synclinkmp.c.

#define CHRESET   0x21

Definition at line 408 of file synclinkmp.c.

#define CMD   0x2c

Definition at line 323 of file synclinkmp.c.

#define COPY_FROM_USER (   error,
  dest,
  src,
  size 
)    error = copy_from_user(dest,src,size) ? -EFAULT : 0

Definition at line 78 of file synclinkmp.c.

#define COPY_TO_USER (   error,
  dest,
  src,
  size 
)    error = copy_to_user(dest,src,size) ? -EFAULT : 0

Definition at line 80 of file synclinkmp.c.

#define CPB   0x86

Definition at line 362 of file synclinkmp.c.

#define CRCE   BIT2

Definition at line 443 of file synclinkmp.c.

#define CST0   0x3c

Definition at line 337 of file synclinkmp.c.

#define CST1   0x3d

Definition at line 338 of file synclinkmp.c.

#define CTL   0x31

Definition at line 327 of file synclinkmp.c.

#define DARB   0x82

Definition at line 353 of file synclinkmp.c.

#define DARH   0x81

Definition at line 352 of file synclinkmp.c.

#define DARL   0x80

Definition at line 351 of file synclinkmp.c.

#define DCMD   0x95

Definition at line 379 of file synclinkmp.c.

#define DIR   0x94

Definition at line 378 of file synclinkmp.c.

#define DMER   0x09

Definition at line 299 of file synclinkmp.c.

#define DMR   0x91

Definition at line 376 of file synclinkmp.c.

#define DPCR   0x08

Definition at line 298 of file synclinkmp.c.

#define DSR   0x90

Definition at line 375 of file synclinkmp.c.

#define EDA   0x8a

Definition at line 366 of file synclinkmp.c.

#define EDAH   0x8b

Definition at line 368 of file synclinkmp.c.

#define EDAL   0x8a

Definition at line 367 of file synclinkmp.c.

#define EOM   BIT7

Definition at line 435 of file synclinkmp.c.

#define FCT   0x93

Definition at line 377 of file synclinkmp.c.

#define FEICLEAR   0x02

Definition at line 413 of file synclinkmp.c.

#define FIE   0x2b

Definition at line 322 of file synclinkmp.c.

#define FLGD   BIT4

Definition at line 425 of file synclinkmp.c.

#define FRME   BIT4

Definition at line 440 of file synclinkmp.c.

#define FST   0x26

Definition at line 318 of file synclinkmp.c.

#define GAPD   BIT1

Definition at line 430 of file synclinkmp.c.

#define GET_USER (   error,
  value,
  addr 
)    error = get_user(value,addr)

Definition at line 77 of file synclinkmp.c.

#define HUNT   0x31

Definition at line 409 of file synclinkmp.c.

#define IDL   0x34

Definition at line 330 of file synclinkmp.c.

#define IDLD   BIT0

Definition at line 432 of file synclinkmp.c.

#define IDLE   BIT6

Definition at line 423 of file synclinkmp.c.

#define IE0   0x28

Definition at line 319 of file synclinkmp.c.

#define IE1   0x29

Definition at line 320 of file synclinkmp.c.

#define IE2   0x2a

Definition at line 321 of file synclinkmp.c.

#define IER0   0x14

Definition at line 303 of file synclinkmp.c.

#define IER1   0x15

Definition at line 304 of file synclinkmp.c.

#define IER2   0x16

Definition at line 305 of file synclinkmp.c.

#define IMVR   0x1c

Definition at line 308 of file synclinkmp.c.

#define INTVR   0x1a

Definition at line 307 of file synclinkmp.c.

#define IO_PIN_SHUTDOWN_LIMIT   100

Definition at line 135 of file synclinkmp.c.

#define ISR0   0x10

Definition at line 300 of file synclinkmp.c.

#define ISR1   0x11

Definition at line 301 of file synclinkmp.c.

#define ISR2   0x12

Definition at line 302 of file synclinkmp.c.

#define ITCR   0x18

Definition at line 306 of file synclinkmp.c.

#define LPR   0x00

Definition at line 292 of file synclinkmp.c.

#define MAX_DEVICES   12

Definition at line 35 of file synclinkmp.c.

#define MD0   0x2e

Definition at line 324 of file synclinkmp.c.

#define MD1   0x2f

Definition at line 325 of file synclinkmp.c.

#define MD2   0x30

Definition at line 326 of file synclinkmp.c.

#define MGSL_MAGIC   0x5401

Definition at line 281 of file synclinkmp.c.

#define MISCSTATUS_CTS_LATCHED   (SerialSignal_CTS<<8) /* indicates change in CTS */

Definition at line 288 of file synclinkmp.c.

#define MISCSTATUS_DCD_LATCHED   (SerialSignal_DCD<<8) /* indicates change in DCD */

Definition at line 286 of file synclinkmp.c.

#define MISCSTATUS_DSR_LATCHED   (SerialSignal_DSR<<8) /* change in DSR */

Definition at line 289 of file synclinkmp.c.

#define MISCSTATUS_RI_LATCHED   (SerialSignal_RI<<8) /* indicates change in RI */

Definition at line 287 of file synclinkmp.c.

#define MPON   0x08

Definition at line 398 of file synclinkmp.c.

#define NOOP   0x00

Definition at line 390 of file synclinkmp.c.

#define OVRN   BIT3

Definition at line 442 of file synclinkmp.c.

#define PABR0   0x02

Definition at line 293 of file synclinkmp.c.

#define PABR1   0x03

Definition at line 294 of file synclinkmp.c.

#define PE   BIT5

Definition at line 438 of file synclinkmp.c.

#define PMP   BIT6

Definition at line 436 of file synclinkmp.c.

#define PUT_USER (   error,
  value,
  addr 
)    error = put_user(value,addr)

Definition at line 79 of file synclinkmp.c.

#define RBIT   BIT4

Definition at line 441 of file synclinkmp.c.

#define RRC   0x3a

Definition at line 336 of file synclinkmp.c.

#define RXCRCCALC   0x18

Definition at line 407 of file synclinkmp.c.

#define RXCRCEXCL   0x17

Definition at line 406 of file synclinkmp.c.

#define RXCRCINIT   0x14

Definition at line 403 of file synclinkmp.c.

#define RXDISABLE   0x13

Definition at line 402 of file synclinkmp.c.

#define RXDMA   0x00

Definition at line 386 of file synclinkmp.c.

#define RXENABLE   0x12

Definition at line 401 of file synclinkmp.c.

#define RXINTE   BIT6

Definition at line 417 of file synclinkmp.c.

#define RXRDYE   BIT0

Definition at line 419 of file synclinkmp.c.

#define RXREJECT   0x15

Definition at line 404 of file synclinkmp.c.

#define RXRESET   0x11

Definition at line 400 of file synclinkmp.c.

#define RXS   0x36

Definition at line 332 of file synclinkmp.c.

#define SA0   0x32

Definition at line 328 of file synclinkmp.c.

#define SA1   0x33

Definition at line 329 of file synclinkmp.c.

#define SAR   0x84

Definition at line 358 of file synclinkmp.c.

#define SARB   0x86

Definition at line 361 of file synclinkmp.c.

#define SARH   0x85

Definition at line 360 of file synclinkmp.c.

#define SARL   0x84

Definition at line 359 of file synclinkmp.c.

#define SCA_BASE_SIZE   512

Definition at line 103 of file synclinkmp.c.

#define SCA_MAX_PORTS   4

Definition at line 105 of file synclinkmp.c.

#define SCA_MEM_SIZE   0x40000

Definition at line 102 of file synclinkmp.c.

#define SCA_REG_SIZE   16

Definition at line 104 of file synclinkmp.c.

#define SCABUFSIZE   1024

Definition at line 101 of file synclinkmp.c.

#define SCAMAXDESC   128

Definition at line 106 of file synclinkmp.c.

#define SEARCHMP   0x16

Definition at line 405 of file synclinkmp.c.

#define SHRT   BIT6

Definition at line 437 of file synclinkmp.c.

#define SR0   0x22

Definition at line 314 of file synclinkmp.c.

#define SR1   0x23

Definition at line 315 of file synclinkmp.c.

#define SR2   0x24

Definition at line 316 of file synclinkmp.c.

#define SR3   0x25

Definition at line 317 of file synclinkmp.c.

#define SWABORT   0x01

Definition at line 412 of file synclinkmp.c.

#define SYNCD   BIT4

Definition at line 424 of file synclinkmp.c.

#define SYNCLINK_GENERIC_HDLC   0

Definition at line 74 of file synclinkmp.c.

#define TCNT   0x60

Definition at line 341 of file synclinkmp.c.

#define TCNTH   0x61

Definition at line 343 of file synclinkmp.c.

#define TCNTL   0x60

Definition at line 342 of file synclinkmp.c.

#define TCONR   0x62

Definition at line 344 of file synclinkmp.c.

#define TCONRH   0x63

Definition at line 346 of file synclinkmp.c.

#define TCONRL   0x62

Definition at line 345 of file synclinkmp.c.

#define TEPR   0x65

Definition at line 348 of file synclinkmp.c.

#define TESTFRAMESIZE   20
#define TIMER0   0x00

Definition at line 382 of file synclinkmp.c.

#define TIMER1   0x08

Definition at line 383 of file synclinkmp.c.

#define TIMER2   0x10

Definition at line 384 of file synclinkmp.c.

#define TIMER3   0x18

Definition at line 385 of file synclinkmp.c.

#define TMC   0x35

Definition at line 331 of file synclinkmp.c.

#define TMCS   0x64

Definition at line 347 of file synclinkmp.c.

#define TRB   0x20

Definition at line 311 of file synclinkmp.c.

#define TRBH   0x21

Definition at line 313 of file synclinkmp.c.

#define TRBL   0x20

Definition at line 312 of file synclinkmp.c.

#define TRC0   0x38

Definition at line 334 of file synclinkmp.c.

#define TRC1   0x39

Definition at line 335 of file synclinkmp.c.

#define TXABORT   0x07

Definition at line 397 of file synclinkmp.c.

#define TXBUFCLR   0x09

Definition at line 399 of file synclinkmp.c.

#define TXCRCEXCL   0x05

Definition at line 395 of file synclinkmp.c.

#define TXCRCINIT   0x04

Definition at line 394 of file synclinkmp.c.

#define TXDISABLE   0x03

Definition at line 393 of file synclinkmp.c.

#define TXDMA   0x20

Definition at line 387 of file synclinkmp.c.

#define TXENABLE   0x02

Definition at line 392 of file synclinkmp.c.

#define TXEOM   0x06

Definition at line 396 of file synclinkmp.c.

#define TXINTE   BIT7

Definition at line 416 of file synclinkmp.c.

#define TXRDYE   BIT1

Definition at line 418 of file synclinkmp.c.

#define TXRESET   0x01

Definition at line 391 of file synclinkmp.c.

#define TXS   0x37

Definition at line 333 of file synclinkmp.c.

#define UDRN   BIT7

Definition at line 422 of file synclinkmp.c.

#define VERSION (   ver,
  rel,
  seq 
)    (((ver)<<16) | ((rel)<<8) | (seq))

Definition at line 28 of file synclinkmp.c.

#define WAKEUP_CHARS   256

Definition at line 502 of file synclinkmp.c.

#define WCRH   0x06

Definition at line 297 of file synclinkmp.c.

#define WCRL   0x04

Definition at line 295 of file synclinkmp.c.

#define WCRM   0x05

Definition at line 296 of file synclinkmp.c.

Typedef Documentation

Function Documentation

MODULE_DEVICE_TABLE ( pci  ,
synclinkmp_pci_tbl   
)
module_exit ( synclinkmp_exit  )
module_init ( synclinkmp_init  )
MODULE_LICENSE ( "GPL"  )
module_param ( break_on_load  ,
bool  ,
 
)
module_param ( ttymajor  ,
int  ,
 
)
module_param ( debug_level  ,
int  ,
 
)
module_param_array ( maxframe  ,
int  ,
NULL  ,
 
)