On Tue, Feb 27, 2024 at 10:10:03AM +0100, Morten Brørup wrote:
> > From: Tyler Retzlaff [mailto:roret...@linux.microsoft.com]
> > Sent: Tuesday, 27 February 2024 06.41
> > 
> > RTE_MARKER typedefs are a GCC extension unsupported by MSVC. Provide
> > inline functions to access compatible type pointer to rearm_data
> > and rx_descriptor_fields1 which will allow direct references on the
> > rte marker fields to be removed.
> > 
> > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com>
> > ---
> >  lib/mbuf/rte_mbuf.h      | 13 +++++++++++++
> >  lib/mbuf/rte_mbuf_core.h | 11 ++++++++++-
> >  2 files changed, 23 insertions(+), 1 deletion(-)
> > 
> > diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h
> > index 286b32b..aa7495b 100644
> > --- a/lib/mbuf/rte_mbuf.h
> > +++ b/lib/mbuf/rte_mbuf.h
> > @@ -132,6 +132,19 @@
> >  #endif
> >  }
> > 
> > +static inline
> > +uint64_t *
> > +rte_mbuf_rearm_data(struct rte_mbuf *m)
> > +{
> > +   return (uint64_t *)&m->data_off;
> > +}
> 
> Consider returning (void *) instead of (uint64_t *).
> Just a suggestion; I don't know which is better.

if you mean just the cast i don't think it matters. arguably it could go
void * first but we're already aliasing through a different type. this
is one argument in favor of the union.

> 
> > +
> > +static inline
> > +void *
> > +rte_mbuf_rx_descriptor_fields1(struct rte_mbuf *m)
> > +{
> > +   return &m->packet_type;
> > +}
> 
> The mbuf_rx_descriptor_fields1 field is disappearing in a later patch;
> consider taking the opportunity to use a better name here.

oh boy. you're asking for a new name but not suggesting a new name.
naming is hard (no one is ever happy). for this and rearm_data if you
or anyone suggests a name i'll make the change ~everywhere including
comments across all drivers.

> 
> > 
> >  static inline uint16_t rte_pktmbuf_priv_size(struct rte_mempool *mp);
> > 
> > diff --git a/lib/mbuf/rte_mbuf_core.h b/lib/mbuf/rte_mbuf_core.h
> > index 5688683..7000c04 100644
> > --- a/lib/mbuf/rte_mbuf_core.h
> > +++ b/lib/mbuf/rte_mbuf_core.h
> > @@ -486,7 +486,12 @@ struct rte_mbuf {
> >     struct rte_mbuf *next;
> >  #endif
> > 
> > -   /* next 8 bytes are initialised on RX descriptor rearm */
> > +   /**
> > +    * next 8 bytes are initialised on RX descriptor rearm
> > +    *
> > +    * To obtain a pointer to rearm_data use the rte_mbuf_rearm_data()
> 
> The "rearm_data" field is disappearing in a later patch;
> don't refer to it by that name in the comments here.

without having renamed the block of fields cheerfully known as
"rearm_data" i kept all documentation/comments here and in drivers
using rearm_data for familiarity. (unless someone suggests a new name for the 
group
of fields).

> 
> > +    * accessor instead of directly referencing through the data_off field.
> > +    */
> >     RTE_MARKER64 rearm_data;
> >     uint16_t data_off;
> > 
> > @@ -522,6 +527,10 @@ struct rte_mbuf {
> >      * mbuf. Example: if vlan stripping is enabled, a received vlan packet
> >      * would have RTE_PTYPE_L2_ETHER and not RTE_PTYPE_L2_VLAN because the
> >      * vlan is stripped from the data.
> > +    *
> > +    * To obtain a pointer to rx_descriptor_fields1 use the
> > +    * rte_mbuf_rx_descriptor_fields1() accessor instead of directly
> 
> The "rx_descriptor_fields1" field is disappearing in a later patch;
> don't refer to it by that name in the comments here.
> And if you update the access function's name, remember to update it in the 
> comment here too.

same as above.

> 
> > +    * referencing through the the anonymous union fields.
> >      */
> >     union {
> >             uint32_t packet_type; /**< L2/L3/L4 and tunnel information. */
> > --
> > 1.8.3.1

Reply via email to