All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
To: Sean Young <sean@mess.org>
Cc: Linux Media Mailing List <linux-media@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@infradead.org>
Subject: Re: [PATCH 03/20] [media] lirc.h: remove several unused ioctls
Date: Tue, 12 Jul 2016 11:05:24 -0300	[thread overview]
Message-ID: <20160712110524.57e2b674@recife.lan> (raw)
In-Reply-To: <20160712135438.GA11183@gofer.mess.org>

Em Tue, 12 Jul 2016 14:54:38 +0100
Sean Young <sean@mess.org> escreveu:

> On Tue, Jul 12, 2016 at 02:35:56PM +0100, Sean Young wrote:
> > On Tue, Jul 12, 2016 at 10:23:00AM -0300, Mauro Carvalho Chehab wrote:  
> > > Em Tue, 12 Jul 2016 14:14:06 +0100
> > > Sean Young <sean@mess.org> escreveu:  
> > > > On Tue, Jul 12, 2016 at 09:41:57AM -0300, Mauro Carvalho Chehab wrote:  
> > -snip-  
> > > > > -#define LIRC_SET_REC_DUTY_CYCLE        _IOW('i', 0x00000016, __u32)    
> > > > 
> > > > Also remove LIRC_CAN_SET_REC_DUTY_CYCLE and 
> > > > LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE.  
> > > 
> > > Removing the "LIRC_CAN" macros can break userspace, as some app could
> > > be using it to print the LIRC features. That's why I opted to keep
> > > them, but to document that those features are unused - this is at
> > > the next patch (04/20).  
> > 
> > How is that different from removing the ioctls? Might as well go the whole
> > hog.  

If someone implemented LIRC_GET_FEATURES and handled all flags, such
program would break, as the API change.

> 
> Ah you meant that if someone later adds a new feature then we might reuse
> an existing bit. Oops, sorry.

Yes, this is another possibility. In such case, the ABI will also 
break, with is more severe than a pure API change.

Removing the ioctl declarations will still work for compiled programs,
as they'll still receive an error code when the ioctl is issued.

> 
> > Also note that LIRC_CAN_SET_REC_DUTY_CYCLE has the same value as
> > LIRC_CAN_MEASURE_CARRIER, so if some userspace program uses this it might
> > end up in the mistaken belief its supports LIRC_CAN_SET_REC_DUTY_CYCLE.  
> 
> So there is an argument for removing LIRC_CAN_SET_REC_DUTY_CYCLE, but
> that should be a separate patch.

Yes. Yet, IMHO, the best would be to put those unused LIRC_CAN into a:

#ifndef __KERNEL

macro block, to:

1) avoid the risk of breaking userspace;
2) be clear that those are deprecated stuff and should not be used on
   newer programs;
3) Reserve the bits for not be used, to avoid possible conflicts.

Regards,
Mauro

  reply	other threads:[~2016-07-12 14:05 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-12 12:41 [PATCH 00/20] Improve LIRC documentation Mauro Carvalho Chehab
2016-07-12 12:41 ` [PATCH 01/20] [media] doc-rst: Document ioctl LIRC_GET_FEATURES Mauro Carvalho Chehab
2016-07-12 12:41 ` [PATCH 02/20] [media] doc-rst: add media/uapi/rc/lirc-header.rst Mauro Carvalho Chehab
2016-07-12 12:41 ` [PATCH 03/20] [media] lirc.h: remove several unused ioctls Mauro Carvalho Chehab
2016-07-12 13:14   ` Sean Young
2016-07-12 13:23     ` Mauro Carvalho Chehab
2016-07-12 13:35       ` Sean Young
2016-07-12 13:54         ` Sean Young
2016-07-12 14:05           ` Mauro Carvalho Chehab [this message]
2016-07-12 12:41 ` [PATCH 04/20] [media] doc-rst: remove not used ioctls from documentation Mauro Carvalho Chehab
2016-07-12 12:41 ` [PATCH 05/20] [media] doc-rst: Fix LIRC_GET_FEATURES references Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 06/20] [media] doc-rst: document ioctl LIRC_GET_SEND_MODE Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 07/20] [media] doc-rst: fix some lirc cross-references Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 08/20] [media] doc-rst: document ioctl LIRC_GET_REC_MODE Mauro Carvalho Chehab
2016-07-12 13:01   ` Sean Young
2016-07-12 13:27     ` Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 09/20] [media] doc-rst: document LIRC_GET_REC_RESOLUTION Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 10/20] [media] doc-rst: document LIRC_SET_SEND_DUTY_CYCLE Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 11/20] [media] doc-rst: document LIRC_GET_*_TIMEOUT ioctls Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 12/20] [media] doc-rst: Document LIRC_GET_LENGTH ioctl Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 13/20] [media] doc-rst: document LIRC set carrier ioctls Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 14/20] [media] doc-rst: document LIRC_SET_TRANSMITTER_MASK Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 15/20] [media] doc-rst: document LIRC_SET_REC_TIMEOUT Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 16/20] [media] doc-rst: document LIRC_SET_REC_TIMEOUT_REPORTS Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 17/20] [media] doc-rst: add documentation for LIRC_SET_MEASURE_CARRIER_MODE Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 18/20] [media] doc-rst: document LIRC_SET_WIDEBAND_RECEIVER Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 19/20] [media] doc-rst: Document LIRC set mode ioctls Mauro Carvalho Chehab
2016-07-12 12:42 ` [PATCH 20/20] [media] doc-rst: reorganize LIRC ReST files Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160712110524.57e2b674@recife.lan \
    --to=mchehab@s-opensource.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    --cc=sean@mess.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.