Message ID | 1471343175-14945-11-git-send-email-vsementsov@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 08/16 13:26, Vladimir Sementsov-Ogievskiy wrote: > Add function opposite to qemu_get_counted_string. > qemu_put_counted_string puts one-byte length of the string (string > should not be longer than 255 characters), and then it puts the string, > without last zero byte. > > Reviewed-by: John Snow <jsnow@redhat.com> > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > --- > include/migration/qemu-file.h | 2 ++ > migration/qemu-file.c | 13 +++++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h > index abedd46..d860c92 100644 > --- a/include/migration/qemu-file.h > +++ b/include/migration/qemu-file.h > @@ -309,4 +309,6 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv) > > size_t qemu_get_counted_string(QEMUFile *f, char buf[256]); > > +void qemu_put_counted_string(QEMUFile *f, const char *name); > + > #endif > diff --git a/migration/qemu-file.c b/migration/qemu-file.c > index bbc565e..6fcdd68 100644 > --- a/migration/qemu-file.c > +++ b/migration/qemu-file.c > @@ -690,6 +690,19 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256]) > } > > /* > + * Put a string with one preceding byte containing its length. The length of > + * the string should be less than 256. > + */ > +void qemu_put_counted_string(QEMUFile *f, const char *name) "Name" is a poor name. Perhaps call it "buf" like qemu_get_counted_string? Fam > +{ > + size_t len = strlen(name); > + > + assert(len < 256); > + qemu_put_byte(f, len); > + qemu_put_buffer(f, (const uint8_t *)name, len); > +} > + > +/* > * Set the blocking state of the QEMUFile. > * Note: On some transports the OS only keeps a single blocking state for > * both directions, and thus changing the blocking on the main > -- > 1.8.3.1 > >
17.08.2016 12:09, Fam Zheng wrote: > On Tue, 08/16 13:26, Vladimir Sementsov-Ogievskiy wrote: >> Add function opposite to qemu_get_counted_string. >> qemu_put_counted_string puts one-byte length of the string (string >> should not be longer than 255 characters), and then it puts the string, >> without last zero byte. >> >> Reviewed-by: John Snow <jsnow@redhat.com> >> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> >> --- >> include/migration/qemu-file.h | 2 ++ >> migration/qemu-file.c | 13 +++++++++++++ >> 2 files changed, 15 insertions(+) >> >> diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h >> index abedd46..d860c92 100644 >> --- a/include/migration/qemu-file.h >> +++ b/include/migration/qemu-file.h >> @@ -309,4 +309,6 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv) >> >> size_t qemu_get_counted_string(QEMUFile *f, char buf[256]); >> >> +void qemu_put_counted_string(QEMUFile *f, const char *name); >> + >> #endif >> diff --git a/migration/qemu-file.c b/migration/qemu-file.c >> index bbc565e..6fcdd68 100644 >> --- a/migration/qemu-file.c >> +++ b/migration/qemu-file.c >> @@ -690,6 +690,19 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256]) >> } >> >> /* >> + * Put a string with one preceding byte containing its length. The length of >> + * the string should be less than 256. >> + */ >> +void qemu_put_counted_string(QEMUFile *f, const char *name) > "Name" is a poor name. Perhaps call it "buf" like qemu_get_counted_string? buf is poor too, as it say nothing about 0-ended string. Let it be 'str'. > > Fam > >> +{ >> + size_t len = strlen(name); >> + >> + assert(len < 256); >> + qemu_put_byte(f, len); >> + qemu_put_buffer(f, (const uint8_t *)name, len); >> +} >> + >> +/* >> * Set the blocking state of the QEMUFile. >> * Note: On some transports the OS only keeps a single blocking state for >> * both directions, and thus changing the blocking on the main >> -- >> 1.8.3.1 >> >>
diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h index abedd46..d860c92 100644 --- a/include/migration/qemu-file.h +++ b/include/migration/qemu-file.h @@ -309,4 +309,6 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv) size_t qemu_get_counted_string(QEMUFile *f, char buf[256]); +void qemu_put_counted_string(QEMUFile *f, const char *name); + #endif diff --git a/migration/qemu-file.c b/migration/qemu-file.c index bbc565e..6fcdd68 100644 --- a/migration/qemu-file.c +++ b/migration/qemu-file.c @@ -690,6 +690,19 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256]) } /* + * Put a string with one preceding byte containing its length. The length of + * the string should be less than 256. + */ +void qemu_put_counted_string(QEMUFile *f, const char *name) +{ + size_t len = strlen(name); + + assert(len < 256); + qemu_put_byte(f, len); + qemu_put_buffer(f, (const uint8_t *)name, len); +} + +/* * Set the blocking state of the QEMUFile. * Note: On some transports the OS only keeps a single blocking state for * both directions, and thus changing the blocking on the main