mac_provider.h revision 89c6130d11b723ae8c40d4703e7f733daad98df2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER START
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner * The contents of this file are subject to the terms of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Common Development and Distribution License (the "License").
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * You may not use this file except in compliance with the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * See the License for the specific language governing permissions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * and limitations under the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * When distributing Covered Code, include this CDDL HEADER in each
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If applicable, add the following below this CDDL HEADER, with the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * fields enclosed by brackets "[]" replaced with your own identifying
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * information: Portions Copyright [yyyy] [name of copyright owner]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER END
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * MAC Provider Interface
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinextern "C" {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * MAC version identifiers. Drivers compiled against the stable V1 version
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * of the API should register with MAC_VERSION_V1. ON drivers should use
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * MAC_VERSION. This is used by mac_alloc() mac_register() to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * verify that incompatible drivers don't register.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Possible values for ETHER_STAT_XCVR_INUSE statistic.
#ifdef _KERNEL
} mac_capab_t;
typedef struct lso_basic_tcp_ipv4_s {
typedef struct mac_capab_lso_s {
typedef struct mac_capab_multifactaddr_s {
typedef struct mac_capab_legacy_s {
void (*ml_active_clear)(void *);
int (*ml_fastpath_disable)(void *);
void (*ml_fastpath_enable)(void *);
typedef int (*mac_start_t)(void *);
typedef void (*mac_stop_t)(void *);
typedef void (*mac_resources_t)(void *);
typedef int (*mac_open_t)(void *);
typedef void (*mac_close_t)(void *);
uint_t, const void *);
uint_t, void *);
typedef struct mac_callbacks_s {
MAC_NO_CLASSIFIER = 0,
typedef struct mac_capab_rings_s {
typedef struct mac_ring_info_s {
} mrfunion;
struct mac_group_info_s {
typedef struct mac_capab_share_s {
typedef struct mac_capab_vrrp_s {
int mcv_af;
typedef struct mac_register_s {
const char *m_type_ident;
void *m_pdata;
char **m_priv_props;
mblk_t *);
const uint8_t *);
size_t);
mac_setpromisc_t, void *);
extern int mactype_unregister(const char *);
extern void mac_prop_info_set_default_uint8(
extern void mac_prop_info_set_default_str(
mac_prop_info_handle_t, const char *);
extern void mac_prop_info_set_default_uint64(
extern void mac_prop_info_set_default_uint32(
extern void mac_prop_info_set_default_link_flowctrl(
extern void mac_prop_info_set_range_uint32(
uint8_t);
uint32_t *);
#ifdef __cplusplus