31#ifndef __GR1553BC_LIST_H__
32#define __GR1553BC_LIST_H__
222#define GR1553BC_TIMESLOT
224#define GR1553BC_MINOR_MAX 256
225#define GR1553BC_SLOT_MAX 32
248 unsigned char rt_timeout[31];
249 unsigned char bc_timeout;
251 int tropt_irq_on_err;
252 int tropt_pause_on_err;
263 unsigned int table_hw;
264 unsigned int table_cpu;
267 unsigned char rt_timeout[32];
282extern int gr1553bc_list_alloc(
struct gr1553bc_list **list,
int max_major);
294extern int gr1553bc_list_config
306extern void gr1553bc_list_link_major(
315extern int gr1553bc_list_set_major(
321extern int gr1553bc_minor_table_size(
struct gr1553bc_minor *minor);
325extern int gr1553bc_list_table_size(
struct gr1553bc_list *list);
337extern int gr1553bc_list_table_alloc
344extern void gr1553bc_list_table_free(
struct gr1553bc_list *list);
349extern int gr1553bc_list_table_build(
struct gr1553bc_list *list);
371extern int gr1553bc_major_alloc_skel
384#define GR1553BC_ID(major_num, minor_num, slot_num) \
385 ((((major_num)<<16)&0xff0000) | (((minor_num)<<8)&0xff00) | \
387#define GR1553BC_MINOR_ID(major_num, minor_num) \
388 GR1553BC_ID(major_num, minor_num, 0xff)
389#define GR1553BC_MAJOR_ID(major_num) \
390 GR1553BC_ID(major_num, 0xff, 0xff)
392#define GR1553BC_MAJID_FROM_ID(mid) (((mid) >> 16) & 0xff)
393#define GR1553BC_MINID_FROM_ID(mid) (((mid) >> 8) & 0xff)
394#define GR1553BC_SLOTID_FROM_ID(mid) ((mid) & 0xff)
395#define GR1553BC_ID_SET_SLOT(mid, slot_num) (((mid) & ~0xff) | ((slot_num) & 0xff))
410extern int gr1553bc_list_freetime(
struct gr1553bc_list *list,
int mid);
427extern int gr1553bc_slot_alloc(
436extern int gr1553bc_slot_alloc2(
447extern int gr1553bc_slot_free(
struct gr1553bc_list *list,
int mid);
448extern int gr1553bc_slot_free2(
struct gr1553bc_minor *minor,
int mid);
469extern int gr1553bc_mid_from_bd(
485typedef void (*bcirq_func_t)(
union gr1553bc_bd *bd,
void *data);
490extern int gr1553bc_slot_irq_prepare
499extern int gr1553bc_slot_irq_enable(
struct gr1553bc_list *list,
int mid);
505extern int gr1553bc_slot_irq_disable(
struct gr1553bc_list *list,
int mid);
512extern int gr1553bc_slot_jump
523extern int gr1553bc_slot_exttrig(
struct gr1553bc_list *list,
int mid);
561extern int gr1553bc_slot_transfer(
572extern int gr1553bc_slot_dummy(
575 unsigned int *dummy);
580extern int gr1553bc_slot_empty(
struct gr1553bc_list *list,
int mid);
599extern int gr1553bc_slot_update(
611extern int gr1553bc_slot_raw
626#define GR1553BC_BC2RT(rtadr, subadr, word_count) \
627 ((rtadr<<11) | (subadr<<5) | (0x1f<<21) | (0<<10) | \
628 ((word_count>=32) ? 0 : word_count))
631#define GR1553BC_RT2BC(rtadr, subadr, word_count) \
632 ((rtadr<<11) | (subadr<<5) | (0x1f<<21) | (1<<10) | \
633 ((word_count>=32) ? 0 : word_count))
636#define GR1553BC_RT2RT(tx_rtadr, tx_subadr, rx_rtadr, rx_subadr, word_count) \
637 ((rx_rtadr<<11) | (rx_subadr<<5) | \
638 (tx_rtadr<<21) | (tx_subadr<<16) | \
640 ((word_count>=32) ? 0 : word_count))
645#define GR1553BC_MC_NODATA(rtadr, modecode) \
646 ((rtadr<<11) | (0x1f<<5) | (0x1f<<21) | \
647 (modecode<<0) | (1<<10))
652#define GR1553BC_MC_RT2BC(rtadr, modecode) \
653 ((rtadr<<11) | (0x1f<<5) | (0x1f<<21) | \
654 (modecode<<0) | (1<<10))
659#define GR1553BC_MC_BC2RT(rtadr, modecode) \
660 ((rtadr<<11) | (0x1f<<5) | (0x1f<<21) | \
661 (modecode<<0) | (0<<10))
664#define GR1553BC_BC_BC2RT(subadr, word_count) \
665 ((0x1f<<11) | (subadr<<5) | (0x1f<<21) | \
667 ((word_count>=32) ? 0 : word_count))
670#define GR1553BC_BC_RT2RT(tx_rtadr, tx_subadr, rx_subadr, word_count) \
671 ((0x1f<<11) | (rx_subadr<<5) | \
672 (tx_rtadr<<21) | (tx_subadr<<16) | \
674 ((word_count>=32) ? 0 : word_count))
679#define GR1553BC_BC_MC_NODATA(modecode) \
680 ((0x1f<<11) | (0x1f<<5) | (0x1f<<21) | \
681 ((modecode)<<0) | (1<<10))
686#define GR1553BC_BC_MC_BC2RT(modecode) \
687 ((0x1f<<11) | (0x1f<<5) | (0x1f<<21) | \
688 ((modecode)<<0) | (0<<10))
694#define GR1553BC_OPT_DUMMY (1<<1)
697#define GR1553BC_RETRY_SAME 0x0
698#define GR1553BC_RETRY_ALTER 0x1
699#define GR1553BC_RETRY_ATTEMPT 0x2
702#define GR1553BC_RETRY_CNT_MAX 6
709#define GR1553BC_OPTIONS(dummy, exttrig, exclusive, retrymode, nretry, bus) \
710 ((((exttrig) & 0x1) << 30) | (((exclusive) & 0x1) << 29) | \
711 ((retrymode) << 23) | ((nretry) << 20) | \
712 ((bus) & 1) | (((dummy) & 0x1) << 1))
714#define GR1553BC_OPTIONS_BUSA GR1553BC_OPTIONS(0,0,0,GR1553BC_RETRY_SAME,0,0)
715#define GR1553BC_OPTIONS_BUSB GR1553BC_OPTIONS(0,0,0,GR1553BC_RETRY_SAME,0,1)
716#define GR1553BC_OPTIONS_BUSA_DUM GR1553BC_OPTIONS(1,0,0,GR1553BC_RETRY_SAME,0,0)
717#define GR1553BC_OPTIONS_BUSB_DUM GR1553BC_OPTIONS(1,0,0,GR1553BC_RETRY_SAME,0,1)
720extern void gr1553bc_show_list(
struct gr1553bc_list *list,
int options);
Definition: gr1553bc_list.h:247
Definition: gr1553bc_list.h:260
Definition: gr1553bc_list.h:242
Definition: gr1553bc_list.h:352
Definition: gr1553bc_list.h:237
Definition: gr1553bc_list.h:359
Definition: gr1553bc.h:91