Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/hyperv/netvsc/if_hnreg.h
Show All 29 Lines | |||||
#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_CHIM_SIG 0xface | ||||
#define HN_NVS_CHIM_IDX_INVALID 0xffffffff | |||||
#define HN_NVS_RNDIS_MTYPE_DATA 0 | |||||
#define HN_NVS_RNDIS_MTYPE_CTRL 1 | |||||
/* | |||||
* NVS message transacion status codes. | |||||
*/ | |||||
#define HN_NVS_STATUS_OK 1 | #define HN_NVS_STATUS_OK 1 | ||||
/* | |||||
* NVS request/response message types. | |||||
*/ | |||||
#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_RXBUF_DISCONN 103 | #define HN_NVS_TYPE_RXBUF_DISCONN 103 | ||||
#define HN_NVS_TYPE_CHIM_CONN 104 | #define HN_NVS_TYPE_CHIM_CONN 104 | ||||
#define HN_NVS_TYPE_CHIM_CONNRESP 105 | #define HN_NVS_TYPE_CHIM_CONNRESP 105 | ||||
#define HN_NVS_TYPE_CHIM_DISCONN 106 | #define HN_NVS_TYPE_CHIM_DISCONN 106 | ||||
#define HN_NVS_TYPE_RNDIS 107 | |||||
#define HN_NVS_TYPE_NDIS_CONF 125 | #define HN_NVS_TYPE_NDIS_CONF 125 | ||||
#define HN_NVS_TYPE_SUBCH_REQ 133 | #define HN_NVS_TYPE_SUBCH_REQ 133 | ||||
#define HN_NVS_TYPE_SUBCH_RESP 133 /* same as SUBCH_REQ */ | #define HN_NVS_TYPE_SUBCH_RESP 133 /* same as SUBCH_REQ */ | ||||
/* | /* | ||||
* 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. | ||||
▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | |||||
} __packed; | } __packed; | ||||
CTASSERT(sizeof(struct hn_nvs_subch_req) >= HN_NVS_REQSIZE_MIN); | CTASSERT(sizeof(struct hn_nvs_subch_req) >= HN_NVS_REQSIZE_MIN); | ||||
struct hn_nvs_subch_resp { | struct hn_nvs_subch_resp { | ||||
uint32_t nvs_type; /* HN_NVS_TYPE_SUBCH_RESP */ | uint32_t nvs_type; /* HN_NVS_TYPE_SUBCH_RESP */ | ||||
uint32_t nvs_status; /* HN_NVS_STATUS_ */ | uint32_t nvs_status; /* HN_NVS_STATUS_ */ | ||||
uint32_t nvs_nsubch; | uint32_t nvs_nsubch; | ||||
} __packed; | } __packed; | ||||
struct hn_nvs_rndis { | |||||
uint32_t nvs_type; /* HN_NVS_TYPE_RNDIS */ | |||||
uint32_t nvs_rndis_mtype;/* HN_NVS_RNDIS_MTYPE_ */ | |||||
/* | |||||
* Chimney sending buffer index and size. | |||||
* | |||||
* NOTE: | |||||
* If nvs_chim_idx is set to HN_NVS_CHIM_IDX_INVALID | |||||
* and nvs_chim_sz is set to 0, then chimney sending | |||||
* buffer is _not_ used by this RNDIS message. | |||||
*/ | |||||
uint32_t nvs_chim_idx; | |||||
uint32_t nvs_chim_sz; | |||||
uint8_t nvs_rsvd[16]; | |||||
} __packed; | |||||
CTASSERT(sizeof(struct hn_nvs_rndis) >= HN_NVS_REQSIZE_MIN); | |||||
#endif /* !_IF_HNREG_H_ */ | #endif /* !_IF_HNREG_H_ */ |