summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/dld.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/dld.h')
-rw-r--r--usr/src/uts/common/sys/dld.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/dld.h b/usr/src/uts/common/sys/dld.h
index fb2a0749d3..158a802c4a 100644
--- a/usr/src/uts/common/sys/dld.h
+++ b/usr/src/uts/common/sys/dld.h
@@ -21,6 +21,7 @@
/*
* Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright (c) 2017, Joyent, Inc.
*/
#ifndef _SYS_DLD_H
@@ -29,7 +30,7 @@
/*
* Data-Link Driver ioctl interfaces.
*
- * Note that the datastructures defined here define an ioctl interface
+ * Note that the data structures defined here define an ioctl interface
* that is shared betwen user and kernel space. The dld driver thus
* assumes that the structures have identical layout and size when
* compiled in either IPL32 or LP64.
@@ -191,6 +192,7 @@ typedef struct dld_ioc_rename {
datalink_id_t dir_linkid1;
datalink_id_t dir_linkid2;
char dir_link[MAXLINKNAMELEN];
+ boolean_t dir_zoneinit;
} dld_ioc_rename_t;
/*
@@ -203,6 +205,7 @@ typedef struct dld_ioc_rename {
typedef struct dld_ioc_zid {
zoneid_t diz_zid;
datalink_id_t diz_linkid;
+ boolean_t diz_transient;
} dld_ioc_zid_t;
/*
@@ -314,6 +317,37 @@ typedef struct dld_hwgrpinfo {
char dhi_clnts[MAXCLIENTNAMELEN];
} dld_hwgrpinfo_t;
+#define DLDIOC_GETTRAN DLDIOC(0x1e)
+
+#define DLDIOC_GETTRAN_GETNTRAN UINT32_MAX
+
+typedef struct dld_ioc_gettran {
+ datalink_id_t dgt_linkid;
+ uint_t dgt_tran_id;
+ boolean_t dgt_present;
+ boolean_t dgt_usable;
+} dld_ioc_gettran_t;
+
+#define DLDIOC_READTRAN DLDIOC(0x1f)
+typedef struct dld_ioc_tranio {
+ datalink_id_t dti_linkid;
+ uint_t dti_tran_id;
+ uint_t dti_page;
+ uint_t dti_nbytes;
+ uint_t dti_off;
+ uint64_t dti_buf;
+} dld_ioc_tranio_t;
+
+#define DLDIOC_GETLED DLDIOC(0x20)
+#define DLDIOC_SETLED DLDIOC(0x21)
+
+typedef struct dld_ioc_led {
+ datalink_id_t dil_linkid;
+ mac_led_mode_t dil_supported;
+ mac_led_mode_t dil_active;
+ uint_t dil_pad;
+} dld_ioc_led_t;
+
#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
#pragma pack()
#endif
@@ -350,6 +384,7 @@ typedef struct dld_hwgrpinfo {
*/
typedef int (*dld_capab_func_t)(void *, uint_t, void *, uint_t);
+#define DI_DIRECT_RAW 0x1
/*
* Direct Tx/Rx capability.
*/
@@ -374,6 +409,9 @@ typedef struct dld_capab_direct_s {
/* flow control "can I put on a ring" callback */
uintptr_t di_tx_fctl_df; /* canput-like callback */
void *di_tx_fctl_dh;
+
+ /* flags that control our behavior */
+ uint_t di_flags;
} dld_capab_direct_t;
/*