> > This is intended to hold the fields that only char-device.c has a use > for, but for now this only adds the boilerplate for it, the next commit > will move the relevant field there. > > Signed-off-by: Christophe Fergeau <cfergeau@xxxxxxxxxx> > --- > server/char-device.c | 5 +++++ > server/char-device.h | 3 +++ > 2 files changed, 8 insertions(+) > > diff --git a/server/char-device.c b/server/char-device.c > index d32593209..fa137e416 100644 > --- a/server/char-device.c > +++ b/server/char-device.c > @@ -31,6 +31,9 @@ > #define RED_CHAR_DEVICE_WAIT_TOKENS_TIMEOUT 30000 > #define MAX_POOL_SIZE (10 * 64 * 1024) > > +struct RedCharDeviceWriteBufferPrivate { > +}; > + > typedef struct RedCharDeviceClient RedCharDeviceClient; > struct RedCharDeviceClient { > RedCharDevice *dev; > @@ -144,6 +147,7 @@ static void > red_char_device_write_buffer_free(RedCharDeviceWriteBuffer *buf) > return; > > free(buf->buf); > + free(buf->priv); > free(buf); > } > > @@ -540,6 +544,7 @@ static RedCharDeviceWriteBuffer > *__red_char_device_write_buffer_get( > dev->priv->cur_pool_size -= ret->buf_size; > } else { > ret = spice_new0(RedCharDeviceWriteBuffer, 1); > + ret->priv = spice_new0(RedCharDeviceWriteBufferPrivate, 1); > } > > spice_assert(!ret->buf_used); Would not be better if this is always allocated here to have a public part and a private one after the public to avoid the indirection penalty? So kind of struct RedCharDeviceWriteBufferPrivate { RedCharDeviceWriteBuffer base; .. additional fields here ... }; ... ret = &spice_new0(RedCharDeviceWriteBufferPrivate, 1)->base; > diff --git a/server/char-device.h b/server/char-device.h > index 7854086c3..9bfd7c656 100644 > --- a/server/char-device.h > +++ b/server/char-device.h > @@ -146,6 +146,7 @@ GType red_char_device_get_type(void) G_GNUC_CONST; > * */ > > /* buffer that is used for writing to the device */ > +typedef struct RedCharDeviceWriteBufferPrivate > RedCharDeviceWriteBufferPrivate; > typedef struct RedCharDeviceWriteBuffer { > int origin; > RedClient *client; /* The client that sent the message to the device. > @@ -156,6 +157,8 @@ typedef struct RedCharDeviceWriteBuffer { > uint32_t buf_used; > uint32_t token_price; > uint32_t refs; > + > + RedCharDeviceWriteBufferPrivate *priv; > } RedCharDeviceWriteBuffer; > > void red_char_device_reset_dev_instance(RedCharDevice *dev, I would put client field (patch 3/6) as first to reduce structure size on 64 bit. Beside these, Acked-by: Frediano Ziglio <fziglio@xxxxxxxxxx> for the entire series. Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel