summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4v/sys/ldc_impl.h
diff options
context:
space:
mode:
authorlm66018 <none@none>2006-09-22 21:06:19 -0700
committerlm66018 <none@none>2006-09-22 21:06:19 -0700
commit3af08d828975d7e2581b6829e0eecff14d87a483 (patch)
tree48f2ed72b492ce55198e707f3248e527e9ad08ce /usr/src/uts/sun4v/sys/ldc_impl.h
parentb51e021de072d76292addb44467f777617c6a8c1 (diff)
downloadillumos-joyent-3af08d828975d7e2581b6829e0eecff14d87a483.tar.gz
6458676 memory leak with 12 hours all_solaris_tests.
6460802 vdc does not handle ldc_write failures appropriately 6462669 VDC bind failure messages under stress in an ldom. 6463753 panic[cpu0]/thread=2a100207cc0: kernel heap corruption detected 6469548 Domain Services module should not claim every DS port in the MD 6469890 LDC clients fail to handshake reliably following a channel reset 6469900 LDOM domain0 runs out of freemem during extended runs. 6470870 pcp_init() returns error right after boot 6471712 vntsd cannot be disabled via svcadm unless issued twice.
Diffstat (limited to 'usr/src/uts/sun4v/sys/ldc_impl.h')
-rw-r--r--usr/src/uts/sun4v/sys/ldc_impl.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/usr/src/uts/sun4v/sys/ldc_impl.h b/usr/src/uts/sun4v/sys/ldc_impl.h
index dbf9154c78..16ec881617 100644
--- a/usr/src/uts/sun4v/sys/ldc_impl.h
+++ b/usr/src/uts/sun4v/sys/ldc_impl.h
@@ -88,6 +88,8 @@ extern "C" {
#define TS_HSHAKE_DONE 0x40 /* completed handshake */
#define TS_UP (TS_READY | TS_VER_DONE | TS_HSHAKE_DONE)
+#define TS_IN_RESET 0x100 /* channel is in reset state */
+
/* LDC Channel Transport Handshake states */
#define TS_SENT_VER 0x01 /* Sent version */
#define TS_SENT_RTS 0x02 /* Sent RTS */
@@ -98,6 +100,11 @@ extern "C" {
#define TS_SENT_RTR 0x40 /* Sent RTR */
#define TS_RCVD_RDX 0x80 /* Received RDX */
+/* LDC Interrupt State */
+#define LDC_INTR_NONE 0x00 /* No interrupts */
+#define LDC_INTR_ACTIVE 0x01 /* Interrupt being processed */
+#define LDC_INTR_PEND 0x02 /* Interrupt pending */
+
/* LDC MSG Envelope */
#define LDC_LEN_MASK 0x3F
#define LDC_FRAG_MASK 0xC0
@@ -321,6 +328,7 @@ typedef struct ldc_mtbl {
uint64_t next_entry; /* Next entry to use */
uint64_t num_entries; /* Num entries in table */
uint64_t num_avail; /* Num of available entries */
+ boolean_t contigmem; /* TRUE=Contig mem alloc'd */
ldc_mte_slot_t *table; /* The table itself */
} ldc_mtbl_t;
@@ -416,7 +424,7 @@ struct ldc_chan {
uint64_t devinst; /* Associated device instance */
ldc_mode_t mode; /* Channel mode */
- uint64_t mtu; /* Max TU size (streaming for now) */
+ uint64_t mtu; /* Max TU size */
ldc_ver_t version; /* Channel version */
uint32_t next_vidx; /* Next version to match */
@@ -426,8 +434,8 @@ struct ldc_chan {
boolean_t cb_inprogress; /* Channel callback in progress */
boolean_t cb_enabled; /* Channel callbacks are enabled */
- boolean_t tx_intr_pending; /* TRUE if Tx interrupts are pending */
- boolean_t rx_intr_pending; /* TRUE if Rx interrupts are pending */
+ uint8_t tx_intr_state; /* Tx interrupt state */
+ uint8_t rx_intr_state; /* Rx interrupt state */
kmutex_t tx_lock; /* Transmit lock */
uint64_t tx_q_entries; /* Num entries in transmit queue */