From: Nishanth Menon <nm@ti.com>
To: "Ramirez Luna, Omar" <omar.ramirez@ti.com>
Cc: linux-omap <linux-omap@vger.kernel.org>,
Hiroshi Doyu <Hiroshi.DOYU@nokia.com>,
Ameya Palande <ameya.palande@nokia.com>,
Felipe Contreras <felipe.contreras@nokia.com>,
"Guzman Lugo, Fernando" <x0095840@ti.com>,
"Ramos Falcon, Ernesto" <ernesto@ti.com>
Subject: Re: [PATCH 8/8] DSPBRIDGE: Use _IOxx macro to define ioctls
Date: Fri, 8 Jan 2010 12:45:10 -0600 [thread overview]
Message-ID: <4B477D36.3010205@ti.com> (raw)
In-Reply-To: <27F9C60D11D683428E133F85D2BB4A53042DC9529F@dlee03.ent.ti.com>
Ramirez Luna, Omar had written, on 01/08/2010 11:11 AM, the following:
>> From: Menon, Nishanth
>>
>> Ramirez Luna, Omar had written, on 01/07/2010 07:01 PM, the following:
>>> - Use standard convention to define ioctls.
>>> - Removed runtime check for ioctl matching table number.
>>> - Added __deprectaed marker to functions that are not used anymore.
>>>
>>> Currently 'DB' is used as identifier for dspbridge.
>> ^^
>> include/asm-generic/ioctl.h
>> #define _IOC(dir,type,nr,size) \
>> (((dir) << _IOC_DIRSHIFT) | \
>> ((type) << _IOC_TYPESHIFT) | \
>> ((nr) << _IOC_NRSHIFT) | \
>> ((size) << _IOC_SIZESHIFT))
>>
>> define _IOWR(type,nr,size)
>> _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
>> should'nt type be a single char?
>
> Actually its meant to be 0xDB... I'll change this
ok..
>
>>> Added TODOs for removing the function table and, deprecated
>>> and not implemented ioctls, this can be done when all the ioctls
>>> are accessed through a switch instead of a pointer to function.
>>>
>>> *** NOTE: An update in api ioctl definitions is required. ***
>> Overall strategy:
>> as an example:
>> MGR_ENUMNODE_INFO was offset 0,
>> so, WCD_cmdTable had entry to point it to this as a map to
>> MGRWRAP_EnumNode_Info
>> now,
>> WCD_cmdTable[0] = MGRWRAP_EnumNode_Info which is referenced off cmd
>> parameter in (*WCD_cmdTable[cmd].fxn) (args, pr_ctxt);
>>
>> IMHO, _IOWR -> to mark a ioctl, good idea. indexing off
>> WCD_cmdTable[cmd] to grab the caller - not exactly my fav idea. esp if
>> you need to introduce newer ioctls in the middle.
>>
>> Now that you are breaking IOCTL number compatibility altogether,
>>
>> a) why cant' we split the list into multiple ones? +
>> #define MGR_BASE 'M'
>> #define MGR_ENUMNODE_INFO _IOWR(MGR_BASE, 0, unsigned long)
>
> Documentation/ioctl/ioctl-number.txt, didn't have time to check if outdated
yep
>
> 'M' all linux/soundcard.h
>
>> ..
>> ..
>>
>> #define PROC_BASE 'P'
>> #define PROC_ATTACH _IOWR(PROC_BASE, 0, unsigned long)
>
> 'P' all linux/soundcard.h
>
>> ..
>> ..
>>
>> #define NODE_BASE 'N'
>> #define NODE_ALLOCATE _IOWR(NODE_BASE, 0, unsigned long)
>
> 'N' 00-1F drivers/usb/scanner.h
EB onwards to DD seems to be free.
alright.. Please try and use consequtive ones from 0xD0,D1,D2,D3 etc..
choose something if you dont like conflicts ;). I'd think that these are
ioctls for /dev/DspBridge anyways.. shrug.. you could even add a patch
in the series to create Documentation/arm/OMAP/DspBridge and Document
info if you like :).
>
>> and so on..
>> b) then, you can populate different arrays for each type with the handlers.
>> based on
>> switch(_IOC_TYPE())
>> case NODE_BASE: cmd_array= node_base_cmd_array; break;
>> ..
>>
>> this will allow you to add to any of these without having to be worried
>> about causing backward incompatibility.
>>
>> I guess given the number of handler's we gotta live with an array
>> anyways.. but we can at least reduce it's impact.. just my 2cents..
>
> Given the current shape of the driver, I don't know why we would want to add more ioctls,
>others than to simplify some of its operations (like combining reserve
and map)...
>and if so, then it wouldn't have a name like PROC_RESERVE_N_MAP nor
fit in between.
that is the point -we are trying to improve it. We did not know few
years back that you would be sending this patch right? flexibility is
easy thing to have if you do what I mention here, adding/deprecating an
IOCTL without impact to userspace is important.
[...]
--
Regards,
Nishanth Menon
prev parent reply other threads:[~2010-01-08 18:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-08 1:01 [PATCH 8/8] DSPBRIDGE: Use _IOxx macro to define ioctls Omar Ramirez Luna
2010-01-08 2:59 ` Nishanth Menon
2010-01-08 3:10 ` Nishanth Menon
2010-01-08 17:19 ` Ramirez Luna, Omar
2010-01-08 18:53 ` Nishanth Menon
2010-01-08 17:11 ` Ramirez Luna, Omar
2010-01-08 18:45 ` Nishanth Menon [this message]
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=4B477D36.3010205@ti.com \
--to=nm@ti.com \
--cc=Hiroshi.DOYU@nokia.com \
--cc=ameya.palande@nokia.com \
--cc=ernesto@ti.com \
--cc=felipe.contreras@nokia.com \
--cc=linux-omap@vger.kernel.org \
--cc=omar.ramirez@ti.com \
--cc=x0095840@ti.com \
/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.