00001
00002
00003
00004
00005 #ifndef INCLUDE_edtlib_h
00006 #define INCLUDE_edtlib_h
00007
00013 #ifdef USB
00014 #include <usb.h>
00015 #endif
00016
00225 #ifdef DOXYGEN_SHOW_UNDOC
00226
00264 #endif
00265
00266
00267 #ifdef DOXYGEN_SHOW_UNDOC
00268
00272 #endif
00273 #ifdef DOXYGEN_SHOW_UNDOC
00274
00275 #endif
00276
00277
00278
00279 #ifdef DOXYGEN_SHOW_UNDOC
00280
00284 #endif
00285 #ifdef DOXYGEN_SHOW_UNDOC
00286
00287 #endif
00288
00289
00290
00291 #ifdef DOXYGEN_SHOW_UNDOC
00292
00296 #endif
00297 #ifdef DOXYGEN_SHOW_UNDOC
00298
00299 #endif
00300
00301
00302
00303 #ifdef DOXYGEN_SHOW_UNDOC
00304
00308 #endif
00309 #ifdef DOXYGEN_SHOW_UNDOC
00310
00311 #endif
00312
00313
00314 #ifdef DOXYGEN_SHOW_UNDOC
00315
00319 #endif
00320 #ifdef DOXYGEN_SHOW_UNDOC
00321
00322 #endif
00323
00324
00325
00326 #ifdef DOXYGEN_SHOW_UNDOC
00327
00331 #endif
00332 #ifdef DOXYGEN_SHOW_UNDOC
00333
00334 #endif
00335
00336
00337 #define event_t HANDLE
00338
00339
00340
00341
00342 typedef char edt_version_string[128];
00343
00344
00345
00346 #define USE_EVENT_HANDLERS
00347
00348
00349
00350
00351
00352 #define EDT_MAX_KERNEL_EVENTS 20
00353 #define EDT_BASE_EVENTS 1
00354
00355 #define EDT_EODMA_EVENT (EDT_BASE_EVENTS + 0)
00356 #define EDT_EODMA_EVENT_NAME "edt_eodma"
00357 #define EV_EODMA EDT_EODMA_EVENT
00358
00359 #define EDT_EVENT_BUF (EDT_BASE_EVENTS + 1)
00360 #define EDT_BUF_EVENT_NAME "edt_buf"
00361
00362 #define EDT_EVENT_STAT (EDT_BASE_EVENTS + 2)
00363 #define EDT_STAT_EVENT_NAME "edt_stat"
00364
00365 #define EDT_EVENT_P16D_DINT (EDT_BASE_EVENTS + 3)
00366 #define EDT_P16D_DINT_EVENT_NAME "edt_p16dint"
00367
00368 #define EDT_EVENT_P11W_ATTN (EDT_BASE_EVENTS + 4)
00369 #define EDT_P11W_ATTN_EVENT_NAME "edt_p11wattn"
00370
00371 #define EDT_EVENT_P11W_CNT (EDT_BASE_EVENTS + 5)
00372 #define EDT_P11W_CNT_EVENT_NAME "edt_cnt"
00373
00374 #define EDT_PDV_EVENT_ACQUIRE (EDT_BASE_EVENTS + 6)
00375 #define EDT_EVENT_ACQUIRE EDT_PDV_EVENT_ACQUIRE
00376 #define EDT_PDV_ACQUIRE_EVENT_NAME "edt_acquire"
00377
00378 #define EDT_EVENT_PCD_STAT1 (EDT_BASE_EVENTS + 7)
00379 #define EDT_EVENT_PCD_STAT1_NAME "edt_pcd_stat1"
00380
00381 #define EDT_EVENT_PCD_STAT2 (EDT_BASE_EVENTS + 8)
00382 #define EDT_EVENT_PCD_STAT2_NAME "edt_pcd_stat2"
00383
00384 #define EDT_EVENT_PCD_STAT3 (EDT_BASE_EVENTS + 9)
00385 #define EDT_EVENT_PCD_STAT3_NAME "edt_pcd_stat3"
00386
00387 #define EDT_EVENT_PCD_STAT4 (EDT_BASE_EVENTS + 10)
00388 #define EDT_EVENT_PCD_STAT4_NAME "edt_pcd_stat4"
00389
00390 #define EDT_PDV_STROBE_EVENT (EDT_BASE_EVENTS + 11)
00391 #define EDT_PDV_STROBE_EVENT_NAME "edt_pdv_strobe"
00392
00393 #define EDT_EVENT_P53B_SRQ (EDT_BASE_EVENTS + 12)
00394 #define EDT_EVENT_P53B_SRQ_NAME "edt_p53b_srq"
00395
00396 #define EDT_EVENT_P53B_INTERVAL (EDT_BASE_EVENTS + 13)
00397 #define EDT_EVENT_P53B_INTERVAL_NAME "edt_p53b_interval"
00398
00399 #define EDT_EVENT_P53B_MODECODE (EDT_BASE_EVENTS + 14)
00400 #define EDT_EVENT_P53B_MODECODE_NAME "edt_p53b_modecode"
00401
00402 #define EDT_EVENT_P53B_DONE (EDT_BASE_EVENTS + 15)
00403 #define EDT_EVENT_P53B_DONE_NAME "edt_p53b_done"
00404
00405 #define EDT_PDV_EVENT_FVAL (EDT_BASE_EVENTS + 16)
00406 #define EDT_PDV_EVENT_FVAL_NAME "edt_pdv_fval"
00407
00408 #define EDT_PDV_EVENT_TRIGINT (EDT_BASE_EVENTS + 17)
00409 #define EDT_PDV_EVENT_TRIGINT_NAME "edt_pdv_trigint"
00410
00411 #define EDT_EVENT_TEMP (EDT_BASE_EVENTS + 18)
00412 #define EDT_EVENT_TEMP_NAME "edt_temp_intr"
00413
00414 #define EDT_MAX_EVENT_TYPES (EDT_EVENT_TEMP + 1)
00415
00416
00417
00418
00419
00420
00421
00422 #define EDT_EVENT_MODE_MASK 0xFF000000
00423 #define EDT_EVENT_MODE_SHFT 24
00424 #define EDT_EVENT_MODE_ONCE 0
00425 #define EDT_EVENT_MODE_CONTINUOUS 1
00426 #define EDT_EVENT_MODE_SERIALIZE 2
00427
00428 #if defined(WIN32) || defined(_NT_DRIVER_)
00429 typedef unsigned __int64 uint64_t ;
00430 typedef __int64 int64_t ;
00431 typedef unsigned int uint32_t ;
00432 typedef int int32_t ;
00433 #endif
00434
00435
00436
00437
00438 #define PROM_UNKN 0
00439 #define AMD_4013E 1
00440 #define AMD_4013XLA 2
00441 #define AMD_4028XLA 3
00442 #define AMD_XC2S150 4
00443 #define AMD_XC2S200_4M 5
00444 #define AMD_XC2S200_8M 6
00445 #define AMD_XC2S100_8M 7
00446 #define AMD_XC2S300E 8
00447 #define SPI_XC3S1200E 9
00448 #define AMD_XC5VLX30T 10
00449 #define AMD_XC5VLX50T 11
00450 #define AMD_EP2SGX30D 12
00451
00452
00453
00454
00455
00456
00457 #ifdef USE_LONG_BUFCNT
00458 #if defined(_NT_) || defined(_NT_DRIVER_)
00459 typedef unsigned long long bufcnt_t ;
00460 #else
00461 typedef uint64_t bufcnt_t ;
00462 #endif
00463 #else
00464 typedef u_int bufcnt_t ;
00465 #endif
00466
00467 typedef struct
00468 {
00469 int m;
00470 int n;
00471 int v;
00472 int r;
00473 int h;
00474 int l;
00475 int x;
00476 } edt_pll ;
00477
00478
00479
00480
00481
00482 typedef char edt_bitpath[128] ;
00483
00484
00485
00486
00487 #define EDT_READ 0
00488 #define EDT_WRITE 1
00489
00490 #ifndef TRUE
00491
00492 #define TRUE 1
00493 #define FALSE 0
00494
00495 #endif
00496
00497
00498 typedef struct
00499 {
00500 uint_t used_dma ;
00501 uint_t alloc_dma ;
00502 uint_t active_dma ;
00503 } edt_dma_info ;
00504
00505
00506 #define EDT_USER_BUFS 0
00507 #define EDT_COPY_KBUFS 1
00508 #define EDT_MMAP_KBUFS 2
00509 #define EDT_PERSISTENT_KBUFS 4
00510
00511 #define MAX_EXTENDED_WORDS 32
00512 typedef struct _EdtMezzDescriptor {
00513 int id;
00514 int n_extended_words;
00515 int extended_rev;
00516 uint_t extended_data[MAX_EXTENDED_WORDS];
00517 } EdtMezzDescriptor;
00518 #ifndef _KERNEL
00519
00520
00521
00522 typedef void (*EdtEventFunc)(void *);
00523
00524 typedef struct edt_event_handler {
00525 struct edt_event_handler *next;
00526 EdtEventFunc callback;
00527 struct edt_device *owner;
00528 uint_t event_type;
00529 void * data;
00530 u_char active;
00531 u_char continuous;
00532 #ifdef _NT_
00533 thread_t wait_thread;
00534 event_t wait_event;
00535 event_t closing_event;
00536 uint_t thrdid;
00537 #elif defined(__sun)
00538 thread_t thrdid ;
00539 sema_t sema_thread ;
00540 #elif defined(__linux__)
00541
00542
00543 thread_t thrdid;
00544 #elif defined(__APPLE__)
00545 pthread_t thrdid ;
00546
00547 #endif
00548
00549 } EdtEventHandler;
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561
00562 typedef int (*EdtBdFilterFunction) (char *dev, int unit, int bd_id, void *data);
00563
00564 typedef struct {
00565 char type[8];
00566 int id;
00567 int bd_id;
00568 } Edt_bdinfo ;
00569
00570
00571
00572
00573
00574 typedef struct {
00575 int clock;
00576 char sn[11];
00577 char pn[11];
00578 char opt[11];
00579 int rev;
00580 char ifx[11];
00581 } Edt_embinfo;
00582
00583 typedef struct {
00584 char fpga[32];
00585 char promdesc[32];
00586 char busdesc[8];
00587 int xtype;
00588 int magic;
00589 u_int sectorsize;
00590 u_int sectsperseg;
00591 int defaultseg;
00592 u_int (*id_addr)(u_long, int);
00593 #if 0
00594
00595 struct sector_struct sector[16];
00596 #endif
00597 } Edt_prominfo ;
00598
00599 #define MAX_DMA_BUFFERS 1024
00600
00601 typedef struct {
00602
00603 int size;
00604
00605 int allocated_size;
00606
00607
00608 #if defined(__sun)
00609
00610 thread_t ring_tid;
00611
00612 #endif
00613
00614 char write_flag;
00615
00616
00617 char owned;
00618
00619 } EdtRingBuffer;
00620
00621 typedef struct _dma_data_block {
00622 u_int buffernum;
00623 u_char *pointer;
00624 u_int offset;
00625 u_int length;
00626 } EdtDMADataBlock;
00627
00628 #define EDT_SS_TYPE 1
00629 #define EDT_GS_TYPE 2
00630 #define EDT_CD_TYPE 3
00631
00632
00633
00634
00635 typedef struct _optionstr_fields {
00636 int board_type;
00637 int DMA_channels;
00638 char mezzanine_type[68];
00639 char filename[68];
00640 int version_number;
00641 int rev_number;
00642 char date[12];
00643 int custom_DMA_channels;
00644 int available_DMA_channels;
00645 } EdtOptionStringFields;
00646
00647 typedef struct _EdtBitfileDescriptor {
00648 edt_bitpath bitfile_name;
00649 edt_bitpath mezz_name0;
00650 edt_bitpath mezz_name1;
00651 char optionstr[68];
00652 char mezz_optionstr0[32];
00653 char mezz_optionstr1[32];
00654
00655 EdtOptionStringFields ostr;
00656
00657 int revision_register;
00658 int string_type;
00659
00660 } EdtBitfileDescriptor;
00661
00662 typedef struct edt_device {
00663 #ifdef __APPLE__
00664 u_int fd;
00665 #else
00666 HANDLE fd ;
00667 #endif
00668 u_int unit_no ;
00669 u_int spi_reg_base ;
00670 uint_t devid ;
00671 uint_t devtype ;
00672 uint_t todo;
00673 uint_t b_count;
00674
00675
00676 EdtRingBuffer rb_control[MAX_DMA_BUFFERS];
00677
00678
00679
00680 unsigned char * ring_buffers[MAX_DMA_BUFFERS];
00681
00682 unsigned char * tmpbuf;
00683
00684 uint_t tmpbufsize;
00685
00686 char edt_devname[64] ;
00687 uint_t cursample ;
00688 uint_t minchunk ;
00689 bufcnt_t donecount ;
00690 uint_t nextwbuf ;
00691
00692 uint_t ring_buffer_numbufs ;
00693 uint_t ring_buffer_bufsize ;
00694 uint_t ring_buffers_allocated ;
00695 uint_t ring_buffers_configured ;
00696 uint_t loops ;
00697 uint_t ring_buffer_allocated_size ;
00698
00699 uint_t write_flag ;
00700
00701 uint_t foi_unit;
00702
00703 uint_t debug_level ;
00704 Dependent *dd_p ;
00705 void *Pdma_p;
00706
00707 u_char * data_end;
00708
00709
00710
00711 EdtEventHandler event_funcs[EDT_MAX_KERNEL_EVENTS];
00712 u_int use_RT_for_event_func ;
00713
00714
00715 u_int channel_no;
00716
00717
00718
00719
00720
00721 unsigned char * base_buffer;
00722
00723 u_int header_size;
00724 int header_offset;
00725
00726 u_int pending_samples;
00727
00728 int hubidx;
00729 volatile caddr_t mapaddr;
00730
00731 void * pInterleaver;
00732
00733 unsigned char *output_base;
00734 unsigned char **output_buffers;
00735
00736 #ifdef USB
00737 usb_dev_handle *usb_p ;
00738 int usb_bulk_read_endpoint ;
00739 int usb_bulk_write_endpoint ;
00740 int usb_rtimeout ;
00741 int usb_wtimeout ;
00742 #endif
00743
00744 u_int buffer_granularity;
00745 u_int mmap_buffers;
00746 u_int totalsize;
00747 u_int fullbufsize;
00748
00749
00750
00751
00752
00753 EdtDMADataBlock *blocks;
00754
00755 double last_buffer_time;
00756 double next_sample;
00757 u_int period;
00758
00759 u_char * last_sample_end;
00760
00761 u_char wait_mode;
00762 u_char freerun;
00763
00764 u_char DMA_channels;
00765
00766 EdtBitfileDescriptor bfd;
00767 EdtMezzDescriptor mezz;
00768
00769 char last_direction;
00770
00771 } EdtDev;
00772
00773
00774
00775
00776
00777
00778
00779 #ifdef _NT_
00780
00781 #define EDTAPI __declspec(dllexport)
00782
00783 #ifdef LIBDLL
00784
00785 #define EDTIMPORT __declspec(dllimport)
00786
00787 #else
00788
00789 #define EDTIMPORT
00790
00791 #endif
00792
00793 #define strncasecmp strnicmp
00794 #define strcasecmp stricmp
00795
00796 #else
00797
00798 #define EDTAPI
00799 #define EDTIMPORT
00800
00801 #endif
00802
00803
00804
00809 EDTAPI EdtDev * edt_open(char *device_name, int unit) ;
00810 EDTAPI EdtDev * edt_open_quiet(char *device_name, int unit) ;
00811 EDTAPI EdtDev * edt_open_channel(char *device_name, int unit, int channel) ;
00812 EDTAPI int edt_close(EdtDev *edt_p) ;
00813
00815
00819 EDTAPI int edt_read(EdtDev *edt_p, void *buf, uint_t size) ;
00820 EDTAPI int edt_write(EdtDev *edt_p, void *buf, uint_t size) ;
00821
00822 EDTAPI int edt_configure_ring_buffers(EdtDev *edt_p, int bufsize,
00823 int numbufs, int write_flag,
00824 unsigned char **bufarray) ;
00825
00826 EDTAPI int edt_configure_block_buffers_mem(EdtDev *edt_p, int bufsize,
00827 int numbufs, int write_flag,
00828 int header_size, int header_before,
00829 u_char *user_mem);
00830 EDTAPI int edt_configure_block_buffers(EdtDev *edt_p, int bufsize,
00831 int numbufs, int write_flag,
00832 int header_size, int header_before);
00833
00834
00835 EDTAPI int edt_disable_ring_buffers(EdtDev *edt_p) ;
00836
00837 EDTAPI int edt_get_numbufs(EdtDev *edt_p);
00838
00839 EDTAPI int edt_reset_ring_buffers(EdtDev *edt_p, uint_t bufnum);
00840 EDTAPI int edt_abort_dma(EdtDev *edt_p);
00841 EDTAPI int edt_abort_current_dma(EdtDev *edt_p);
00842 EDTAPI int edt_stop_buffers(EdtDev *edt_p);
00843 EDTAPI int edt_start_buffers(EdtDev *edt_p, uint_t count);
00844
00845
00846 EDTAPI int edt_set_buffer_size(EdtDev *edt_p,
00847 uint_t which_buf,
00848 uint_t size,
00849 uint_t write_flag);
00850
00851 EDTAPI unsigned int edt_allocated_size(EdtDev *edt_p, int bufnum);
00852 EDTAPI int edt_get_total_bufsize(EdtDev *edt_p,
00853 int bufsize,
00854 int header_size);
00855
00856 EDTAPI unsigned char *edt_wait_for_buffers(EdtDev *edt_p, int count) ;
00857
00858
00859 EDTAPI int edt_ref_tmstamp(EdtDev *edt_p, u_int val) ;
00860 EDTAPI int edt_get_timestamp(EdtDev *edt_p, u_int *timep, u_int bufnum) ;
00861 EDTAPI int edt_get_reftime(EdtDev *edt_p, u_int *timep) ;
00862 EDTAPI unsigned char *edt_wait_for_next_buffer(EdtDev *edt_p);
00863 EDTAPI unsigned char *edt_last_buffer_timed(EdtDev *edt_p, u_int *timep) ;
00864 EDTAPI unsigned char *edt_last_buffer(EdtDev *edt_p) ;
00865 EDTAPI unsigned char *edt_wait_buffers_timed(EdtDev *edt_p, int count, u_int *timep);
00866 EDTAPI int edt_set_buffer(EdtDev *edt_p, uint_t bufnum) ;
00867 EDTAPI unsigned char* edt_next_writebuf(EdtDev *edt_p) ;
00868 EDTAPI unsigned char** edt_buffer_addresses(EdtDev *edt_p) ;
00869 EDTAPI unsigned char * edt_get_current_dma_buf(EdtDev * edt_p);
00870
00871 EDTAPI bufcnt_t edt_done_count(EdtDev *edt_p) ;
00872 EDTAPI unsigned char * edt_check_for_buffers(EdtDev *edt_p, uint_t count);
00873
00874 EDTAPI uint_t edt_get_bytecount(EdtDev *edt_p) ;
00875 EDTAPI uint_t edt_get_timecount(EdtDev *edt_p) ;
00876 EDTAPI void edt_set_direction(EdtDev *edt_p, int direction) ;
00877 EDTAPI uint_t edt_get_timeout_count(EdtDev *edt_p);
00878 EDTAPI unsigned short edt_get_direction(EdtDev *edt_p) ;
00879
00880 EDTAPI void edt_startdma_reg(EdtDev *edt_p, uint_t desc, uint_t val) ;
00881 EDTAPI void edt_enddma_reg(EdtDev *edt_p, uint_t desc, uint_t val) ;
00882 EDTAPI void edt_startdma_action(EdtDev *edt_p, uint_t val) ;
00883 EDTAPI void edt_enddma_action(EdtDev *edt_p, uint_t val) ;
00884
00885 EDTAPI void edt_read_start_action(EdtDev * edt_p, u_int enable, u_int reg_desc,
00886 u_char set, u_char clear, u_char setclear, u_char clearset, int delay1, int delay2);
00887 EDTAPI void edt_read_end_action(EdtDev * edt_p, u_int enable, u_int reg_desc,
00888 u_char set, u_char clear, u_char setclear, u_char clearset, int delay1, int delay2);
00889 EDTAPI void edt_write_start_action(EdtDev * edt_p, u_int enable, u_int reg_desc,
00890 u_char set, u_char clear, u_char setclear, u_char clearset, int delay1, int delay2);
00891 EDTAPI void edt_write_end_action(EdtDev * edt_p, u_int enable, u_int reg_desc,
00892 u_char set, u_char clear, u_char setclear, u_char clearset, int delay1, int delay2);
00893
00894 EDTAPI int edt_set_timeout_action(EdtDev *edt_p, u_int action);
00895 EDTAPI int edt_get_timeout_goodbits(EdtDev *edt_p);
00896 EDTAPI int edt_get_goodbits(EdtDev *edt_p);
00897
00898 EDTAPI int edt_set_event_func(EdtDev *edt_p, int event_type, EdtEventFunc f, void *data, int continuous) ;
00899 EDTAPI int edt_remove_event_func(EdtDev *edt_p, int event_type) ;
00900
00901 EDTAPI uint_t edt_get_todo(EdtDev *edt_p) ;
00902 EDTAPI int edt_ring_buffer_overrun(EdtDev *edt_p) ;
00903
00905
00906
00907 EDTAPI int edt_configure_channel_ring_buffers(EdtDev *edt_p,
00908 int bufsize, int numbufs, int write_flag,
00909 unsigned char **bufarray) ;
00910 EDTAPI int edt_disable_ring_buffer(EdtDev *edt_p,
00911 int nIndex);
00912 EDTAPI int edt_cancel_current_dma(EdtDev *edt_p) ;
00913 EDTAPI int edt_user_dma_wakeup(EdtDev *edt_p);
00914 EDTAPI int edt_had_user_dma_wakeup(EdtDev *edt_p);
00915
00919 EDTAPI uint_t edt_reg_read(EdtDev *edt_p, uint_t desc) ;
00920 EDTAPI void edt_reg_write(EdtDev *edt_p, uint_t desc, uint_t val) ;
00921 EDTAPI uint_t edt_reg_or(EdtDev *edt_p, uint_t desc, uint_t val) ;
00922 EDTAPI uint_t edt_reg_and(EdtDev *edt_p, uint_t desc, uint_t val) ;
00923 EDTAPI void edt_reg_clearset(EdtDev *edt_p, uint_t desc, uint_t val) ;
00924 EDTAPI void edt_reg_setclear(EdtDev *edt_p, uint_t desc, uint_t val) ;
00925 EDTAPI void edt_intfc_write(EdtDev *edt_p, uint_t offset, uchar_t val) ;
00926 EDTAPI uchar_t edt_intfc_read(EdtDev *edt_p, uint_t offset) ;
00927 EDTAPI void edt_intfc_write_short(EdtDev *edt_p, uint_t offset, u_short val) ;
00928 EDTAPI u_short edt_intfc_read_short(EdtDev *edt_p, uint_t offset) ;
00929 EDTAPI void edt_intfc_write_32(EdtDev *edt_p, uint_t offset, uint_t val) ;
00930 EDTAPI uint_t edt_intfc_read_32(EdtDev *edt_p, uint_t offset) ;
00931
00936 EDTAPI void edt_flush_fifo(EdtDev *edt_p) ;
00937 EDTAPI int edt_set_firstflush(EdtDev *edt_p, int val) ;
00938 EDTAPI int edt_get_firstflush(EdtDev *edt_p) ;
00939 EDTAPI void edt_flush_channel(EdtDev * edt_p, int channel) ;
00940
00942
00943
00944 EDTAPI int edt_get_wait_status(EdtDev *edt_p);
00945 EDTAPI int edt_set_timeout_ok(EdtDev *edt_p, int val);
00946 EDTAPI int edt_get_timeout_ok(EdtDev *edt_p);
00947
00948
00949
00950 EDTAPI void pcd_set_funct(EdtDev *edt_p, uchar_t val) ;
00951 EDTAPI int edt_set_eodma_int(EdtDev *edt_p, int sig) ;
00952 EDTAPI int edt_set_autodir(EdtDev *edt_p, int val) ;
00953
00954
00955 EDTAPI int edt_send_msg(EdtDev *edt_p, int unit, char *msg, int size) ;
00956 EDTAPI int edt_get_msg(EdtDev *edt_p, char *msgbuf, int maxsize) ;
00957 EDTAPI int edt_get_msg_unit(EdtDev *edt_p, char *msgbuf, int maxsize, int unit) ;
00958 EDTAPI int edt_serial_wait(EdtDev *edt_p, int size, int timeout) ;
00959
00960 EDTAPI void edt_send_dma(EdtDev *edt_p, int unit, uint_t start_val) ;
00961 EDTAPI int edt_wait_avail(EdtDev *edt_p) ;
00962 EDTAPI void edt_init_mac8100(EdtDev *edt_p) ;
00963 EDTAPI u_short edt_read_mac8100(EdtDev *edt_p, uint_t add) ;
00964 EDTAPI void edt_write_mac8100(EdtDev *edt_p, uint_t add, u_short data) ;
00965
00966 EDTAPI int edt_get_dependent(EdtDev *edt_p, void *addr) ;
00967 EDTAPI int edt_set_dependent(EdtDev *edt_p, void *addr) ;
00968
00969 EDTAPI int edt_flush_resp(EdtDev *edt_p) ;
00970 EDTAPI int edt_get_tracebuf(EdtDev *edt_p, uint_t *addr) ;
00971 EDTAPI int edt_set_flush(EdtDev *edt_p, int val) ;
00975 EDTAPI int edt_timeouts(EdtDev *edt_p) ;
00977
00978
00979 EDTAPI void edt_flush_mode(EdtDev *edt_p, uint_t val) ;
00980
00981 EDTAPI void edt_check_foi(EdtDev *edt_p) ;
00982 EDTAPI void edt_foi_autoconfig(EdtDev *edt_p) ;
00983 EDTAPI int edt_set_foiunit(EdtDev *edt_p, int unit) ;
00984 EDTAPI int edt_get_foiunit(EdtDev *edt_p) ;
00985
00986 EDTAPI int edt_set_rci_dma(EdtDev *edt_p, int unit, int channel) ;
00987 EDTAPI int edt_get_rci_dma(EdtDev *edt_p, int unit) ;
00988 EDTAPI int edt_set_rci_chan(EdtDev *edt_p, int unit, int channel) ;
00989 EDTAPI int edt_get_rci_chan(EdtDev *edt_p, int unit) ;
00990
00991
00992 EDTAPI void edt_reset_counts(EdtDev *edt_p) ;
00993 EDTAPI void edt_reset_serial(EdtDev *edt_p) ;
00994 EDTAPI int edt_set_foicount(EdtDev *edt_p, int count) ;
00995 EDTAPI int edt_get_foicount(EdtDev *edt_p) ;
00996
00997
00998 EDTAPI int edt_set_debug(EdtDev *edt_p, int count) ;
00999 EDTAPI int edt_get_debug(EdtDev *edt_p) ;
01000
01001
01006 EDTAPI int edt_set_burst_enable(EdtDev *edt_p, int on) ;
01007 EDTAPI int edt_get_burst_enable(EdtDev *edt_p) ;
01008
01009 EDTAPI int edt_set_rtimeout(EdtDev *edt_p, int value) ;
01010 EDTAPI int edt_set_wtimeout(EdtDev *edt_p, int value) ;
01011
01012 EDTAPI int edt_get_rtimeout(EdtDev *edt_p) ;
01013 EDTAPI int edt_get_wtimeout(EdtDev *edt_p) ;
01015
01016 EDTAPI void edt_set_out_clk(EdtDev *edt_p, edt_pll *clk_data) ;
01017 EDTAPI u_char edt_set_funct_bit(EdtDev *edt_p, u_char mask) ;
01018 EDTAPI u_char edt_clr_funct_bit(EdtDev *edt_p, u_char mask) ;
01019 EDTAPI u_char edt_set_pllct_bit(EdtDev * edt_p, u_char mask);
01020 EDTAPI u_char edt_clr_pllct_bit(EdtDev * edt_p, u_char mask);
01021 EDTAPI int edt_set_ignore_signals(EdtDev *edt_p, int ignore);
01022
01023
01024
01025
01026
01027
01028
01032 EDTAPI int edt_device_id(EdtDev *edt_p);
01033 EDTAPI char * edt_idstr(int id) ;
01034 EDTAPI uchar_t * edt_alloc(int size) ;
01035 EDTAPI void edt_free(uchar_t *ptr) ;
01036 EDTAPI int edt_access(char *fname, int perm) ;
01037 EDTAPI int edt_parse_unit(const char *str, char *dev, const char *default_dev) ;
01038 EDTAPI int edt_parse_unit_channel(const char *str, char *dev,
01039 const char *default_dev,
01040 int *channel) ;
01041 EDTAPI int edt_access(char *fname, int perm);
01042 EDTAPI void edt_correct_slashes(char *str);
01043 EDTAPI void edt_fwd_to_back(char *str);
01044 EDTAPI void edt_back_to_fwd(char *str);
01045 EDTAPI int edt_find_xpn(char *partnum, char *xilinx);
01046 EDTAPI uint_t edt_overflow(EdtDev *edt_p) ;
01047 EDTAPI void edt_perror(char *str) ;
01048 EDTAPI u_int edt_errno(void) ;
01049
01050 EDTAPI char * edt_timestring(u_int *timep) ;
01051 EDTAPI int edt_system(const char *cmdstr) ;
01052 EDTAPI int edt_fix_millennium(char *str, int rollover);
01053
01054 EDTAPI char *edt_fmt_pn(char *pn, char *pn_str);
01055 EDTAPI int edt_parse_esn(char *str, Edt_embinfo *ei);
01056 EDTAPI void edt_get_sns(EdtDev *edt_p, char *esn, char *osn);
01057 EDTAPI void edt_get_sns_sector(EdtDev *edt_p, char *esn, char *osn, int sector);
01058 EDTAPI void edt_get_osn(EdtDev *edt_p, char *osn);
01059 EDTAPI void edt_get_esn(EdtDev *edt_p, char *esn);
01060
01061 EDTAPI DIRHANDLE edt_opendir(char *dirname);
01062 EDTAPI int edt_readdir(DIRHANDLE h, char *name);
01063 EDTAPI void edt_closedir(DIRHANDLE h);
01064
01065
01066
01067 EDTAPI double edt_dtime(void);
01068 EDTAPI double edt_timestamp(void);
01069 EDTAPI double edt_elapsed(u_char reset);
01070
01071 EDTAPI void edt_msleep(int msecs) ;
01072 EDTAPI void edt_usleep(int usecs) ;
01073 EDTAPI void edt_usec_busywait(u_int usec);
01074
01075
01076
01077 EDTAPI int edt_set_bitpath(EdtDev *edt_p, const char *bitpath) ;
01078 EDTAPI int edt_get_bitpath(EdtDev *edt_p, char *bitpath, int size) ;
01079 EDTAPI int edt_set_mezz_chan_bitpath(EdtDev *edt_p, const char *bitpath, int channel) ;
01080 EDTAPI int edt_get_mezz_chan_bitpath(EdtDev *edt_p, char *bitpath, int size, int channel) ;
01081 EDTAPI int edt_set_mezz_bitpath(EdtDev *edt_p, const char *bitpath) ;
01082 EDTAPI int edt_get_mezz_bitpath(EdtDev *edt_p, char *bitpath, int size) ;
01083
01084 EDTAPI char * edt_get_last_bitpath(EdtDev *edt_p);
01085
01086 EDTAPI u_int edt_get_full_board_id(EdtDev *edt_p,
01087 int *extended_n,
01088 int *rev_id,
01089 u_int *extended_data);
01090
01091 EDTAPI u_int edt_get_board_id(EdtDev *edt_p);
01092
01093
01094 EDTAPI int edt_get_driver_version(EdtDev *edt_p,
01095 char *versionstr,
01096 int size);
01097
01098 EDTAPI int edt_get_driver_buildid(EdtDev *edt_p,
01099 char *build,
01100 int size);
01101
01102 EDTAPI int edt_get_library_version(EdtDev *edt_p,
01103 char *versionstr,
01104 int size);
01105
01106 EDTAPI int edt_get_library_buildid(EdtDev *edt_p,
01107 char *build,
01108 int size);
01109
01110 EDTAPI int edt_check_version(EdtDev *edt_p);
01111 EDTAPI int edt_get_kernel_event(EdtDev *edt_p, int event_num);
01112 EDTAPI u_int edt_get_dma_info(EdtDev * edt_p, edt_dma_info *dmainfo);
01113
01115
01116 EDTAPI int edt_pci_reboot(EdtDev *edt_p);
01117 EDTAPI int edt_set_merge(EdtDev * edt_p, u_int size, int span, u_int offset, u_int count) ;
01118
01119 EDTAPI void edt_set_buffer_granularity(EdtDev *edt_p,
01120 u_int granularity);
01121
01122 EDTAPI void edt_reset_fifo(EdtDev *) ;
01123
01124 EDTAPI u_int edt_set_sgbuf(EdtDev *edt_p, u_int sgbuf, u_int bufsize,
01125 u_int bufdir, u_int verbose) ;
01126 EDTAPI u_int edt_set_sglist(EdtDev *edt_p, u_int bufnum,
01127 u_int *log_list, u_int log_entrys) ;
01128
01129 EDTAPI int edt_lockoff(EdtDev *edt_p) ;
01130
01131 EDTAPI int edt_enable_event(EdtDev *edt_p, int event_type) ;
01132 EDTAPI int edt_reset_event_counter(EdtDev * edt_p, int event_type) ;
01133 EDTAPI int edt_wait_event(EdtDev *edt_p, int event_type,
01134 int timeoutval) ;
01135 EDTAPI void edt_dmasync_fordev(EdtDev *edt, int bufnum, int offset,
01136 int bytecount) ;
01137 EDTAPI void edt_dmasync_forcpu(EdtDev *edt, int bufnum, int offset,
01138 int bytecount) ;
01139 EDTAPI u_int edt_get_bufbytecount(EdtDev * edt_p, u_int *cur_buffer) ;
01140 EDTAPI int edt_little_endian(void) ;
01141
01146 EDTAPI int edt_do_timeout(EdtDev *edt_p);
01148 EDTAPI int edt_set_continuous(EdtDev *edt_p, int on) ;
01149 EDTAPI void edt_resume(EdtDev *edt_p) ;
01150 EDTAPI void edt_set_timetype(EdtDev *edt_p, u_int type) ;
01151 EDTAPI caddr_t edt_mapmem(EdtDev *edt_p, u_int addr, int size) ;
01152 EDTAPI u_int edt_get_mappable_size(EdtDev *edt_p);
01153 EDTAPI u_int edt_get_drivertype(EdtDev *edt_p) ;
01154 EDTAPI int edt_set_drivertype(EdtDev *edt_p, u_int type) ;
01155 EDTAPI void edt_set_abortintr(EdtDev *edt_p, u_int val) ;
01156
01157 EDTAPI int edt_write_pio(EdtDev *edt_p, u_char *buf, int size);
01158
01159 EDTAPI int edt_set_max_buffers(EdtDev *edt_p, int newmax);
01160 EDTAPI int edt_get_max_buffers(EdtDev *edt_p);
01161
01162 EDTAPI int edt_set_kernel_buffers(EdtDev *edt_p, int onoff);
01163 EDTAPI int edt_get_kernel_buffers(EdtDev *edt_p);
01164 EDTAPI int edt_set_persistent_buffers(EdtDev *edt_p, int onoff);
01165 EDTAPI int edt_get_persistent_buffers(EdtDev *edt_p);
01166 EDTAPI int edt_set_mmap_buffers(EdtDev *edt_p, int onoff);
01167 EDTAPI int edt_get_mmap_buffers(EdtDev *edt_p);
01168
01169 EDTAPI int edt_get_kernel_alloc(EdtDev *edt_p, int pool);
01170
01171 EDTAPI void edt_set_dump_reg_access(int on);
01172
01173 #ifdef __sun
01174 EDTAPI void edt_set_RT(u_int pri) ;
01175 EDTAPI int edt_use_umem_lock(EdtDev *edt_p, u_int use_lock) ;
01176 EDTAPI int edt_get_umem_lock(EdtDev *edt_p) ;
01177 #endif
01178
01179 EDTAPI void edt_x_byte_program(EdtDev *edt_p, u_int addr, u_char data, int isbt);
01180 EDTAPI void edt_x_block_program(EdtDev *edt_p, u_int addr, u_char *data, int nbytes, int xtype);
01181 EDTAPI void edt_x_verify(EdtDev *edt_p, u_int addr, u_char *data, int nbytes, int xtype);
01182 EDTAPI void edt_x_reset(EdtDev * edt_p, int isbt);
01183 EDTAPI void edt_x_print16(EdtDev * edt_p, u_int addr, int xtype);
01184 EDTAPI int edt_x_prom_detect(EdtDev *edt_p, u_char *stat, int verbose);
01185 EDTAPI Edt_prominfo *edt_get_prominfo(int promcode);
01186 EDTAPI int edt_get_max_promcode();
01187 EDTAPI u_char edt_x_read(EdtDev * edt_p, u_int addr, int xtype);
01188 EDTAPI int edt_ltx_hub(EdtDev *edt_p);
01189 EDTAPI void edt_ltx_reboot(EdtDev *edt_p);
01190 EDTAPI int edt_check_ltx_hub(EdtDev *edt_p);
01191 EDTAPI void edt_set_ltx_hub(EdtDev *edt_p, int hub);
01192 EDTAPI u_int edt_get_id_addr(int promcode, int segment);
01193 EDTAPI u_int edt_get_id_addrs(EdtDev *edt_p, int promcode, int segment, u_int *osn_addr, u_int *esn_addr);
01194 EDTAPI int edt_program_xilinx(EdtDev *edt_p, const u_char *buf, int size, int do_sleep);
01195 int edt_program_xilinx_start(EdtDev *edt_p);
01196 void edt_program_xilinx_chunk(EdtDev *edt_p, const u_char *buf, int xfer, int do_sleep);
01197 int edt_program_xilinx_end(EdtDev *edt_p);
01198 EDTAPI long edt_get_x_file_header(char *fname, char *header, int *size);
01199 EDTAPI long edt_get_x_file_header_magic(char *fname, char *header, int *size, int *magic);
01200 EDTAPI int edt_get_x_array_header_rstat(u_char *ba, char *header, int *size);
01201 EDTAPI u_char *edt_get_x_array_header(u_char *ba, char *header, int *size);
01202 EDTAPI u_char *edt_get_x_array_header_magic(u_char *ba, char *header, int *size, int *magic);
01203 EDTAPI int edt_get_x_header_magic(FILE *fp, char *header, int *size, int *magic);
01204 EDTAPI void edt_readinfo(EdtDev *edt_p, int promcode, int segment, char *id, char *edtsn, char *oemsn);
01205 EDTAPI void edt_x_getname(EdtDev *edt_p, int promcode, char *name);
01206 EDTAPI void edt_x_getname_auto(EdtDev *edt_p, int promcode, char *name);
01207 EDTAPI int edt_ltx_prom_detect(EdtDev *edt_p, u_char *stat, u_int *frb, int verbose);
01208 EDTAPI Edt_bdinfo *edt_detect_boards(char *dev, int unit, int *nunits, int verbose);
01209 EDTAPI Edt_bdinfo *edt_detect_boards_id(char *dev, int unit, u_int id, int *nunits, int verbose);
01210 EDTAPI Edt_bdinfo *edt_detect_boards_ids(char *dev, int unit, u_int *ids, int *nunits, int verbose);
01211 EDTAPI Edt_bdinfo *edt_detect_boards_filter(EdtBdFilterFunction filter, void *data, int *nunits, int verbose);
01212
01213 EDTAPI int edt_sector_erase(EdtDev *edt_p, u_int sector, u_int sec_size, int type);
01214
01215 EDTAPI int edt_prom_detect(EdtDev *edt_p, u_char *stat, int verbose);
01216
01217
01218
01219 EDTAPI void edt_set_trace_regs(EdtDev *edt_p, u_int reg_def, u_int state);
01220
01221 EDTAPI void edt_trace_regs_enable(EdtDev *edt_p, u_int state);
01222
01223
01224
01225
01226 EDTAPI void edt_set_do_fast(int val) ;
01227 EDTAPI void edt_set_force_slow(int val) ;
01228 EDTAPI int edt_get_do_fast(void) ;
01229 EDTAPI int edt_get_force_slow(void) ;
01230 EDTAPI int edt_get_force(void) ;
01231 EDTAPI int edt_get_debug_fast(void);
01232 EDTAPI int edt_set_debug_fast(int val);
01233 EDTAPI u_char edt_flipbits(u_char val);
01234
01235
01236 EDTAPI int edt_ioctl(EdtDev *, int code, void *arg);
01237 EDTAPI int edt_ioctl_nt(EdtDev *edt_p, int controlCode,
01238 void *inBuffer, int inSize, void *outBuffer,
01239 int outSize, int *bytesReturned) ;
01240
01241
01242 EDTAPI uchar_t pcd_get_funct(EdtDev *edt_p) ;
01243 EDTAPI void pcd_set_byteswap(EdtDev *edt_p, int val) ;
01244 EDTAPI int pcd_set_statsig(EdtDev *edt_p, int sig) ;
01245 EDTAPI uchar_t pcd_get_stat(EdtDev *edt_p) ;
01246 EDTAPI uchar_t pcd_get_stat_polarity(EdtDev *edt_p) ;
01247 EDTAPI void pcd_set_stat_polarity(EdtDev *edt_p, uchar_t val) ;
01248 EDTAPI unsigned char pcd_get_cmd(EdtDev *edt_p) ;
01249 EDTAPI void pcd_set_cmd(EdtDev *edt_p, uchar_t val) ;
01250 EDTAPI void pcd_flush_channel(EdtDev * edt_p, int channel) ;
01251
01252 #ifdef PCD
01253 EDTAPI u_char pcd_get_option(EdtDev *edt_p) ;
01254 EDTAPI void sse_shift(EdtDev *edt_p, int shift) ;
01255 EDTAPI double sse_set_out_clk(EdtDev * edt_p, double fmhz) ;
01256 EDTAPI void pcd_pio_init(EdtDev *edt_p) ;
01257 EDTAPI void pcd_pio_flush_fifo(EdtDev * edt_p) ;
01258 EDTAPI int pcd_pio_read(EdtDev *edt_p, u_char *buf, int size) ;
01259 EDTAPI int pcd_pio_write(EdtDev *edt_p, u_char *buf, int size) ;
01260 EDTAPI void pcd_pio_set_direction(EdtDev *edt_p, int direction) ;
01261 EDTAPI void pcd_pio_intfc_write(EdtDev *, u_int, u_char) ;
01262 EDTAPI u_char pcd_pio_intfc_read(EdtDev *, u_int) ;
01263 EDTAPI void pcd_set_abortdma_onintr(EdtDev *edt_p, int flag) ;
01264
01265 #endif
01266
01267 #ifdef P16D
01268 EDTAPI void p16d_set_command(EdtDev *edt_p, u_short val) ;
01269 EDTAPI void p16d_set_config(EdtDev *edt_p, u_short val) ;
01270 EDTAPI u_short p16d_get_stat(EdtDev *edt_p) ;
01271 EDTAPI u_short p16d_get_command(EdtDev *edt_p) ;
01272 EDTAPI u_short p16d_get_config(EdtDev *edt_p) ;
01273 #endif
01274
01275 #ifdef P11W
01276 EDTAPI void p11w_set_command(EdtDev *edt_p, u_short val) ;
01277 EDTAPI void p11w_set_config(EdtDev *edt_p, u_short val) ;
01278 EDTAPI void p11w_set_data(EdtDev *edt_p, u_short val) ;
01279 EDTAPI u_short p11w_get_command(EdtDev *edt_p) ;
01280 EDTAPI u_short p11w_get_config(EdtDev *edt_p) ;
01281 EDTAPI u_short p11w_get_stat(EdtDev *edt_p) ;
01282 EDTAPI u_short p11w_get_data(EdtDev *edt_p) ;
01283 EDTAPI u_int p11w_get_count(EdtDev *edt_p) ;
01284 EDTAPI void p11w_abortdma_onattn(EdtDev *edt_p, int flag) ;
01285 EDTAPI void p11w_set_abortdma_onintr(EdtDev *edt_p, int flag) ;
01286
01287 #endif
01288
01289 #ifdef P53B
01290 EDTAPI EdtDev *p53b_open(int unit, int bus_element_descriptor) ;
01291 EDTAPI EdtDev *p53b_open_generic(int unit) ;
01292 EDTAPI EdtDev *p53b_rtopen_notactive(int unit, int bus_element_descriptor) ;
01293 EDTAPI int p53b_rtactive(EdtDev *p53b_p, int active) ;
01294 EDTAPI int p53b_ioctl(EdtDev *p53b_p, int action, void *arg) ;
01295 EDTAPI int p53b_write(EdtDev *p53b_p, void *buf, int size) ;
01296 EDTAPI int p53b_read(EdtDev *p53b_p, void *buf, int size) ;
01297 EDTAPI int p53b_bm_read(EdtDev *p53b_p, void *buf, int size) ;
01298 EDTAPI int p53b_load(EdtDev *p53b_p, void *addr, int size, int offset) ;
01299 EDTAPI int p53b_close(EdtDev *p53b_p) ;
01300 EDTAPI void p53b_perror(char *str) ;
01301 EDTAPI void p53b_msleep(int msecs) ;
01302 EDTAPI int p53b_rt_blockwrite(EdtDev *p53b_p, int sa, int count, u_short *buf);
01303 EDTAPI int p53b_rt_blockread(EdtDev *p53b_p, int sa, int count, u_short *buf);
01304 EDTAPI int p53b_rt_prep_blockwrite(EdtDev *p53b_p, int sa) ;
01305 EDTAPI int p53b_rt_prep_blockread(EdtDev *p53b_p, int sa) ;
01306 EDTAPI int p53b_rt_flush_block_sa(EdtDev *p53b_p, u_int sa);
01307 EDTAPI int p53b_rt_flush_block_rcv(EdtDev *p53b_p);
01308
01309
01310 #endif
01311
01312 #if defined(VXWORKS) || defined(TEST_VXWORKS)
01313 EDTAPI int edt_vx_system_register_func(const char *funcstr, int (funcptr)(char *));
01314 #endif
01315
01316
01317 #endif
01318
01319 #define edt_set_eodma_sig(p, s) edt_set_eodma_int(p, s)
01320
01321 #define EDTIO_V0 0
01322 #define EIO_ACTION_MASK 0x000003ff
01323 #define EIO_SIZE_MASK 0x00fffc00
01324 #define EIO_SET 0x02000000
01325 #define EIO_GET 0x01000000
01326 #define EIO_SET_MASK EIO_SET
01327 #define EIO_GET_MASK EIO_GET
01328 #define EIO_SIZE_SHIFT 10
01329 #define EIO_TYPE_SHIFT 24
01330 #define EIO_DECODE_ACTION(code) (code & EIO_ACTION_MASK)
01331 #define EIODA(code) EIO_DECODE_ACTION(code)
01332 #define EIO_DECODE_SIZE(code) ((code & EIO_SIZE_MASK) >> EIO_SIZE_SHIFT)
01333 #define EIO_DECODE_SET(code) ((code & EIO_SET_MASK) != 0)
01334 #define EIO_DECODE_GET(code) ((code & EIO_GET_MASK) != 0)
01335
01336
01337 #if defined(__sun) || defined (_NT_) || defined(VXWORKS) || defined(__APPLE__)
01338
01339 #define EDT_NT_IOCTL 0xf000f000
01340
01341 #endif
01342
01343 #ifdef __linux__
01344
01345 #define EDT_IOC_MAGIC 'k'
01346
01347 #define EDT_NT_IOCTL _IOWR(EDT_IOC_MAGIC, 1, edt_ioctl_struct)
01348 #define EDT_NT_IOCTL32 _IOWR(EDT_IOC_MAGIC, 1, edt_ioctl_struct32)
01349
01350 #define EDT_IOC_MAXNR 2
01351
01352 #endif
01353
01354
01355
01356
01357
01358
01359
01360
01361 typedef struct {
01362 #ifdef __APPLE__
01363 uint_t device ;
01364 #else
01365 HANDLE device ;
01366 #endif
01367 uint_t controlCode ;
01368 uint_t inSize ;
01369 uint_t outSize ;
01370 uint_t bytesReturned ;
01371 uint32_t inBuffer ;
01372 uint32_t outBuffer ;
01373 #if defined(__APPLE__)
01374 u_short unit ;
01375 u_short channel ;
01376 #endif
01377 } edt_ioctl_struct32 ;
01378
01379
01380
01381
01382
01383
01384 typedef struct {
01385 #ifdef __APPLE__
01386 uint_t device ;
01387 #else
01388 HANDLE device ;
01389 #endif
01390 uint_t controlCode ;
01391 uint_t inSize ;
01392 uint_t outSize ;
01393 uint_t bytesReturned ;
01394 void *inBuffer ;
01395 void *outBuffer ;
01396 #if defined(__APPLE__)
01397 u_short unit ;
01398 u_short channel ;
01399 #endif
01400 } edt_ioctl_struct ;
01401
01402
01403
01404
01405 typedef struct
01406 {
01407
01408 uint64_t value;
01409 uint_t desc;
01410 uint_t flags ;
01411 } edt_buf;
01412
01413
01414
01415 #define EDT_SERBUF_SIZE 2048
01416 #define EDT_SERBUF_OVRHD 16
01417
01418 #define EDT_SERIAL_WAITRESP 1
01419 #define EDT_SERIAL_SAVERESP 2
01420 typedef struct
01421 {
01422 uint_t unit;
01423 uint_t size;
01424 uint_t misc;
01425 uint_t flags;
01426 char buf[EDT_SERBUF_SIZE];
01427 } ser_buf;
01428
01429
01430 typedef struct
01431 {
01432 uint64_t addr ;
01433 uint_t index ;
01434 uint_t size ;
01435 uint_t writeflag ;
01436 } buf_args;
01437
01438
01439
01440 typedef struct
01441 {
01442 uint_t line_size ;
01443 int line_span ;
01444 uint_t line_offset ;
01445 uint_t line_count ;
01446 } edt_merge_args;
01447
01448
01449
01450 typedef struct {
01451 u_int addr ;
01452 u_int size ;
01453 u_int inc ;
01454 u_int cnt ;
01455 u_int mask ;
01456 } p53b_test ;
01457
01458 #define SIZED_DATASIZE (EDT_DEPSIZE - sizeof(u_int))
01459
01460 typedef struct {
01461 u_int size;
01462 u_int data[SIZED_DATASIZE/4];
01463 } edt_sized_buffer;
01464
01465 #define EDT_DEVICE_TYPE 0x8000
01466 #ifdef METHOD_BUFFERED
01467 #define EDT_MAKE_IOCTL(t,c)\
01468 (uint_t)CTL_CODE((t), 0x800+(c), METHOD_BUFFERED, FILE_ANY_ACCESS)
01469 #else
01470 #define EDT_MAKE_IOCTL(t,c)\
01471 (uint_t)(c)
01472 #endif
01473
01474 #define EIOC(action, type, size) (((uint_t)type) \
01475 | (((uint_t)size) << EIO_SIZE_SHIFT) \
01476 | ((uint_t)action))
01477
01478 #define EDTS_DEBUG EIOC(10, EIO_SET, sizeof(uint_t))
01479 #define EDTG_DEBUG EIOC(11, EIO_GET, sizeof(uint_t))
01480 #define EDTS_INTFC EIOC(12, EIO_SET, sizeof(edt_buf))
01481 #define EDTG_INTFC EIOC(13, EIO_GET|EIO_SET, sizeof(edt_buf))
01482 #define EDTS_REG EIOC(14, EIO_SET, sizeof(edt_buf))
01483 #define EDTG_REG EIOC(15, EIO_GET|EIO_SET, sizeof(edt_buf))
01484 #define EDTS_FLASH EIOC(16, EIO_SET, sizeof(edt_buf))
01485 #define EDTG_FLASH EIOC(17, EIO_GET|EIO_SET, sizeof(edt_buf))
01486 #define EDT_PFLASH EIOC(18, EIO_SET, sizeof(edt_buf))
01487 #define EDTS_PROG EIOC(19, EIO_SET, sizeof(uint_t))
01488 #define EDTG_PROG EIOC(20, EIO_GET, sizeof(uint_t))
01489 #define EDTS_PROG_READBACK EIOC(21, EIO_SET, sizeof(uint_t))
01490 #define EDTG_PROG_READBACK EIOC(22, EIO_GET, sizeof(uint_t))
01491 #define EDTS_HEIGHT EIOC(23, EIO_SET, sizeof(uint_t))
01492 #define EDTG_HEIGHT EIOC(24, EIO_GET, sizeof(uint_t))
01493 #define EDTS_DEPTH EIOC(25, EIO_SET, sizeof(uint_t))
01494 #define EDTG_DEPTH EIOC(26, EIO_GET, sizeof(uint_t))
01495 #define EDTS_TYPE EIOC(27, EIO_SET, sizeof(uint_t))
01496 #define EDTG_TYPE EIOC(28, EIO_GET, sizeof(uint_t))
01497 #define EDTS_SERIAL EIOC(29, EIO_SET, sizeof(uint_t))
01498 #define EDTG_SERIAL EIOC(30, EIO_GET, sizeof(uint_t))
01499 #define EDTS_DEPENDENT EIOC(31, EIO_SET, EDT_DEPSIZE)
01500 #define EDTG_DEPENDENT EIOC(32, EIO_GET, EDT_DEPSIZE)
01501 #define EDTG_DEVID EIOC(33, EIO_GET, sizeof(uint_t))
01502 #define EDTS_RTIMEOUT EIOC(34, EIO_SET, sizeof(uint_t))
01503 #define EDTS_WTIMEOUT EIOC(35, EIO_SET, sizeof(uint_t))
01504 #define EDTG_BUFDONE EIOC(36, EIO_GET, sizeof(bufcnt_t))
01505 #define EDTS_NUMBUFS EIOC(37, EIO_SET, sizeof(int))
01506 #define EDTS_BUF EIOC(38, EIO_SET, sizeof(buf_args))
01507 #define EDTS_STARTBUF EIOC(39, EIO_SET, sizeof(uint_t))
01508 #define EDTS_WAITBUF EIOC(40, EIO_SET|EIO_GET, sizeof(uint_t))
01509 #define EDTS_FREEBUF EIOC(41, EIO_SET, sizeof(uint_t))
01510 #define EDTS_STOPBUF EIOC(42, EIO_SET, sizeof(uint_t))
01511 #define EDTG_BYTECOUNT EIOC(44, EIO_GET, sizeof(uint_t))
01512 #define EDTS_SETBUF EIOC(45, EIO_SET, sizeof(int))
01513 #define EDTG_DEBUGVAL EIOC(46, EIO_GET, sizeof(int))
01514 #define EDTG_TIMEOUTS EIOC(47, EIO_GET, sizeof(int))
01515 #define EDTG_TRACEBUF EIOC(48, EIO_GET, (EDT_TRACESIZE * sizeof(int)))
01516 #define EDTS_STARTDMA EIOC(49, EIO_SET, sizeof(edt_buf))
01517 #define EDTS_ENDDMA EIOC(50, EIO_SET, sizeof(edt_buf))
01518 #define EDTS_FOIUNIT EIOC(51, EIO_SET, sizeof(int))
01519 #define EDTG_FOIUNIT EIOC(52, EIO_GET, sizeof(int))
01520 #define EDTS_FOICOUNT EIOC(53, EIO_SET, sizeof(int))
01521 #define EDTG_FOICOUNT EIOC(54, EIO_GET, sizeof(int))
01522 #define EDTG_RTIMEOUT EIOC(55, EIO_GET, sizeof(uint_t))
01523 #define EDTG_WTIMEOUT EIOC(56, EIO_GET, sizeof(uint_t))
01524 #define EDTS_EODMA_SIG EIOC(57, EIO_SET, sizeof(uint_t))
01525 #define EDTS_SERIALWAIT EIOC(58, EIO_SET|EIO_GET, sizeof(edt_buf))
01526 #define EDTS_EVENT_SIG EIOC(59, EIO_SET, sizeof(edt_buf))
01527 #define EDTG_OVERFLOW EIOC(60, EIO_GET, sizeof(u_int))
01528 #define EDTS_AUTODIR EIOC(61, EIO_SET, sizeof(u_int))
01529 #define EDTS_FIRSTFLUSH EIOC(62, EIO_SET, sizeof(u_int))
01530 #define EDTG_CONFIG_COPY EIOC(63, EIO_GET|EIO_SET, sizeof(edt_buf))
01531 #define EDTG_CONFIG EIOC(64, EIO_GET|EIO_SET, sizeof(edt_buf))
01532 #define EDTS_CONFIG EIOC(65, EIO_SET, sizeof(edt_buf))
01533 #define P53B_REGTEST EIOC(66, EIO_SET, sizeof(p53b_test))
01534 #define EDTG_LONG EIOC(67, EIO_GET|EIO_SET, sizeof(edt_buf))
01535 #define EDTS_LONG EIOC(68, EIO_SET, sizeof(edt_buf))
01536 #define EDTG_SGTODO EIOC(69, EIO_GET, (EDT_TRACESIZE * 4))
01537 #define EDTG_SGLIST EIOC(70, EIO_SET|EIO_GET, sizeof(buf_args))
01538 #define EDTS_SGLIST EIOC(71, EIO_SET, sizeof(buf_args))
01539 #define EDTG_SGINFO EIOC(72, EIO_SET|EIO_GET, sizeof(edt_buf))
01540 #define EDTG_TIMECOUNT EIOC(73, EIO_GET, sizeof(uint_t))
01541 #define EDTG_PADDR EIOC(74, EIO_GET, sizeof(uint_t))
01542 #define EDTS_SYNC EIOC(75, EIO_SET, sizeof(uint_t))
01543 #define EDTS_WAITN EIOC(76, EIO_SET, sizeof(uint_t))
01544 #define EDTS_STARTACT EIOC(77, EIO_SET, sizeof(uint_t))
01545 #define EDTS_ENDACT EIOC(78, EIO_SET, sizeof(uint_t))
01546 #define EDTS_RESETCOUNT EIOC(79, EIO_SET, sizeof(uint_t))
01547 #define EDTS_RESETSERIAL EIOC(80, EIO_SET, sizeof(uint_t))
01548 #define EDTS_CLR_EVENT EIOC(81, EIO_SET, sizeof(uint_t))
01549 #define EDTS_ADD_EVENT_FUNC EIOC(82, EIO_SET, sizeof(uint_t))
01550 #define EDTS_DEL_EVENT_FUNC EIOC(83, EIO_SET, sizeof(uint_t))
01551 #define EDTS_WAIT_EVENT_ONCE EIOC(84, EIO_SET, sizeof(uint_t))
01552 #define EDTS_WAIT_EVENT EIOC(85, EIO_SET, sizeof(uint_t))
01553 #define EDTS_CLEAR_WAIT_EVENT EIOC(86, EIO_SET, sizeof(uint_t))
01554 #define EDTG_TMSTAMP EIOC(87, EIO_SET|EIO_GET, sizeof(uint_t) * 3)
01555 #define EDTS_TIMEOUT_ACTION EIOC(88, EIO_SET, sizeof(uint_t))
01556 #define EDTG_TIMEOUT_GOODBITS EIOC(89, EIO_GET, sizeof(uint_t))
01557 #define EDTS_BAUDBITS EIOC(90, EIO_SET, sizeof(uint_t))
01558 #define EDTG_REFTIME EIOC(91, EIO_GET, sizeof(uint_t) * 2)
01559 #define EDTS_REFTIME EIOC(92, EIO_SET, sizeof(uint_t) * 2)
01560 #define EDTS_REG_OR EIOC(93, EIO_SET|EIO_GET, sizeof(edt_buf))
01561 #define EDTS_REG_AND EIOC(94, EIO_SET|EIO_GET, sizeof(edt_buf))
01562 #define EDTG_GOODBITS EIOC(95, EIO_GET, sizeof(uint_t))
01563 #define EDTS_BURST_EN EIOC(96, EIO_SET, sizeof(uint_t))
01564 #define EDTG_BURST_EN EIOC(97, EIO_GET, sizeof(uint_t))
01565 #define EDTG_FIRSTFLUSH EIOC(98, EIO_GET, sizeof(u_int))
01566 #define EDTS_ABORT_BP EIOC(99, EIO_SET, sizeof(uint_t))
01567 #define EDTS_DMASYNC_FORDEV EIOC(100, EIO_SET, sizeof(uint_t) * 3)
01568 #define EDTS_DMASYNC_FORCPU EIOC(101, EIO_SET, sizeof(uint_t) * 3)
01569 #define EDTG_BUFBYTECOUNT EIOC(102, EIO_GET, sizeof(uint_t) * 2)
01570 #define EDTS_DOTIMEOUT EIOC(103, EIO_SET, sizeof(uint_t))
01571 #define EDTS_REFTMSTAMP EIOC(104, EIO_SET, sizeof(uint_t))
01572 #define EDTS_PDVCONT EIOC(105, EIO_SET, sizeof(uint_t))
01573 #define EDTS_PDVDPATH EIOC(106, EIO_SET, sizeof(uint_t))
01574 #define EDTS_RESET_EVENT_COUNTER EIOC(107, EIO_SET, sizeof(uint_t))
01575 #define EDTS_DUMP_SGLIST EIOC(108, EIO_SET, sizeof(uint_t))
01576 #define EDTG_TODO EIOC(109, EIO_GET, sizeof(u_int))
01577 #define EDTS_RESUME EIOC(110, EIO_SET, sizeof(u_int))
01578 #define EDTS_TIMETYPE EIOC(111, EIO_SET, sizeof(u_int))
01579 #define EDTS_EVENT_HNDL EIOC(112, EIO_SET, sizeof(edt_buf))
01580 #define EDTS_MAX_BUFFERS EIOC(113, EIO_SET, sizeof(u_int))
01581 #define EDTG_MAX_BUFFERS EIOC(114, EIO_GET, sizeof(u_int))
01582 #define EDTS_WRITE_PIO EIOC(115, EIO_SET, sizeof(edt_sized_buffer))
01583 #define EDTS_PROG_XILINX EIOC(116, EIO_SET, sizeof(edt_sized_buffer))
01584 #define EDTS_MAPMEM EIOC(117, EIO_GET | EIO_SET, sizeof(edt_buf))
01585 #define EDTS_ETEC_ERASEBUF_INIT EIOC(118, EIO_SET, sizeof(uint_t) * 2)
01586 #define EDTS_ETEC_ERASEBUF EIOC(119, EIO_SET, sizeof(u_int))
01587 #define EDTG_DRIVER_TYPE EIOC(120, EIO_GET, sizeof(u_int))
01588 #define EDTS_DRIVER_TYPE EIOC(121, EIO_SET, sizeof(u_int))
01589 #define EDTS_DRV_BUFFER EIOC(122, EIO_SET | EIO_GET, sizeof(u_int))
01590 #define EDTS_ABORTINTR EIOC(123, EIO_SET, sizeof(u_int))
01591 #define EDTS_CUSTOMER EIOC(124, EIO_SET, sizeof(u_int))
01592 #define EDTS_ETEC_SET_IDLE EIOC(125, EIO_SET, sizeof(u_int) * 3)
01593 #define EDTS_SOLARIS_DMA_MODE EIOC(126, EIO_SET, sizeof(u_int))
01594 #define EDTS_UMEM_LOCK EIOC(127, EIO_SET, sizeof(u_int))
01595 #define EDTG_UMEM_LOCK EIOC(128, EIO_GET, sizeof(u_int))
01596 #define EDTS_RCI_CHAN EIOC(129, EIO_SET, sizeof(edt_buf))
01597 #define EDTG_RCI_CHAN EIOC(130, EIO_SET|EIO_GET, sizeof(edt_buf))
01598 #define EDTS_BITPATH EIOC(140, EIO_SET, sizeof(edt_bitpath))
01599 #define EDTG_BITPATH EIOC(141, EIO_GET, sizeof(edt_bitpath))
01600 #define EDTG_VERSION EIOC(142, EIO_GET, sizeof(edt_version_string))
01601 #define EDTG_BUILDID EIOC(143, EIO_GET, sizeof(edt_version_string))
01602 #define EDTS_WAITCHAR EIOC(144, EIO_SET, sizeof(edt_buf))
01603 #define EDTS_PDMA_MODE EIOC(145, EIO_SET, sizeof(u_int))
01604 #define EDTG_MEMSIZE EIOC(146, EIO_GET, sizeof(u_int))
01605 #define EDTS_DIRECTION EIOC(147, EIO_SET, sizeof(u_int))
01606 #define EDTG_CLRCIFLAGS EIOC(148, EIO_GET, sizeof(u_int))
01607 #define EDTS_CLRCIFLAGS EIOC(149, EIO_SET, sizeof(u_int))
01608 #define EDTS_MERGEPARMS EIOC(150, EIO_SET, sizeof(edt_merge_args))
01609 #define EDTS_ABORTDMA_ONINTR EIOC(151, EIO_SET, sizeof(u_int))
01610 #define EDTS_FVAL_DONE EIOC(152, EIO_SET, sizeof(u_char))
01611 #define EDTG_FVAL_DONE EIOC(153, EIO_GET, sizeof(u_char))
01612 #define EDTG_LINES_XFERRED EIOC(154, EIO_SET|EIO_GET, sizeof(u_int))
01613 #define EDTS_PROCESS_ISR EIOC(155, EIO_SET|EIO_GET, sizeof(u_int))
01614 #define EDTS_CLEAR_DMAID EIOC(156, EIO_SET, sizeof(u_int))
01615 #define EDTS_DRV_BUFFER_LEAD EIOC(157, EIO_SET | EIO_GET, sizeof(u_int))
01616 #define EDTG_SERIAL_WRITE_AVAIL EIOC(158, EIO_GET, sizeof(u_int))
01617 #define EDTS_USER_DMA_WAKEUP EIOC(159, EIO_SET, sizeof(u_int))
01618 #define EDTG_USER_DMA_WAKEUP EIOC(160, EIO_GET, sizeof(u_int))
01619 #define EDTG_WAIT_STATUS EIOC(161, EIO_GET, sizeof(u_int))
01620 #define EDTS_WAIT_STATUS EIOC(162, EIO_GET, sizeof(u_int))
01621 #define EDTS_TIMEOUT_OK EIOC(163, EIO_SET, sizeof(u_int))
01622 #define EDTG_TIMEOUT_OK EIOC(164, EIO_GET, sizeof(u_int))
01623 #define EDTS_MULTI_DONE EIOC(165, EIO_GET, sizeof(u_int))
01624 #define EDTG_MULTI_DONE EIOC(166, EIO_GET, sizeof(u_int))
01625 #define EDTS_TEST_LOCK_ON EIOC(167, EIO_SET, sizeof(u_int))
01626 #define EDTG_FVAL_LOW EIOC(168, EIO_SET|EIO_GET, sizeof(u_int))
01627 #define EDTS_BUF_MMAP EIOC(169, EIO_SET, sizeof(buf_args))
01628 #define EDTS_MEZZ_BITPATH EIOC(170, EIO_SET, sizeof(edt_bitpath))
01629 #define EDTG_MEZZ_BITPATH EIOC(171, EIO_GET, sizeof(edt_bitpath))
01630 #define EDTG_DMA_INFO EIOC(172, EIO_GET, sizeof(edt_dma_info))
01631 #define EDTS_USER_FUNC EIOC(173, EIO_SET | EIO_GET, sizeof(edt_sized_buffer))
01632 #define EDTS_TEST_STATUS EIOC(174, EIO_SET | EIO_GET, sizeof(u_int))
01633 #define EDTS_KERNEL_ALLOC EIOC(175, EIO_SET | EIO_GET, sizeof(u_int))
01634 #define EDTG_RESERVED_PAGES EIOC(176, EIO_GET, sizeof(u_int))
01635 #define EDTS_RAW_SGLIST EIOC(177, EIO_SET, sizeof(buf_args))
01636 #define EDTS_IGNORE_SIGNALS EIOC(178, EIO_SET, sizeof(u_int))
01637 #define EDTS_TRACE_REG EIOC(179, EIO_SET, sizeof(u_int))
01638 #define EDTS_TIMESTAMP_LEVEL EIOC(180, EIO_SET, sizeof(u_int))
01639 #define EDTS_REG_BIT_CLEARSET EIOC(181, EIO_SET, sizeof(edt_buf))
01640 #define EDTS_REG_BIT_SETCLEAR EIOC(182, EIO_SET, sizeof(edt_buf))
01641 #define EDTS_REG_READBACK EIOC(183, EIO_SET, sizeof(u_int))
01642 #define EDTS_MEZZ_ID EIOC(184, EIO_SET, sizeof(edt_buf))
01643 #define EDTG_MEZZ_ID EIOC(185, EIO_SET|EIO_GET, sizeof(edt_buf))
01644 #define EDTG_NUMBUFS EIOC(186, EIO_GET, sizeof(int))
01645 #define EDTS_READ_STARTACT EIOC(187, EIO_SET, sizeof(edt_buf))
01646 #define EDTS_READ_ENDACT EIOC(188, EIO_SET, sizeof(edt_buf))
01647 #define EDTS_WRITE_STARTACT EIOC(189, EIO_SET, sizeof(edt_buf))
01648 #define EDTS_WRITE_ENDACT EIOC(190, EIO_SET, sizeof(edt_buf))
01649 #define EDTS_READ_START_DELAYS EIOC(191, EIO_SET, sizeof(u_int))
01650 #define EDTS_READ_END_DELAYS EIOC(192, EIO_SET, sizeof(u_int))
01651 #define EDTS_WRITE_START_DELAYS EIOC(193, EIO_SET, sizeof(u_int))
01652 #define EDTS_WRITE_END_DELAYS EIOC(194, EIO_SET, sizeof(u_int))
01653
01654
01655
01656 #define EDT_WAIT_OK 0
01657 #define EDT_WAIT_TIMEOUT 1
01658 #define EDT_WAIT_OK_TIMEOUT 2
01659 #define EDT_WAIT_USER_WAKEUP 3
01660
01661
01662 #define EDT_UNIX_DRIVER 0
01663 #define EDT_NT_DRIVER 1
01664 #define EDT_2K_DRIVER 2
01665 #define EDT_WDM_DRIVER 3
01666
01667
01668 #define EDT_TM_SEC_NSEC 0
01669 #define EDT_TM_CLICKS 1
01670 #define EDT_TM_COUNTER 2
01671 #define EDT_TM_FREQ 3
01672 #define EDT_TM_INTR 4
01673
01674
01675
01676 #define EDT_DMA_IDLE 0
01677 #define EDT_DMA_ACTIVE 1
01678 #define EDT_DMA_TIMEOUT 2
01679 #define EDT_DMA_ABORTED 3
01680
01681
01682 #define EDT_SGLIST_SIZE 1
01683 #define EDT_SGLIST_VIRTUAL 2
01684 #define EDT_SGLIST_PHYSICAL 3
01685 #define EDT_SGTODO_SIZE 4
01686 #define EDT_SGTODO_VIRTUAL 5
01687 #define EDT_SGTODO_FIRST_SG 6
01688
01689
01690
01691 #define EDT_ACT_NEVER 0
01692 #define EDT_ACT_ONCE 1
01693 #define EDT_ACT_ALWAYS 2
01694 #define EDT_ACT_ONELEFT 3
01695 #define EDT_ACT_CYCLE 4
01696 #define EDT_ACT_KBS 5
01697 #define EDT_ACT_ALWAYS_WRITEONLY 6
01698
01699
01700 #define EDT_TIMEOUT_NULL 0
01701 #define EDT_TIMEOUT_BIT_STROBE 0x1
01702
01703
01704
01705 #define EMAPI(x) EDT_MAKE_IOCTL(EDT_DEVICE_TYPE,EIODA(x))
01706
01707 #define ES_DEBUG EMAPI(EDTS_DEBUG)
01708 #define EG_DEBUG EMAPI(EDTG_DEBUG)
01709 #define ES_INTFC EMAPI(EDTS_INTFC)
01710 #define EG_INTFC EMAPI(EDTG_INTFC)
01711 #define ES_REG EMAPI(EDTS_REG)
01712 #define EG_REG EMAPI(EDTG_REG)
01713 #define ES_FLASH EMAPI(EDTS_FLASH)
01714 #define EG_FLASH EMAPI(EDTG_FLASH)
01715 #define E_PFLASH EMAPI(EDT_PFLASH)
01716 #define ES_PROG EMAPI(EDTS_PROG)
01717 #define EG_PROG EMAPI(EDTG_PROG)
01718 #define ES_PROG_READBACK EMAPI(EDTS_PROG_READBACK)
01719 #define EG_PROG_READBACK EMAPI(EDTG_PROG_READBACK)
01720 #define ES_HEIGHT EMAPI(EDTS_HEIGHT)
01721 #define EG_HEIGHT EMAPI(EDTG_HEIGHT)
01722 #define ES_DEPTH EMAPI(EDTS_DEPTH)
01723 #define EG_DEPTH EMAPI(EDTG_DEPTH)
01724 #define ES_TYPE EMAPI(EDTS_TYPE)
01725 #define EG_TYPE EMAPI(EDTG_TYPE)
01726 #define ES_SERIAL EMAPI(EDTS_SERIAL)
01727 #define EG_SERIAL EMAPI(EDTG_SERIAL)
01728 #define ES_DEPENDENT EMAPI(EDTS_DEPENDENT)
01729 #define EG_DEPENDENT EMAPI(EDTG_DEPENDENT)
01730 #define EG_DEVID EMAPI(EDTG_DEVID)
01731 #define ES_RTIMEOUT EMAPI(EDTS_RTIMEOUT)
01732 #define ES_WTIMEOUT EMAPI(EDTS_WTIMEOUT)
01733 #define EG_BUFDONE EMAPI(EDTG_BUFDONE)
01734 #define ES_NUMBUFS EMAPI(EDTS_NUMBUFS)
01735 #define ES_BUF EMAPI(EDTS_BUF)
01736 #define ES_BUF_MMAP EMAPI(EDTS_BUF_MMAP)
01737 #define ES_STARTBUF EMAPI(EDTS_STARTBUF)
01738 #define ES_WAITBUF EMAPI(EDTS_WAITBUF)
01739 #define ES_FREEBUF EMAPI(EDTS_FREEBUF)
01740 #define ES_STOPBUF EMAPI(EDTS_STOPBUF)
01741 #define EG_BYTECOUNT EMAPI(EDTG_BYTECOUNT)
01742 #define ES_SETBUF EMAPI(EDTS_SETBUF)
01743 #define EG_DEBUGVAL EMAPI(EDTG_DEBUGVAL)
01744 #define EG_TIMEOUTS EMAPI(EDTG_TIMEOUTS)
01745 #define EG_TRACEBUF EMAPI(EDTG_TRACEBUF)
01746 #define ES_STARTDMA EMAPI(EDTS_STARTDMA)
01747 #define ES_ENDDMA EMAPI(EDTS_ENDDMA)
01748 #define ES_FOIUNIT EMAPI(EDTS_FOIUNIT)
01749 #define EG_FOIUNIT EMAPI(EDTG_FOIUNIT)
01750 #define ES_FOICOUNT EMAPI(EDTS_FOICOUNT)
01751 #define EG_FOICOUNT EMAPI(EDTG_FOICOUNT)
01752 #define EG_RTIMEOUT EMAPI(EDTG_RTIMEOUT)
01753 #define EG_WTIMEOUT EMAPI(EDTG_WTIMEOUT)
01754 #define ES_EODMA_SIG EMAPI(EDTS_EODMA_SIG)
01755 #define ES_SERIALWAIT EMAPI(EDTS_SERIALWAIT)
01756 #define ES_EVENT_SIG EMAPI(EDTS_EVENT_SIG)
01757 #define EG_OVERFLOW EMAPI(EDTG_OVERFLOW)
01758 #define ES_AUTODIR EMAPI(EDTS_AUTODIR)
01759 #define ES_FIRSTFLUSH EMAPI(EDTS_FIRSTFLUSH)
01760 #define EG_FIRSTFLUSH EMAPI(EDTG_FIRSTFLUSH)
01761 #define EG_CONFIG_COPY EMAPI(EDTG_CONFIG_COPY)
01762 #define ES_CONFIG EMAPI(EDTS_CONFIG)
01763 #define EG_CONFIG EMAPI(EDTG_CONFIG)
01764 #define P_REGTEST EMAPI(P53B_REGTEST)
01765 #define ES_LONG EMAPI(EDTS_LONG)
01766 #define EG_LONG EMAPI(EDTG_LONG)
01767 #define EG_SGTODO EMAPI(EDTG_SGTODO)
01768 #define EG_SGLIST EMAPI(EDTG_SGLIST)
01769 #define ES_SGLIST EMAPI(EDTS_SGLIST)
01770 #define EG_SGINFO EMAPI(EDTG_SGINFO)
01771 #define EG_TIMECOUNT EMAPI(EDTG_TIMECOUNT)
01772 #define EG_PADDR EMAPI(EDTG_PADDR)
01773 #define ES_SYNC EMAPI(EDTS_SYNC)
01774 #define ES_WAITN EMAPI(EDTS_WAITN)
01775 #define ES_STARTACT EMAPI(EDTS_STARTACT)
01776 #define ES_ENDACT EMAPI(EDTS_ENDACT)
01777 #define ES_RESETCOUNT EMAPI(EDTS_RESETCOUNT)
01778 #define ES_RESETSERIAL EMAPI(EDTS_RESETSERIAL)
01779 #define ES_BAUDBITS EMAPI(EDTS_BAUDBITS)
01780 #define ES_CLR_EVENT EMAPI(EDTS_CLR_EVENT)
01781 #define ES_ADD_EVENT_FUNC EMAPI(EDTS_ADD_EVENT_FUNC)
01782 #define ES_DEL_EVENT_FUNC EMAPI(EDTS_DEL_EVENT_FUNC)
01783 #define ES_WAIT_EVENT_ONCE EMAPI(EDTS_WAIT_EVENT_ONCE)
01784 #define ES_WAIT_EVENT EMAPI(EDTS_WAIT_EVENT)
01785 #define EG_TMSTAMP EMAPI(EDTG_TMSTAMP)
01786 #define ES_CLEAR_WAIT_EVENT EMAPI(EDTS_CLEAR_WAIT_EVENT)
01787 #define ES_TIMEOUT_ACTION EMAPI(EDTS_TIMEOUT_ACTION)
01788 #define EG_TIMEOUT_GOODBITS EMAPI(EDTG_TIMEOUT_GOODBITS)
01789 #define EG_REFTIME EMAPI(EDTG_REFTIME)
01790 #define ES_REFTIME EMAPI(EDTS_REFTIME)
01791 #define ES_REG_OR EMAPI(EDTS_REG_OR)
01792 #define ES_REG_AND EMAPI(EDTS_REG_AND)
01793 #define EG_GOODBITS EMAPI(EDTG_GOODBITS)
01794 #define ES_BURST_EN EMAPI(EDTS_BURST_EN)
01795 #define EG_BURST_EN EMAPI(EDTG_BURST_EN)
01796 #define ES_ABORT_BP EMAPI(EDTS_ABORT_BP)
01797 #define ES_DOTIMEOUT EMAPI(EDTS_DOTIMEOUT)
01798 #define ES_REFTMSTAMP EMAPI(EDTS_REFTMSTAMP)
01799 #define ES_DMASYNC_FORDEV EMAPI(EDTS_DMASYNC_FORDEV)
01800 #define ES_DMASYNC_FORCPU EMAPI(EDTS_DMASYNC_FORCPU)
01801 #define EG_BUFBYTECOUNT EMAPI(EDTG_BUFBYTECOUNT)
01802 #define ES_PDVCONT EMAPI(EDTS_PDVCONT)
01803 #define ES_PDVDPATH EMAPI(EDTS_PDVDPATH)
01804 #define ES_RESET_EVENT_COUNTER EMAPI(EDTS_RESET_EVENT_COUNTER)
01805 #define ES_DUMP_SGLIST EMAPI(EDTS_DUMP_SGLIST)
01806 #define EG_TODO EMAPI(EDTG_TODO)
01807 #define ES_RESUME EMAPI(EDTS_RESUME)
01808 #define ES_TIMETYPE EMAPI(EDTS_TIMETYPE)
01809 #define ES_EVENT_HNDL EMAPI(EDTS_EVENT_HNDL)
01810 #define ES_MAX_BUFFERS EMAPI(EDTS_MAX_BUFFERS)
01811 #define EG_MAX_BUFFERS EMAPI(EDTG_MAX_BUFFERS)
01812 #define ES_WRITE_PIO EMAPI(EDTS_WRITE_PIO)
01813 #define ES_PROG_XILINX EMAPI(EDTS_PROG_XILINX)
01814 #define ES_MAPMEM EMAPI(EDTS_MAPMEM)
01815 #define ES_ETEC_ERASEBUF_INIT EMAPI(EDTS_ETEC_ERASEBUF_INIT)
01816 #define ES_ETEC_ERASEBUF EMAPI(EDTS_ETEC_ERASEBUF)
01817 #define EG_DRIVER_TYPE EMAPI(EDTG_DRIVER_TYPE)
01818 #define ES_DRIVER_TYPE EMAPI(EDTS_DRIVER_TYPE)
01819 #define ES_DRV_BUFFER EMAPI(EDTS_DRV_BUFFER)
01820 #define ES_ABORTINTR EMAPI(EDTS_ABORTINTR)
01821 #define ES_CUSTOMER EMAPI(EDTS_CUSTOMER)
01822 #define ES_ETEC_SET_IDLE EMAPI(EDTS_ETEC_SET_IDLE)
01823 #define ES_SOLARIS_DMA_MODE EMAPI(EDTS_SOLARIS_DMA_MODE)
01824 #define ES_UMEM_LOCK EMAPI(EDTS_UMEM_LOCK)
01825 #define EG_UMEM_LOCK EMAPI(EDTG_UMEM_LOCK)
01826 #define ES_RCI_CHAN EMAPI(EDTS_RCI_CHAN)
01827 #define EG_RCI_CHAN EMAPI(EDTG_RCI_CHAN)
01828 #define ES_BITPATH EMAPI(EDTS_BITPATH)
01829 #define EG_BITPATH EMAPI(EDTG_BITPATH)
01830 #define EG_VERSION EMAPI(EDTG_VERSION)
01831 #define EG_BUILDID EMAPI(EDTG_BUILDID)
01832 #define ES_WAITCHAR EMAPI(EDTS_WAITCHAR)
01833 #define ES_PDMA_MODE EMAPI(EDTS_PDMA_MODE)
01834 #define ES_DIRECTION EMAPI(EDTS_DIRECTION)
01835 #define EG_MEMSIZE EMAPI(EDTG_MEMSIZE)
01836 #define ES_CLRCIFLAGS EMAPI(EDTS_CLRCIFLAGS)
01837 #define EG_CLRCIFLAGS EMAPI(EDTG_CLRCIFLAGS)
01838 #define ES_MERGEPARMS EMAPI(EDTS_MERGEPARMS)
01839 #define ES_ABORTDMA_ONINTR EMAPI(EDTS_ABORTDMA_ONINTR)
01840 #define ES_FVAL_DONE EMAPI(EDTS_FVAL_DONE)
01841 #define EG_FVAL_DONE EMAPI(EDTG_FVAL_DONE)
01842 #define EG_LINES_XFERRED EMAPI(EDTG_LINES_XFERRED)
01843 #define ES_PROCESS_ISR EMAPI(EDTS_PROCESS_ISR)
01844 #define ES_CLEAR_DMAID EMAPI(EDTS_CLEAR_DMAID)
01845 #define ES_DRV_BUFFER_LEAD EMAPI(EDTS_DRV_BUFFER_LEAD)
01846 #define EG_SERIAL_WRITE_AVAIL EMAPI(EDTG_SERIAL_WRITE_AVAIL)
01847 #define ES_USER_DMA_WAKEUP EMAPI(EDTS_USER_DMA_WAKEUP)
01848 #define EG_USER_DMA_WAKEUP EMAPI(EDTG_USER_DMA_WAKEUP)
01849 #define EG_WAIT_STATUS EMAPI(EDTG_WAIT_STATUS)
01850 #define ES_WAIT_STATUS EMAPI(EDTS_WAIT_STATUS)
01851 #define ES_TIMEOUT_OK EMAPI(EDTS_TIMEOUT_OK)
01852 #define EG_TIMEOUT_OK EMAPI(EDTG_TIMEOUT_OK)
01853 #define ES_MULTI_DONE EMAPI(EDTS_MULTI_DONE)
01854 #define EG_MULTI_DONE EMAPI(EDTG_MULTI_DONE)
01855 #define ES_TEST_LOCK_ON EMAPI(EDTS_TEST_LOCK_ON)
01856 #define EG_FVAL_LOW EMAPI(EDTG_FVAL_LOW)
01857 #define ES_MEZZ_BITPATH EMAPI(EDTS_MEZZ_BITPATH)
01858 #define EG_MEZZ_BITPATH EMAPI(EDTG_MEZZ_BITPATH)
01859 #define EG_DMA_INFO EMAPI(EDTG_DMA_INFO)
01860 #define ES_USER_FUNC EMAPI(EDTS_USER_FUNC)
01861 #define ES_TEST_STATUS EMAPI(EDTS_TEST_STATUS)
01862 #define ES_KERNEL_ALLOC EMAPI(EDTS_KERNEL_ALLOC)
01863 #define EG_RESERVED_PAGES EMAPI(EDTG_RESERVED_PAGES)
01864 #define ES_RAW_SGLIST EMAPI(EDTS_RAW_SGLIST)
01865 #define ES_IGNORE_SIGNALS EMAPI(EDTS_IGNORE_SIGNALS)
01866 #define ES_TRACE_REG EMAPI(EDTS_TRACE_REG)
01867 #define ES_TIMESTAMP_LEVEL EMAPI(EDTS_TIMESTAMP_LEVEL)
01868 #define ES_REG_BIT_CLEARSET EMAPI(EDTS_REG_BIT_CLEARSET)
01869 #define ES_REG_BIT_SETCLEAR EMAPI(EDTS_REG_BIT_SETCLEAR)
01870 #define ES_REG_READBACK EMAPI(EDTS_REG_READBACK)
01871 #define ES_MEZZ_ID EMAPI(EDTS_MEZZ_ID)
01872 #define EG_MEZZ_ID EMAPI(EDTG_MEZZ_ID)
01873 #define EG_NUMBUFS EMAPI(EDTG_NUMBUFS)
01874 #define ES_READ_STARTACT EMAPI(EDTS_READ_STARTACT)
01875 #define ES_READ_ENDACT EMAPI(EDTS_READ_ENDACT)
01876 #define ES_WRITE_STARTACT EMAPI(EDTS_WRITE_STARTACT)
01877 #define ES_WRITE_ENDACT EMAPI(EDTS_WRITE_ENDACT)
01878 #define ES_READ_START_DELAYS EMAPI(EDTS_READ_START_DELAYS)
01879 #define ES_READ_END_DELAYS EMAPI(EDTS_READ_END_DELAYS)
01880 #define ES_WRITE_START_DELAYS EMAPI(EDTS_WRITE_START_DELAYS)
01881 #define ES_WRITE_END_DELAYS EMAPI(EDTS_WRITE_END_DELAYS)
01882
01883
01884 #define MIN_PCI_IOCTL 200
01885 #define PCIIOC(action, type, size) EIOC(action+MIN_PCI_IOCTL, type, size)
01886
01887
01888 #define PCD_STAT1_SIG 1
01889 #define PCD_STAT2_SIG 2
01890 #define PCD_STAT3_SIG 3
01891 #define PCD_STAT4_SIG 4
01892 #define PCD_STATX_SIG 5
01893
01894
01895 #define P16_DINT_SIG 1
01896
01897
01898 #define P11_ATT_SIG 1
01899 #define P11_CNT_SIG 2
01900
01901
01902 #define P53B_SRQ_SIG 1
01903 #define P53B_INTERVAL_SIG 2
01904 #define P53B_MODECODE_SIG 3
01905
01906 #define ID_IS_PCD(id) ((id == PCD20_ID) \
01907 || (id == PCD40_ID) \
01908 || (id == PCD60_ID) \
01909 || (id == PGP20_ID) \
01910 || (id == PGP40_ID) \
01911 || (id == PGP60_ID) \
01912 || (id == PGP_ECL_ID) \
01913 || (id == PCDFCI_SIM_ID) \
01914 || (id == PCDFCI_PCD_ID) \
01915 || (id == PSS4_ID) \
01916 || (id == PSS16_ID) \
01917 || (id == PCDA_ID) \
01918 || (id == PCDCL_ID) \
01919 || (id == PCDA16_ID) \
01920 || (id == PCD_16_ID) \
01921 || (id == PCDFOX_ID) \
01922 || (id == PGS4_ID) \
01923 || (id == PGS16_ID) \
01924 || (id == PE8LX1_ID) \
01925 || (id == PE8LX4_ID) \
01926 || (id == PE8LX16_ID) \
01927 || (id == PGP_THARAS_ID))
01928
01929 #define ID_IS_SS(id) ((id == PSS4_ID) \
01930 || (id == PSS16_ID))
01931
01932 #define ID_IS_GS(id) ((id == PGS4_ID) \
01933 || (id == PGS16_ID))
01934
01935 #define ID_IS_LX(id) ((id == PE8LX1_ID) \
01936 || (id == PE8LX4_ID) \
01937 || (id == PE8LX16_ID))
01938
01939 #define ID_IS_PDV(id) ((id == PDV_ID) \
01940 || (id == PDVK_ID) \
01941 || (id == PDV44_ID) \
01942 || (id == PDVAERO_ID) \
01943 || (id == PDVCL_ID) \
01944 || (id == PE4DVCL_ID) \
01945 || (id == PE8DVCL_ID) \
01946 || (id == PDVCL2_ID) \
01947 || (id == PDVFOI_ID) \
01948 || (id == PDVFCI_AIAG_ID) \
01949 || (id == PDVFCI_USPS_ID) \
01950 || (id == PDVA_ID) \
01951 || (id == PDVFOX_ID) \
01952 || (id == PE4DVFOX_ID) \
01953 || (id == PE8DVFOX_ID) \
01954 || (id == PDVA16_ID) \
01955 || (id == PGP_RGB_ID) \
01956 || (id == PE4DVFCI_ID) \
01957 || (id == PE8DVFCI_ID))
01958
01959 #define ID_IS_DVFOX(id) ((id == PDVFOX_ID) \
01960 || (id == PE4DVFOX_ID) \
01961 || (id == PE8DVFOX_ID))
01962
01963 #define ID_IS_DVCL(id) ((id == PDVCL_ID) \
01964 || (id == PE4DVCL_ID) \
01965 || (id == PE8DVCL_ID))
01966
01967 #define ID_IS_DVCL2(id) ((id == PDVCL2_ID) \
01968 || (id == PE4DVCL_ID) \
01969 || (id == PE8DVCL_ID))
01970
01971
01976 #define edt_is_pdv(edt_p) (ID_IS_PDV(edt_p->devid))
01977 #define edt_is_pcd(edt_p) (ID_IS_PCD(edt_p->devid))
01978 #define edt_is_dvfox(edt_p) (ID_IS_DVFOX(edt_p->devid))
01979 #define edt_is_dvcl(edt_p) (ID_IS_DVCL(edt_p->devid))
01980 #define edt_is_dvcl2(edt_p) (ID_IS_DVCL2(edt_p->devid))
01981
01982 #define edt_is_dv_multichannel(edt_p) (edt_is_dvcl(edt_p) || edt_is_dvfox(edt_p) || edt_p->devid == PDVAERO_ID)
01983
01985
01987
01988 #endif