13 Controller Architecture</title><shortdesc>Describes the class architecture of the MMC Controller.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
13 Controller Architecture</title><shortdesc>Describes the class architecture of the MMC Controller.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
14 <section id="GUID-50AB2022-B205-525B-83F9-0DE0275EC3EF"><title>Introduction</title> <p>The |
14 <section id="GUID-50AB2022-B205-525B-83F9-0DE0275EC3EF"><title>Introduction</title> <p>The |
15 MultiMediaCard media driver defines and implements the standard media driver |
15 MultiMediaCard media driver defines and implements the standard media driver |
16 interface derived from <xref href="GUID-A0D4EB25-0BA4-39EE-874B-465EB9628DCC.dita"><apiname>DMediaDriver</apiname></xref>. This is the client |
16 interface derived from <xref href="GUID-A0D4EB25-0BA4-39EE-874B-465EB9628DCC.dita"><apiname>DMediaDriver</apiname></xref>. This is the client |
17 of the MultiMediaCard controller. </p> <fig id="GUID-6F516C8A-9114-50A1-A714-8BA9DD081C08"> |
17 of the MultiMediaCard controller. </p> <fig id="GUID-6F516C8A-9114-50A1-A714-8BA9DD081C08"> |
18 <image href="GUID-DF3045C7-4BDA-53AF-85E4-A8AAD99F40F7_d0e399370_href.png" placement="inline"/> |
18 <image href="GUID-DF3045C7-4BDA-53AF-85E4-A8AAD99F40F7_d0e397193_href.png" placement="inline"/> |
19 </fig> <p>Requests to the controller can also come from other device drivers. |
19 </fig> <p>Requests to the controller can also come from other device drivers. |
20 This means that the architectural picture can be extended as shown below: </p> <fig id="GUID-D84379AB-36E2-5679-B154-40FDDF6FE334"> |
20 This means that the architectural picture can be extended as shown below: </p> <fig id="GUID-D84379AB-36E2-5679-B154-40FDDF6FE334"> |
21 <image href="GUID-5686E787-537F-5B32-B719-34EF5B7F0D37_d0e399378_href.png" placement="inline"/> |
21 <image href="GUID-5686E787-537F-5B32-B719-34EF5B7F0D37_d0e397201_href.png" placement="inline"/> |
22 </fig> <p>The controller currently supports a single stack capable of holding |
22 </fig> <p>The controller currently supports a single stack capable of holding |
23 up to 4 cards. In a future development, it may become capable of supporting |
23 up to 4 cards. In a future development, it may become capable of supporting |
24 more than 1 stack. Note however, that Symbian platform allows more than one |
24 more than 1 stack. Note however, that Symbian platform allows more than one |
25 peripheral bus controller. </p> <p>The controller can handle multiple requests |
25 peripheral bus controller. </p> <p>The controller can handle multiple requests |
26 outstanding simultaneously, i.e. multiple drivers each with a session engaged |
26 outstanding simultaneously, i.e. multiple drivers each with a session engaged |
45 number, and therefore, no guarantee that it will have the same drive letter |
45 number, and therefore, no guarantee that it will have the same drive letter |
46 as before. </p> </section> |
46 as before. </p> </section> |
47 <section id="GUID-92F5EBE4-C9AD-5D9A-A80E-9AFD1A09B6B3"><title>Class architecture</title> <p>The |
47 <section id="GUID-92F5EBE4-C9AD-5D9A-A80E-9AFD1A09B6B3"><title>Class architecture</title> <p>The |
48 following diagram gives a more detailed view of the MultiMediaCard controller |
48 following diagram gives a more detailed view of the MultiMediaCard controller |
49 in terms of the socket, stack, session, power supply and media change objects. </p> <fig id="GUID-17F345F3-B579-5D78-BE22-0CA50A88FAAE"> |
49 in terms of the socket, stack, session, power supply and media change objects. </p> <fig id="GUID-17F345F3-B579-5D78-BE22-0CA50A88FAAE"> |
50 <image href="GUID-431A08D4-46DD-5A9D-B2A4-3D58C9B1E9E7_d0e399403_href.png" placement="inline"/> |
50 <image href="GUID-431A08D4-46DD-5A9D-B2A4-3D58C9B1E9E7_d0e397226_href.png" placement="inline"/> |
51 </fig> <p id="GUID-BA12AC03-4A9C-5B1A-BC06-D171BCAB9DB2"><b>The socket</b> </p> <p>The |
51 </fig> <p id="GUID-BA12AC03-4A9C-5B1A-BC06-D171BCAB9DB2"><b>The socket</b> </p> <p>The |
52 Symbian platform implementation of MultiMediaCard uses the idea of a socket. |
52 Symbian platform implementation of MultiMediaCard uses the idea of a socket. |
53 A socket corresponds to a physical device on a given peripheral bus. </p> <p>In |
53 A socket corresponds to a physical device on a given peripheral bus. </p> <p>In |
54 general, a socket is associated with its own thread. However, although each |
54 general, a socket is associated with its own thread. However, although each |
55 card in a MultiMediaCard stack has its own individual slot, the bus architecture |
55 card in a MultiMediaCard stack has its own individual slot, the bus architecture |
98 to create the instances of your classes. </p> <p>Note that these functions |
98 to create the instances of your classes. </p> <p>Note that these functions |
99 are only called for sockets that are associated with MultiMediaCard devices. <xref href="GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A.dita#GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A/GUID-2C6EA849-1B62-3158-A328-DB2A7149346C"><apiname>TMMCardControllerInterface::Create()</apiname></xref> iterates |
99 are only called for sockets that are associated with MultiMediaCard devices. <xref href="GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A.dita#GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A/GUID-2C6EA849-1B62-3158-A328-DB2A7149346C"><apiname>TMMCardControllerInterface::Create()</apiname></xref> iterates |
100 through all possible socket numbers, from 0 to <xref href="GUID-2C5A5F8F-381C-3B99-AADE-44474E629CC4.dita"><apiname>KMaxPBusSockets</apiname></xref>, |
100 through all possible socket numbers, from 0 to <xref href="GUID-2C5A5F8F-381C-3B99-AADE-44474E629CC4.dita"><apiname>KMaxPBusSockets</apiname></xref>, |
101 calling <xref href="GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A.dita#GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A/GUID-5EC9F2EE-5D14-37F9-9EFE-95BD1062C681"><apiname>TMMCardControllerInterface::IsMMCSocket()</apiname></xref> for each |
101 calling <xref href="GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A.dita#GUID-B1F2C60B-E098-395F-8ED0-FF33E3EC9E4A/GUID-5EC9F2EE-5D14-37F9-9EFE-95BD1062C681"><apiname>TMMCardControllerInterface::IsMMCSocket()</apiname></xref> for each |
102 socket number to determine whether the socket number is a MultiMediaCard socket. </p> <fig id="GUID-53AF7993-0A93-5728-9609-0133E66AED78"> |
102 socket number to determine whether the socket number is a MultiMediaCard socket. </p> <fig id="GUID-53AF7993-0A93-5728-9609-0133E66AED78"> |
103 <image href="GUID-13664BB9-7D05-594E-95D4-49C0D31D3734_d0e399553_href.png" placement="inline"/> |
103 <image href="GUID-13664BB9-7D05-594E-95D4-49C0D31D3734_d0e397376_href.png" placement="inline"/> |
104 </fig> </section> |
104 </fig> </section> |
105 </conbody></concept> |
105 </conbody></concept> |