€•}Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ-/translations/zh_CN/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/zh_TW/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/pt_BR/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/sp_SP/driver-api/rapidio/rio_cm”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒJRapidIO subsystem Channelized Messaging character device driver (rio_cm.c)”h]”hŒJRapidIO subsystem Channelized Messaging character device driver (rio_cm.c)”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³ŒG/var/lib/git/docbuild/linux/Documentation/driver-api/rapidio/rio_cm.rst”h´Kubh¶)”}”(hhh]”(h»)”}”(hŒ 1. Overview”h]”hŒ 1. Overview”…””}”(hhÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhËh²hh³hÊh´KubhŒ paragraph”“”)”}”(hŒóThis 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]”hŒóThis 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.”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K hhËh²hubhÝ)”}”(hŒúThe 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]”hŒúThe 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.”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)”}”(hŒnThis driver (RIO_CM) provides to user-space applications shared access to RapidIO mailbox messaging resources.”h]”hŒnThis driver (RIO_CM) provides to user-space applications shared access to RapidIO mailbox messaging resources.”…””}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)”}”(hX¾RapidIO 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]”hX¾RapidIO 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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)”}”(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.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´KhhËh²hubhÝ)”}”(hŒNMost of device driver's operations are supported through 'ioctl' system calls.”h]”hŒTMost of device driver’s operations are supported through ‘ioctl’ system calls.”…””}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K"hhËh²hubhÝ)”}”(hŒWhen loaded this device driver creates a single file system node named rio_cm in /dev directory common for all registered RapidIO mport devices.”h]”hŒWhen loaded this device driver creates a single file system node named rio_cm in /dev directory common for all registered RapidIO mport devices.”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K$hhËh²hubhÝ)”}”(hŒBFollowing ioctl commands are available to user-space applications:”h]”hŒBFollowing ioctl commands are available to user-space applications:”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K'hhËh²hubhŒ 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]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒÿRIO_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]”(hŒterm”“”)”}”(hŒRIO_CM_MPORT_GET_LIST:”h]”hŒRIO_CM_MPORT_GET_LIST:”…””}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K,hj`ubhŒ definition”“”)”}”(hhh]”hÝ)”}”(hŒè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]”hŒê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.”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K*hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jthj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j^h³hÊh´K,hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³Nh´NubjT)”}”(hŒ’RIO_CM_EP_GET_LIST_SIZE: Returns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.”h]”jZ)”}”(hhh]”j_)”}”(hŒŽRIO_CM_EP_GET_LIST_SIZE: Returns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.”h]”(je)”}”(hŒRIO_CM_EP_GET_LIST_SIZE:”h]”hŒRIO_CM_EP_GET_LIST_SIZE:”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K/hj¦ubju)”}”(hhh]”hÝ)”}”(hŒuReturns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.”h]”hŒuReturns number of messaging capable remote endpoints in a RapidIO network associated with the specified mport device.”…””}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K/hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j^h³hÊh´K/hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³Nh´NubjT)”}”(hŒ»RIO_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]”jZ)”}”(hhh]”j_)”}”(hŒµRIO_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]”(je)”}”(hŒRIO_CM_EP_GET_LIST:”h]”hŒRIO_CM_EP_GET_LIST:”…””}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K3hjèubju)”}”(hhh]”hÝ)”}”(hŒ¡Returns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.”h]”hŒ¡Returns list of RapidIO destination IDs for messaging capable remote endpoints (peers) available in a RapidIO network associated with the specified mport device.”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K2hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjèubeh}”(h]”h ]”h"]”h$]”h&]”uh1j^h³hÊh´K3hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³Nh´NubjT)”}”(hŒ“RIO_CM_CHAN_CREATE: Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.”h]”jZ)”}”(hhh]”j_)”}”(hŒRIO_CM_CHAN_CREATE: Creates RapidIO message exchange channel data structure with channel ID assigned automatically or as requested by a caller.”h]”(je)”}”(hŒRIO_CM_CHAN_CREATE:”h]”hŒRIO_CM_CHAN_CREATE:”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K6hj*ubju)”}”(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?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K6hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j^h³hÊh´K6hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³Nh´NubjT)”}”(hŒ_RIO_CM_CHAN_BIND: Binds the specified channel data structure to the specified mport device.”h]”jZ)”}”(hhh]”j_)”}”(hŒ[RIO_CM_CHAN_BIND: Binds the specified channel data structure to the specified mport device.”h]”(je)”}”(hŒRIO_CM_CHAN_BIND:”h]”hŒRIO_CM_CHAN_BIND:”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K9hjlubju)”}”(hhh]”hÝ)”}”(hŒIBinds the specified channel data structure to the specified mport device.”h]”hŒIBinds the specified channel data structure to the specified mport device.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜh³hÊh´K9hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jthjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j^h³hÊh´K9hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jYhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³Nh´NubjT)”}”(hŒ[RIO_CM_CHAN_LISTEN: Enables listening for connection requests on the specified channel.”h]”jZ)”}”(hhh]”j_)”}”(hŒWRIO_CM_CHAN_LISTEN: Enables listening for connection requests on the specified channel.”h]”(je)”}”(hŒRIO_CM_CHAN_LISTEN:”h]”hŒRIO_CM_CHAN_LISTEN:”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdh³hÊh´K