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