On Wed, Jun 20, 2018 at 12:27:24PM +0000, Anders Selhammer wrote: > Friday, June 8, 2018 7:53 AM > > > +static struct timespec log_to_timespec(int log_seconds); > > +static void timespec_normalize(struct timespec *ts); > > +static int timespec_compare(struct timespec *a, struct timespec *b); > > Why not in the same order as implemented?
Just by accident. > > +static void interval_increment(struct unicast_service_interval *i) > > *interval is used in other function, why not use it here also? Because this is a super simpler helper function. > > +static struct timespec log_to_timespec(int log_seconds) > >... > > + if (log_seconds < 0) { > > + log_seconds *= -1; > > + for (i = 1, ns = 500000000ULL; i < log_seconds; i++) { > > + ns >>= 1; > > + } > > + ts.tv_nsec = ns; > > + timespec_normalize(&ts); > > + } else { > >... > > I do not see the need of the timespec_normalize when log_seconds are below > zero. Right. It is not needed. > > +void unicast_service_remove(struct port *p, struct ptp_message *m, > > + struct tlv_extra *extra) > > ... > > + LIST_FOREACH(itmp, &p->unicast_service->intervals, list) { > > + LIST_FOREACH_SAFE(ctmp, &itmp->clients, list, next) { > > + if (!addreq(transport_type(p->trp), > > + &ctmp->addr, &m->address)) { > > + continue; > > + } > > + ctmp->message_types &= ~mask; > > + if (!ctmp->message_types) { > > + LIST_REMOVE(ctmp, list); > > + free(ctmp); > > + } > > + } > > + } > > +} > > Since a client only can have a msg _type in one interval, > why not return after free()? Right. I'll test for (mask & ctmp->message_types) and then return. > > +int unicast_service_add(struct port *p, struct ptp_message *m, > > + struct tlv_extra *extra); > > +void unicast_service_cleanup(struct port *p); > > + > > +int unicast_service_deny(struct port *p, struct ptp_message *m, > > + struct tlv_extra *extra); > > +int unicast_service_grant(struct port *p, struct ptp_message *m, > > + struct tlv_extra *extra); > > +int unicast_service_initialize(struct port *p); > > +void unicast_service_remove(struct port *p, struct ptp_message *m, > > + struct tlv_extra *extra); > > +int unicast_service_timer(struct port *p); > > Functions could be ordered more logical. I have them in alphabetical order. > General comment is the naming of the functions. The one word after > unicast_service_ is not always crystal clear. You need to read the function > to understand what some functions should do. I like the names as is, but I will add doxygen comments to explain in more detail what each function does. Thanks, Richard ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linuxptp-devel mailing list Linuxptp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxptp-devel