diff options
Diffstat (limited to 'usr/src/uts/common/sys/dld.h')
| -rw-r--r-- | usr/src/uts/common/sys/dld.h | 40 |
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; /* |
