;|sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget-/translations/zh_CN/driver-api/rapidio/rio_cmmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/zh_TW/driver-api/rapidio/rio_cmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/it_IT/driver-api/rapidio/rio_cmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ja_JP/driver-api/rapidio/rio_cmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/ko_KR/driver-api/rapidio/rio_cmmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget-/translations/sp_SP/driver-api/rapidio/rio_cmmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hJRapidIO subsystem Channelized Messaging character device driver (rio_cm.c)h]hJRapidIO subsystem Channelized Messaging character device driver (rio_cm.c)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhG/var/lib/git/docbuild/linux/Documentation/driver-api/rapidio/rio_cm.rsthKubh)}(hhh](h)}(h 1. Overviewh]h 1. Overview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hThis device driver is the result of collaboration within the RapidIO.org Software Task Group (STG) between Texas Instruments, Prodrive Technologies, Nokia Networks, BAE and IDT. Additional input was received from other members of RapidIO.org.h]hThis device driver is the result of collaboration within the RapidIO.org Software Task Group (STG) between Texas Instruments, Prodrive Technologies, Nokia Networks, BAE and IDT. Additional input was received from other members of RapidIO.org.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hThe objective was to create a character mode driver interface which exposes messaging capabilities of RapidIO endpoint devices (mports) directly to applications, in a manner that allows the numerous and varied RapidIO implementations to interoperate.h]hThe objective was to create a character mode driver interface which exposes messaging capabilities of RapidIO endpoint devices (mports) directly to applications, in a manner that allows the numerous and varied RapidIO implementations to interoperate.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hnThis driver (RIO_CM) provides to user-space applications shared access to RapidIO mailbox messaging resources.h]hnThis driver (RIO_CM) provides to user-space applications shared access to RapidIO mailbox messaging resources.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXRapidIO specification (Part 2) defines that endpoint devices may have up to four messaging mailboxes in case of multi-packet message (up to 4KB) and up to 64 mailboxes if single-packet messages (up to 256 B) are used. In addition to protocol definition limitations, a particular hardware implementation can have reduced number of messaging mailboxes. RapidIO aware applications must therefore share the messaging resources of a RapidIO endpoint.h]hXRapidIO specification (Part 2) defines that endpoint devices may have up to four messaging mailboxes in case of multi-packet message (up to 4KB) and up to 64 mailboxes if single-packet messages (up to 256 B) are used. In addition to protocol definition limitations, a particular hardware implementation can have reduced number of messaging mailboxes. RapidIO aware applications must therefore share the messaging resources of a RapidIO endpoint.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX$Main purpose of this device driver is to provide RapidIO mailbox messaging capability to large number of user-space processes by introducing socket-like operations using a single messaging mailbox. This allows applications to use the limited RapidIO messaging hardware resources efficiently.h]hX$Main purpose of this device driver is to provide RapidIO mailbox messaging capability to large number of user-space processes by introducing socket-like operations using a single messaging mailbox. This allows applications to use the limited RapidIO messaging hardware resources efficiently.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hNMost of device driver's operations are supported through 'ioctl' system calls.h]hTMost of device driver’s operations are supported through ‘ioctl’ system calls.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hhhhubh)}(hWhen loaded this device driver creates a single file system node named rio_cm in /dev directory common for all registered RapidIO mport devices.h]hWhen loaded this device driver creates a single file system node named rio_cm in /dev directory common for all registered RapidIO mport devices.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hhhhubh)}(hBFollowing ioctl commands are available to user-space applications:h]hBFollowing ioctl commands are available to user-space applications:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hhhhubh bullet_list)}(hhh](h list_item)}(hXRIO_CM_MPORT_GET_LIST: Returns to caller list of local mport devices that support messaging operations (number of entries up to RIO_MAX_MPORTS). Each list entry is combination of mport's index in the system and RapidIO destination ID assigned to the port.h]hdefinition_list)}(hhh]hdefinition_list_item)}(hRIO_CM_MPORT_GET_LIST: Returns to caller list of local mport devices that support messaging operations (number of entries up to RIO_MAX_MPORTS). Each list entry is combination of mport's index in the system and RapidIO destination ID assigned to the port.h](hterm)}(hRIO_CM_MPORT_GET_LIST:h]hRIO_CM_MPORT_GET_LIST:}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhK,hjLubh definition)}(hhh]h)}(hReturns to caller list of local mport devices that support messaging operations (number of entries up to RIO_MAX_MPORTS). Each list entry is combination of mport's index in the system and RapidIO destination ID assigned to the port.h]hReturns to caller list of local mport devices that support messaging operations (number of entries up to RIO_MAX_MPORTS). Each list entry is combination of mport’s index in the system and RapidIO destination ID assigned to the port.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjbubah}(h]h ]h"]h$]h&]uh1j`hjLubeh}(h]h ]h"]h$]h&]uh1jJhhhK,hjGubah}(h]h ]h"]h$]h&]uh1jEhjAubah}(h]h ]h"]h$]h&]uh1j?hj<hhhNhNubj@)}(hRIO_CM_EP_GET_LIST_SIZE: Returns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.h]jF)}(hhh]jK)}(hRIO_CM_EP_GET_LIST_SIZE: Returns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.h](jQ)}(hRIO_CM_EP_GET_LIST_SIZE:h]hRIO_CM_EP_GET_LIST_SIZE:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhK/hjubja)}(hhh]h)}(huReturns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.h]huReturns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhhhK/hjubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhNhNubj@)}(hRIO_CM_EP_GET_LIST: Returns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.h]jF)}(hhh]jK)}(hRIO_CM_EP_GET_LIST: Returns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.h](jQ)}(hRIO_CM_EP_GET_LIST:h]hRIO_CM_EP_GET_LIST:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhK3hjubja)}(hhh]h)}(hReturns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.h]hReturns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjubah}(h]h ]h"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhhhK3hjubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhNhNubj@)}(hRIO_CM_CHAN_CREATE: Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.h]jF)}(hhh]jK)}(hRIO_CM_CHAN_CREATE: Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.h](jQ)}(hRIO_CM_CHAN_CREATE:h]hRIO_CM_CHAN_CREATE:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhK6hjubja)}(hhh]h)}(h{Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.h]h{Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj(ubah}(h]h ]h"]h$]h&]uh1j`hjubeh}(h]h ]h"]h$]h&]uh1jJhhhK6hjubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhNhNubj@)}(h_RIO_CM_CHAN_BIND: Binds the specified channel data structure to the specified mport device.h]jF)}(hhh]jK)}(h[RIO_CM_CHAN_BIND: Binds the specified channel data structure to the specified mport device.h](jQ)}(hRIO_CM_CHAN_BIND:h]hRIO_CM_CHAN_BIND:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhK9hjXubja)}(hhh]h)}(hIBinds the specified channel data structure to the specified mport device.h]hIBinds the specified channel data structure to the specified mport device.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjjubah}(h]h ]h"]h$]h&]uh1j`hjXubeh}(h]h ]h"]h$]h&]uh1jJhhhK9hjUubah}(h]h ]h"]h$]h&]uh1jEhjQubah}(h]h ]h"]h$]h&]uh1j?hj<hhhNhNubj@)}(h[RIO_CM_CHAN_LISTEN: Enables listening for connection requests on the specified channel.h]jF)}(hhh]jK)}(hWRIO_CM_CHAN_LISTEN: Enables listening for connection requests on the specified channel.h](jQ)}(hRIO_CM_CHAN_LISTEN:h]hRIO_CM_CHAN_LISTEN:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jPhhhKubah}(h]h ]h"]h$]h&]j%j&uh1j:hhhKthj;ubah}(h]h ]h"]h$]h&]uh1j`hj)ubeh}(h]h ]h"]h$]h&]uh1jJhhhKwhj&ubah}(h]h ]h"]h$]h&]uh1jEhj"ubah}(h]h ]h"]h$]h&]uh1j?hjuhhhNhNubeh}(h]h ]h"]h$]h&]j%j&uh1j:hhhKdhjdhhubeh}(h]module-parametersah ]h"]3. module parametersah$]h&]uh1hhhhhhhhKbubh)}(hhh](h)}(h4. Known problemsh]h4. Known problems}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKzubh block_quote)}(hNone. h]h)}(hNone.h]hNone.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1jhhhK|hjhhubeh}(h]known-problemsah ]h"]4. known problemsah$]h&]uh1hhhhhhhhKzubh)}(hhh](h)}(h*5. User-space Applications and API Libraryh]h*5. User-space Applications and API Library}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hbMessaging API library and applications that use this device driver are available from RapidIO.org.h]hbMessaging API library and applications that use this device driver are available from RapidIO.org.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]'user-space-applications-and-api-libraryah ]h"]*5. user-space applications and api libraryah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h 6. TODO Listh]h 6. TODO List}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj;)}(hhh]j@)}(hBAdd support for system notification messages (reserved channel 0).h]h)}(hjh]hBAdd support for system notification messages (reserved channel 0).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j?hjhhhhhNubah}(h]h ]h"]h$]h&]j%j&uh1j:hhhKhjhhubeh}(h] todo-listah ]h"] 6. todo listah$]h&]uh1hhhhhhhhKubeh}(h]Hrapidio-subsystem-channelized-messaging-character-device-driver-rio-cm-cah ]h"]Jrapidio subsystem channelized messaging character device driver (rio_cm.c)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjCerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj:j7jaj^jjjjjjjju nametypes}(jj:jajjjjuh}(jhj7hj^j=jjdjjjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.