diff --git a/home/nipa/nipa_out/930771/ynl/old-code/ethtool-user.c b/home/nipa/nipa_out/930771/ynl/new-code/ethtool-user.c index e6a9dea635e2..dd23ea6dbe1e 100644 --- a/home/nipa/nipa_out/930771/ynl/old-code/ethtool-user.c +++ b/home/nipa/nipa_out/930771/ynl/new-code/ethtool-user.c @@ -907,7 +907,7 @@ const struct ynl_policy_attr ethtool_tsconfig_policy[ETHTOOL_A_TSCONFIG_MAX + 1] [ETHTOOL_A_TSCONFIG_HWTSTAMP_PROVIDER] = { .name = "hwtstamp-provider", .type = YNL_PT_NEST, .nest = ðtool_ts_hwtstamp_provider_nest, }, [ETHTOOL_A_TSCONFIG_TX_TYPES] = { .name = "tx-types", .type = YNL_PT_NEST, .nest = ðtool_bitset_nest, }, [ETHTOOL_A_TSCONFIG_RX_FILTERS] = { .name = "rx-filters", .type = YNL_PT_NEST, .nest = ðtool_bitset_nest, }, - [ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS] = { .name = "hwtstamp-flags", .type = YNL_PT_U32, }, + [ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS] = { .name = "hwtstamp-flags", .type = YNL_PT_NEST, .nest = ðtool_bitset_nest, }, }; const struct ynl_policy_nest ethtool_tsconfig_nest = { @@ -7270,6 +7270,7 @@ void ethtool_tsconfig_get_rsp_free(struct ethtool_tsconfig_get_rsp *rsp) ethtool_ts_hwtstamp_provider_free(&rsp->hwtstamp_provider); ethtool_bitset_free(&rsp->tx_types); ethtool_bitset_free(&rsp->rx_filters); + ethtool_bitset_free(&rsp->hwtstamp_flags); free(rsp); } @@ -7326,7 +7327,11 @@ int ethtool_tsconfig_get_rsp_parse(const struct nlmsghdr *nlh, if (ynl_attr_validate(yarg, attr)) return YNL_PARSE_CB_ERROR; dst->_present.hwtstamp_flags = 1; - dst->hwtstamp_flags = ynl_attr_get_u32(attr); + + parg.rsp_policy = ðtool_bitset_nest; + parg.data = &dst->hwtstamp_flags; + if (ethtool_bitset_parse(&parg, attr)) + return YNL_PARSE_CB_ERROR; } } @@ -7384,6 +7389,7 @@ void ethtool_tsconfig_get_list_free(struct ethtool_tsconfig_get_list *rsp) ethtool_ts_hwtstamp_provider_free(&rsp->obj.hwtstamp_provider); ethtool_bitset_free(&rsp->obj.tx_types); ethtool_bitset_free(&rsp->obj.rx_filters); + ethtool_bitset_free(&rsp->obj.hwtstamp_flags); free(rsp); } } @@ -7428,6 +7434,7 @@ void ethtool_tsconfig_set_req_free(struct ethtool_tsconfig_set_req *req) ethtool_ts_hwtstamp_provider_free(&req->hwtstamp_provider); ethtool_bitset_free(&req->tx_types); ethtool_bitset_free(&req->rx_filters); + ethtool_bitset_free(&req->hwtstamp_flags); free(req); } @@ -7437,6 +7444,7 @@ void ethtool_tsconfig_set_rsp_free(struct ethtool_tsconfig_set_rsp *rsp) ethtool_ts_hwtstamp_provider_free(&rsp->hwtstamp_provider); ethtool_bitset_free(&rsp->tx_types); ethtool_bitset_free(&rsp->rx_filters); + ethtool_bitset_free(&rsp->hwtstamp_flags); free(rsp); } @@ -7493,7 +7501,11 @@ int ethtool_tsconfig_set_rsp_parse(const struct nlmsghdr *nlh, if (ynl_attr_validate(yarg, attr)) return YNL_PARSE_CB_ERROR; dst->_present.hwtstamp_flags = 1; - dst->hwtstamp_flags = ynl_attr_get_u32(attr); + + parg.rsp_policy = ðtool_bitset_nest; + parg.data = &dst->hwtstamp_flags; + if (ethtool_bitset_parse(&parg, attr)) + return YNL_PARSE_CB_ERROR; } } @@ -7521,7 +7533,7 @@ ethtool_tsconfig_set(struct ynl_sock *ys, struct ethtool_tsconfig_set_req *req) if (req->_present.rx_filters) ethtool_bitset_put(nlh, ETHTOOL_A_TSCONFIG_RX_FILTERS, &req->rx_filters); if (req->_present.hwtstamp_flags) - ynl_attr_put_u32(nlh, ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS, req->hwtstamp_flags); + ethtool_bitset_put(nlh, ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS, &req->hwtstamp_flags); rsp = calloc(1, sizeof(*rsp)); yrs.yarg.data = rsp; diff --git a/home/nipa/nipa_out/930771/ynl/old-code/ethtool-user.h b/home/nipa/nipa_out/930771/ynl/new-code/ethtool-user.h index 8f4448fd4ddd..a1f62ee5bdac 100644 --- a/home/nipa/nipa_out/930771/ynl/old-code/ethtool-user.h +++ b/home/nipa/nipa_out/930771/ynl/new-code/ethtool-user.h @@ -6849,7 +6849,7 @@ struct ethtool_tsconfig_get_rsp { struct ethtool_ts_hwtstamp_provider hwtstamp_provider; struct ethtool_bitset tx_types; struct ethtool_bitset rx_filters; - __u32 hwtstamp_flags; + struct ethtool_bitset hwtstamp_flags; }; void ethtool_tsconfig_get_rsp_free(struct ethtool_tsconfig_get_rsp *rsp); @@ -6939,7 +6939,7 @@ struct ethtool_tsconfig_set_req { struct ethtool_ts_hwtstamp_provider hwtstamp_provider; struct ethtool_bitset tx_types; struct ethtool_bitset rx_filters; - __u32 hwtstamp_flags; + struct ethtool_bitset hwtstamp_flags; }; static inline struct ethtool_tsconfig_set_req * @@ -7091,11 +7091,50 @@ ethtool_tsconfig_set_req_set_rx_filters_mask(struct ethtool_tsconfig_set_req *re memcpy(req->rx_filters.mask, mask, req->rx_filters._present.mask_len); } static inline void -ethtool_tsconfig_set_req_set_hwtstamp_flags(struct ethtool_tsconfig_set_req *req, - __u32 hwtstamp_flags) +ethtool_tsconfig_set_req_set_hwtstamp_flags_nomask(struct ethtool_tsconfig_set_req *req) { req->_present.hwtstamp_flags = 1; - req->hwtstamp_flags = hwtstamp_flags; + req->hwtstamp_flags._present.nomask = 1; +} +static inline void +ethtool_tsconfig_set_req_set_hwtstamp_flags_size(struct ethtool_tsconfig_set_req *req, + __u32 size) +{ + req->_present.hwtstamp_flags = 1; + req->hwtstamp_flags._present.size = 1; + req->hwtstamp_flags.size = size; +} +static inline void +__ethtool_tsconfig_set_req_set_hwtstamp_flags_bits_bit(struct ethtool_tsconfig_set_req *req, + struct ethtool_bitset_bit *bit, + unsigned int n_bit) +{ + req->_present.hwtstamp_flags = 1; + req->hwtstamp_flags._present.bits = 1; + free(req->hwtstamp_flags.bits.bit); + req->hwtstamp_flags.bits.bit = bit; + req->hwtstamp_flags.bits.n_bit = n_bit; +} +static inline void +ethtool_tsconfig_set_req_set_hwtstamp_flags_value(struct ethtool_tsconfig_set_req *req, + const void *value, + size_t len) +{ + req->_present.hwtstamp_flags = 1; + free(req->hwtstamp_flags.value); + req->hwtstamp_flags._present.value_len = len; + req->hwtstamp_flags.value = malloc(req->hwtstamp_flags._present.value_len); + memcpy(req->hwtstamp_flags.value, value, req->hwtstamp_flags._present.value_len); +} +static inline void +ethtool_tsconfig_set_req_set_hwtstamp_flags_mask(struct ethtool_tsconfig_set_req *req, + const void *mask, size_t len) +{ + req->_present.hwtstamp_flags = 1; + free(req->hwtstamp_flags.mask); + req->hwtstamp_flags._present.mask_len = len; + req->hwtstamp_flags.mask = malloc(req->hwtstamp_flags._present.mask_len); + memcpy(req->hwtstamp_flags.mask, mask, req->hwtstamp_flags._present.mask_len); } struct ethtool_tsconfig_set_rsp { @@ -7111,7 +7150,7 @@ struct ethtool_tsconfig_set_rsp { struct ethtool_ts_hwtstamp_provider hwtstamp_provider; struct ethtool_bitset tx_types; struct ethtool_bitset rx_filters; - __u32 hwtstamp_flags; + struct ethtool_bitset hwtstamp_flags; }; void ethtool_tsconfig_set_rsp_free(struct ethtool_tsconfig_set_rsp *rsp);