Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/hyperv/netvsc/if_hnreg.h
Show All 27 Lines | |||||
#ifndef _IF_HNREG_H_ | #ifndef _IF_HNREG_H_ | ||||
#define _IF_HNREG_H_ | #define _IF_HNREG_H_ | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#define HN_NVS_RXBUF_SIG 0xcafe | #define HN_NVS_RXBUF_SIG 0xcafe | ||||
#define HN_NVS_CHIM_SIG 0xface | |||||
#define HN_NVS_STATUS_OK 1 | #define HN_NVS_STATUS_OK 1 | ||||
#define HN_NVS_TYPE_INIT 1 | #define HN_NVS_TYPE_INIT 1 | ||||
#define HN_NVS_TYPE_INIT_RESP 2 | #define HN_NVS_TYPE_INIT_RESP 2 | ||||
#define HN_NVS_TYPE_NDIS_INIT 100 | #define HN_NVS_TYPE_NDIS_INIT 100 | ||||
#define HN_NVS_TYPE_RXBUF_CONN 101 | #define HN_NVS_TYPE_RXBUF_CONN 101 | ||||
#define HN_NVS_TYPE_RXBUF_CONNRESP 102 | #define HN_NVS_TYPE_RXBUF_CONNRESP 102 | ||||
#define HN_NVS_TYPE_CHIM_CONN 104 | |||||
#define HN_NVS_TYPE_CHIM_CONNRESP 105 | |||||
#define HN_NVS_TYPE_NDIS_CONF 125 | #define HN_NVS_TYPE_NDIS_CONF 125 | ||||
/* | /* | ||||
* Any size less than this one will _not_ work, e.g. hn_nvs_init | * Any size less than this one will _not_ work, e.g. hn_nvs_init | ||||
* only has 12B valid data, however, if only 12B data were sent, | * only has 12B valid data, however, if only 12B data were sent, | ||||
* Hypervisor would never reply. | * Hypervisor would never reply. | ||||
*/ | */ | ||||
#define HN_NVS_REQSIZE_MIN 32 | #define HN_NVS_REQSIZE_MIN 32 | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | struct hn_nvs_rxbuf_sect { | ||||
uint32_t nvs_end; | uint32_t nvs_end; | ||||
} __packed; | } __packed; | ||||
struct hn_nvs_rxbuf_connresp { | struct hn_nvs_rxbuf_connresp { | ||||
uint32_t nvs_type; /* HN_NVS_TYPE_RXBUF_CONNRESP */ | uint32_t nvs_type; /* HN_NVS_TYPE_RXBUF_CONNRESP */ | ||||
uint32_t nvs_status; /* HN_NVS_STATUS_ */ | uint32_t nvs_status; /* HN_NVS_STATUS_ */ | ||||
uint32_t nvs_nsect; /* # of elem in nvs_sect */ | uint32_t nvs_nsect; /* # of elem in nvs_sect */ | ||||
struct hn_nvs_rxbuf_sect nvs_sect[]; | struct hn_nvs_rxbuf_sect nvs_sect[]; | ||||
} __packed; | |||||
struct hn_nvs_chim_conn { | |||||
uint32_t nvs_type; /* HN_NVS_TYPE_CHIM_CONN */ | |||||
uint32_t nvs_gpadl; /* chimney buf vmbus GPADL */ | |||||
uint16_t nvs_sig; /* NDIS_NVS_CHIM_SIG */ | |||||
uint8_t nvs_rsvd[22]; | |||||
} __packed; | |||||
CTASSERT(sizeof(struct hn_nvs_chim_conn) >= HN_NVS_REQSIZE_MIN); | |||||
struct hn_nvs_chim_connresp { | |||||
uint32_t nvs_type; /* HN_NVS_TYPE_CHIM_CONNRESP */ | |||||
uint32_t nvs_status; /* HN_NVS_STATUS_ */ | |||||
uint32_t nvs_sectsz; /* section size */ | |||||
} __packed; | } __packed; | ||||
#endif /* !_IF_HNREG_H_ */ | #endif /* !_IF_HNREG_H_ */ |