|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 05/29] tools/xenlogd: add 9pfs response generation support
On Fri, Nov 10, 2023 at 1:41 PM Juergen Gross <jgross@xxxxxxxx> wrote:
> +static void fill_buffer(struct ring *ring, uint8_t cmd, uint16_t tag,
> + const char *fmt, ...)
> +{
> + struct p9_header *hdr = ring->buffer;
> + void *data = hdr + 1;
> + const char *f;
> + const void *par;
> + const char *str_val;
> + const struct p9_qid *qid;
> + unsigned int len;
> + va_list ap;
> + unsigned int array_sz = 0;
> + unsigned int elem_sz = 0;
> +
> + hdr->cmd = cmd;
> + hdr->tag = tag;
> +
> + va_start(ap, fmt);
> +
> + for ( f = fmt; *f; f++ )
> + {
> + if ( !array_sz )
> + par = va_arg(ap, const void *);
> + else
> + {
> + par += elem_sz;
> + array_sz--;
> + }
> +
> + switch ( *f )
> + {
> + case 'a':
> + f++;
> + if ( !*f || array_sz )
> + fmt_err(fmt);
> + array_sz = *(const unsigned int *)par;
> + if ( array_sz > 0xffff )
> + {
> + syslog(LOG_CRIT, "array size %u in fill_buffer()", array_sz);
> + exit(1);
> + }
> + *(__packed uint16_t *)data = array_sz;
Compiling on Fedora 39, gcc 13.2.1:
io.c: In function ‘fill_buffer’:
io.c:233:13: error: ‘packed’ attribute ignored for type ‘uint16_t *’
{aka ‘short unsigned int *’} [-Werror=attributes]
233 | *(__packed uint16_t *)data = array_sz;
| ^
For all these uses of __packed.
Regards,
Jason
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |