[Spice-devel] [PATCH 1/3] server: mark deprecated symbols

Marc-André Lureau mlureau at redhat.com
Mon Oct 7 11:21:57 CEST 2013



----- Original Message -----
> ACK. gcc outputs warning when you try to access deprecated struct members?

yes

> I never tried deprecation attributes in such a setting.
> 
> Christophe
> 
> On Thu, Oct 03, 2013 at 11:02:05PM +0200, Marc-André Lureau wrote:
> > ---
> >  server/Makefile.am |  1 +
> >  server/spice.h     | 51
> >  +++++++++++++++++++++++++++++----------------------
> >  2 files changed, 30 insertions(+), 22 deletions(-)
> > 
> > diff --git a/server/Makefile.am b/server/Makefile.am
> > index 815f65e..8cbd87b 100644
> > --- a/server/Makefile.am
> > +++ b/server/Makefile.am
> > @@ -2,6 +2,7 @@ NULL =
> >  SUBDIRS = . tests
> >  
> >  AM_CPPFLAGS =					\
> > +	-DSPICE_SERVER_INTERNAL			\
> >  	-DRED_STATISTICS			\
> >  	$(CELT051_CFLAGS)			\
> >  	$(COMMON_CFLAGS)			\
> > diff --git a/server/spice.h b/server/spice.h
> > index 6fbb7b2..b645112 100644
> > --- a/server/spice.h
> > +++ b/server/spice.h
> > @@ -22,9 +22,15 @@
> >  #include <sys/socket.h>
> >  #include <spice/qxl_dev.h>
> >  #include <spice/vd_agent.h>
> > +#include <spice/macros.h>
> >  
> >  #define SPICE_SERVER_VERSION 0x000c04 /* release 0.12.4 */
> >  
> > +#ifdef SPICE_SERVER_INTERNAL
> > +#undef SPICE_GNUC_DEPRECATED
> > +#define SPICE_GNUC_DEPRECATED
> > +#endif
> > +
> >  /* interface base type */
> >  
> >  typedef struct SpiceBaseInterface SpiceBaseInterface;
> > @@ -69,9 +75,10 @@ typedef struct SpiceChannelEventInfo {
> >      int id;
> >      int flags;
> >      /* deprecated, can't hold ipv6 addresses, kept for backward
> >      compatibility */
> > -    struct sockaddr laddr;
> > -    struct sockaddr paddr;
> > -    socklen_t llen, plen;
> > +    struct sockaddr laddr SPICE_GNUC_DEPRECATED;
> > +    struct sockaddr paddr SPICE_GNUC_DEPRECATED;
> > +    socklen_t llen SPICE_GNUC_DEPRECATED;
> > +    socklen_t plen SPICE_GNUC_DEPRECATED;
> >      /* should be used if (flags & SPICE_CHANNEL_EVENT_FLAG_ADDR_EXT) */
> >      struct sockaddr_storage laddr_ext;
> >      struct sockaddr_storage paddr_ext;
> > @@ -113,32 +120,32 @@ struct QXLWorker {
> >      uint32_t minor_version;
> >      uint32_t major_version;
> >      /* These calls are deprecated. Please use the spice_qxl_* calls
> >      instead */
> > -    void (*wakeup)(QXLWorker *worker);
> > -    void (*oom)(QXLWorker *worker);
> > -    void (*start)(QXLWorker *worker);
> > -    void (*stop)(QXLWorker *worker);
> > +    void (*wakeup)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*oom)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*start)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*stop)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> >      void (*update_area)(QXLWorker *qxl_worker, uint32_t surface_id,
> >                         struct QXLRect *area, struct QXLRect *dirty_rects,
> > -                       uint32_t num_dirty_rects, uint32_t
> > clear_dirty_region);
> > -    void (*add_memslot)(QXLWorker *worker, QXLDevMemSlot *slot);
> > -    void (*del_memslot)(QXLWorker *worker, uint32_t slot_group_id,
> > uint32_t slot_id);
> > -    void (*reset_memslots)(QXLWorker *worker);
> > -    void (*destroy_surfaces)(QXLWorker *worker);
> > -    void (*destroy_primary_surface)(QXLWorker *worker, uint32_t
> > surface_id);
> > +                       uint32_t num_dirty_rects, uint32_t
> > clear_dirty_region) SPICE_GNUC_DEPRECATED;
> > +    void (*add_memslot)(QXLWorker *worker, QXLDevMemSlot *slot)
> > SPICE_GNUC_DEPRECATED;
> > +    void (*del_memslot)(QXLWorker *worker, uint32_t slot_group_id,
> > uint32_t slot_id) SPICE_GNUC_DEPRECATED;
> > +    void (*reset_memslots)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*destroy_surfaces)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*destroy_primary_surface)(QXLWorker *worker, uint32_t
> > surface_id) SPICE_GNUC_DEPRECATED;
> >      void (*create_primary_surface)(QXLWorker *worker, uint32_t surface_id,
> > -                                   QXLDevSurfaceCreate *surface);
> > -    void (*reset_image_cache)(QXLWorker *worker);
> > -    void (*reset_cursor)(QXLWorker *worker);
> > -    void (*destroy_surface_wait)(QXLWorker *worker, uint32_t surface_id);
> > -    void (*loadvm_commands)(QXLWorker *worker, struct QXLCommandExt *ext,
> > uint32_t count);
> > +                                   QXLDevSurfaceCreate *surface)
> > SPICE_GNUC_DEPRECATED;
> > +    void (*reset_image_cache)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*reset_cursor)(QXLWorker *worker) SPICE_GNUC_DEPRECATED;
> > +    void (*destroy_surface_wait)(QXLWorker *worker, uint32_t surface_id)
> > SPICE_GNUC_DEPRECATED;
> > +    void (*loadvm_commands)(QXLWorker *worker, struct QXLCommandExt *ext,
> > uint32_t count) SPICE_GNUC_DEPRECATED;
> >  };
> >  
> >  void spice_qxl_wakeup(QXLInstance *instance);
> >  void spice_qxl_oom(QXLInstance *instance);
> > -void spice_qxl_start(QXLInstance *instance); /* deprecated since 0.11.2
> > -                                                spice_server_vm_start
> > replaces it */
> > -void spice_qxl_stop(QXLInstance *instance);  /* deprecated since 0.11.2
> > -                                                spice_server_vm_stop
> > replaces it */
> > +/* deprecated since 0.11.2, spice_server_vm_start replaces it */
> > +void spice_qxl_start(QXLInstance *instance) SPICE_GNUC_DEPRECATED;
> > +/* deprecated since 0.11.2 spice_server_vm_stop replaces it */
> > +void spice_qxl_stop(QXLInstance *instance) SPICE_GNUC_DEPRECATED;
> >  void spice_qxl_update_area(QXLInstance *instance, uint32_t surface_id,
> >                     struct QXLRect *area, struct QXLRect *dirty_rects,
> >                     uint32_t num_dirty_rects, uint32_t clear_dirty_region);
> > --
> > 1.8.3.1
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list