<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/index.php?title=Ioctl&amp;feed=atom&amp;action=history</id>
		<title>Ioctl - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=Ioctl&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Ioctl&amp;action=history"/>
		<updated>2013-05-24T16:06:09Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.22alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=Ioctl&amp;diff=73303&amp;oldid=prev</id>
		<title>Calculus: Added category</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Ioctl&amp;diff=73303&amp;oldid=prev"/>
				<updated>2011-10-28T06:51:33Z</updated>
		
		<summary type="html">&lt;p&gt;Added category&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:51, 28 October 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then good luck for debugging your driver...&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then good luck for debugging your driver...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Embedded Dictionary]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Calculus</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Ioctl&amp;diff=21995&amp;oldid=prev</id>
		<title>GNUtoo at 21:08, 28 June 2010</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Ioctl&amp;diff=21995&amp;oldid=prev"/>
				<updated>2010-06-28T21:08:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 21:08, 28 June 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The next step is to look where this ioctl is called:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The next step is to look where this ioctl is called:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; sound$ grep SNDRV_PCM_IOCTL_WRITEI_FRAMES -r *&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; core/pcm_native.c:	case SNDRV_PCM_IOCTL_WRITEI_FRAMES:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; core/pcm_compat.c:	SNDRV_PCM_IOCTL_WRITEI_FRAMES32 = _IOW('A', 0x50, struct snd_xferi32),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; core/pcm_compat.c:	case SNDRV_PCM_IOCTL_WRITEI_FRAMES32:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Then good luck for debugging your driver...&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>GNUtoo</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Ioctl&amp;diff=21994&amp;oldid=prev</id>
		<title>GNUtoo: Created page with '== Introduction == Sometimes some applications block, and strace show something like that:  ioctl(6, 0x400c4150 which means that the kernel blocks during that ioctl. =…'</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Ioctl&amp;diff=21994&amp;oldid=prev"/>
				<updated>2010-06-28T21:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;== Introduction == Sometimes some applications block, and &lt;a href=&quot;/Strace&quot; title=&quot;Strace&quot;&gt;strace&lt;/a&gt; show something like that:  ioctl(6, 0x400c4150 which means that the kernel blocks during that ioctl. =…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
Sometimes some applications block, and [[Strace|strace]] show something like that:&lt;br /&gt;
 ioctl(6, 0x400c4150&lt;br /&gt;
which means that the kernel blocks during that ioctl.&lt;br /&gt;
== Howto ==&lt;br /&gt;
we will take the same example than before,with mplayer blocking.:&lt;br /&gt;
 ioctl(6, 0x400c4150&lt;br /&gt;
there are two important information in it:&lt;br /&gt;
6 is the file descriptor,the corresponding file can be found with:&lt;br /&gt;
 ls -l /proc/$(pidof mplayer)/fd/6&lt;br /&gt;
which gives &lt;br /&gt;
 /dev/snd/pcmC0D0p&lt;br /&gt;
That correspond to alsa.&lt;br /&gt;
Then we have the 0x400c4150&lt;br /&gt;
the important part is the last part:&lt;br /&gt;
41 is 0x41 which is often represented as a letter and can be decoded like this:&lt;br /&gt;
 $ python&lt;br /&gt;
 Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) &lt;br /&gt;
 [GCC 4.4.3] on linux2&lt;br /&gt;
 Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; import binascii&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; binascii.a2b_hex(&amp;quot;41&amp;quot;)&lt;br /&gt;
 'A'&lt;br /&gt;
Or verified like this:&lt;br /&gt;
 $ python&lt;br /&gt;
 Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) &lt;br /&gt;
 [GCC 4.4.3] on linux2&lt;br /&gt;
 Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information.&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; import binascii&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; binascii.b2a_hex(&amp;quot;A&amp;quot;)&lt;br /&gt;
 '41'&lt;br /&gt;
&lt;br /&gt;
Then 0x50 remains. we don't need to decode it,it's fine like it is.&lt;br /&gt;
&lt;br /&gt;
so with A and 50 and  /dev/snd/pcmC0D0p file we can go to grep in include/sound of the kernel sources:&lt;br /&gt;
 include/sound$ grep &amp;quot;0x50&amp;quot; *&lt;br /&gt;
 ac97_codec.h:#define AC97_GPIO_STICKY	0x50	/* GPIO Pin Sticky, 0=not, 1=sticky */&lt;br /&gt;
 ad1816a.h:#define AD1816A_SRC_MIC			0x50&lt;br /&gt;
 ad1816a.h:#define AD1816A_SRC_MONO		0x50&lt;br /&gt;
 asequencer.h:#define SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION	_IOWR('S', 0x50, struct snd_seq_port_subscribe)&lt;br /&gt;
 asoundef.h:#define MIDI_CTL_GENERAL_PURPOSE5     	0x50&lt;br /&gt;
 asound.h:#define SNDRV_PCM_IOCTL_WRITEI_FRAMES	_IOW('A', 0x50, struct snd_xferi)&lt;br /&gt;
 cs46xx.h:#define HDCR_SMS_256_DWORDS                     0x50000000&lt;br /&gt;
 cs46xx.h:#define DMA_RQ_C1_SOURCE_MOD256                 0x50000000&lt;br /&gt;
 emu10k1.h:#define CDCS			0x50		/* CD-ROM digital channel status register	*/&lt;br /&gt;
 emu10k1.h:#define C_ffffffff	0x50&lt;br /&gt;
 emu10k1.h:#define A_P16VIN(x)	(0x50 + (x))	/* x = 0x00 - 0x0f p16v ins (A2 only) &amp;quot;EMU32 inputs&amp;quot; */&lt;br /&gt;
 gus.h:#define SNDRV_GF1_GB_DRAM_DMA_HIGH		0x50&lt;br /&gt;
 sb.h:#define SB_ALS4000_3D_SND_FX	0x50&lt;br /&gt;
 trident.h:#define SI_ASR0			    0x50&lt;br /&gt;
here we see:&lt;br /&gt;
 asound.h:#define SNDRV_PCM_IOCTL_WRITEI_FRAMES	_IOW('A', 0x50, struct snd_xferi)&lt;br /&gt;
which is our ioctl.&lt;br /&gt;
&lt;br /&gt;
The next step is to look where this ioctl is called:&lt;/div&gt;</summary>
		<author><name>GNUtoo</name></author>	</entry>

	</feed>