14e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** @addtogroup MCD_MCDIMPL_DAEMON
24e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * @{
34e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * @file
44e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *
54e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * <!-- Copyright Giesecke & Devrient GmbH 2009 - 2012 -->
67b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim *
74e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * Redistribution and use in source and binary forms, with or without
84e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * modification, are permitted provided that the following conditions
94e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * are met:
104e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 1. Redistributions of source code must retain the above copyright
114e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *    notice, this list of conditions and the following disclaimer.
124e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 2. Redistributions in binary form must reproduce the above copyright
134e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *    notice, this list of conditions and the following disclaimer in the
144e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *    documentation and/or other materials provided with the distribution.
154e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 3. The name of the author may not be used to endorse or promote
164e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *    products derived from this software without specific prior
174e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *    written permission.
184e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park *
194e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
204e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
214e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
224e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
234e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
244e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
254e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
264e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
274e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
284e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
294e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
304e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */
314e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#ifndef MCDAEMON_H_
324e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#define MCDAEMON_H_
334e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
344e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#include <inttypes.h>      // ANSI C99
354e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
364e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
374e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#define SOCK_PATH "#mcdaemon"
384e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#include "mcUuid.h"
394e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#include "mcVersionInfo.h"
404e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
414e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef enum {
424e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_PING                 = 0,
434e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_GET_INFO             = 1,
444e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_OPEN_DEVICE          = 2,
454e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_CLOSE_DEVICE         = 3,
464e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_NQ_CONNECT           = 4,
477b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_OPEN_SESSION         = 5,
487b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_CLOSE_SESSION        = 6,
494e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_NOTIFY               = 7,
507b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_MAP_BULK_BUF         = 8,
517b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_UNMAP_BULK_BUF       = 9,
524e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_GET_VERSION          = 10,
534e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    MC_DRV_CMD_GET_MOBICORE_VERSION = 11,
544e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvCmd_t;
554e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
564e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct {
574e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    uint32_t  commandId;
589081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvCommandHeader_t;
594e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
604e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct {
617b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    /* MobiCore Daemon uses Client API return codes also in commands between Daemon and Client Library. */
624e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    uint32_t  responseId;
639081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvResponseHeader_t;
644e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
654e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#define MC_DEVICE_ID_DEFAULT    0 /**< The default device ID */
664e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
674e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
684e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
699081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_OPEN_DEVICE_struct {
709081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
719081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  deviceId;
729081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
739081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
747b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
754e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t        header;
769081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspOpenDevice_t;
774e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
784e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
799081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_CLOSE_DEVICE_struct {
809081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
819081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
829081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
837b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
844e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t         header;
859081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspCloseDevice_t;
864e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
874e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
889081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_OPEN_SESSION_struct {
899081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
909081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  deviceId;
919081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    mcUuid_t  uuid;
929081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  tci;
937b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  handle;
949081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  len;
959081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
969081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
977b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
987b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  sessionId;
997b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  deviceSessionId;
1007b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  sessionMagic;
1014e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvRspOpenSessionPayload_t, *mcDrvRspOpenSessionPayload_ptr;
1024e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1037b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1044e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t         header;
1054e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspOpenSessionPayload_t  payload;
1069081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspOpenSession_t;
1074e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1084e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1094e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1109081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_CLOSE_SESSION_struct {
1119081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1129081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionId;
1139081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1149081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1157b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1164e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t         header;
1179081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspCloseSession_t;
1184e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1194e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1204e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1219081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_NOTIFY_struct {
1229081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1239081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionId;
1249081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1259081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1267b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim// Notify does not have a response
1274e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1284e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1299081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_MAP_BULK_BUF_struct {
1309081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1319081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionId;
1327b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  handle;
1339081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  pAddrL2;
1349081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  offsetPayload;
1359081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  lenBulkMem;
1369081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1379081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1387b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1397b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  sessionId;
1407b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  secureVirtualAdr;
1414e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvRspMapBulkMemPayload_t, *mcDrvRspMapBulkMemPayload_ptr;
1424e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1437b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1444e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t        header;
1454e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspMapBulkMemPayload_t  payload;
1469081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspMapBulkMem_t;
1474e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1484e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1494e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1509081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_UNMAP_BULK_BUF_struct {
1519081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1529081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionId;
1537b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t  handle;
1549081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  secureVirtualAdr;
1559081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  lenBulkMem;
1569081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1579081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1587b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1594e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t          header;
1609081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspUnmapBulkMem_t;
1614e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1624e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1634e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1649081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_NQ_CONNECT_struct {
1659081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1669081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  deviceId;
1679081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionId;
1689081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  deviceSessionId;
1699081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  sessionMagic; //Random data
1709081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1719081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1724e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct {
1734e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t       header;
1749081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspNqConnect_t;
1754e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1764e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1779081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_GET_VERSION_struct {
1787b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t commandId;
1799081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1809081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1814e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct {
1827b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    uint32_t responseId;
1834e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    uint32_t version;
1849081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspGetVersion_t;
1854e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1864e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
1879081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kimstruct MC_DRV_CMD_GET_MOBICORE_VERSION_struct {
1889081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim    uint32_t  commandId;
1899081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim};
1909081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim
1914e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1924e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct {
1934e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcVersionInfo_t versionInfo;
1944e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvRspGetMobiCoreVersionPayload_t, *mcDrvRspGetMobiCoreVersionPayload_ptr;
1954e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
1967b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kimtypedef struct {
1974e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t       header;
1984e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspGetMobiCoreVersionPayload_t payload;
1999081ca65cb7959b6a06ba44823f84a6afa8bca2fJihyun Kim} mcDrvRspGetMobiCoreVersion_t;
2004e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
2014e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//--------------------------------------------------------------
2024e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef union {
2037b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    mcDrvCommandHeader_t                header;
2047b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_OPEN_DEVICE_struct       mcDrvCmdOpenDevice;
2057b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_CLOSE_DEVICE_struct      mcDrvCmdCloseDevice;
2067b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_OPEN_SESSION_struct      mcDrvCmdOpenSession;
2077b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_CLOSE_SESSION_struct     mcDrvCmdCloseSession;
2087b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_NQ_CONNECT_struct        mcDrvCmdNqConnect;
2097b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_NOTIFY_struct            mcDrvCmdNotify;
2107b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_MAP_BULK_BUF_struct      mcDrvCmdMapBulkMem;
2117b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_UNMAP_BULK_BUF_struct    mcDrvCmdUnmapBulkMem;
2127b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_GET_VERSION_struct       mcDrvCmdGetVersion;
2137b143edf281bed18c8ebd0733465f3af5af327ebJungtae Kim    MC_DRV_CMD_GET_MOBICORE_VERSION_struct  mcDrvCmdGetMobiCoreVersion;
2144e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvCommand_t, *mcDrvCommand_ptr;
2154e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
2164e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef union {
2174e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvResponseHeader_t        header;
2184e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspOpenDevice_t         mcDrvRspOpenDevice;
2194e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspCloseDevice_t        mcDrvRspCloseDevice;
2204e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspOpenSession_t        mcDrvRspOpenSession;
2214e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspCloseSession_t       mcDrvRspCloseSession;
2224e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspNqConnect_t          mcDrvRspNqConnect;
2234e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspMapBulkMem_t         mcDrvRspMapBulkMem;
2244e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspUnmapBulkMem_t       mcDrvRspUnmapBulkMem;
2254e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspGetVersion_t         mcDrvRspGetVersion;
2264e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park    mcDrvRspGetMobiCoreVersion_t mcDrvRspGetMobiCoreVersion;
2274e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} mcDrvResponse_t, *mcDrvResponse_ptr;
2284e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
2294e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#endif /* MCDAEMON_H_ */
2304e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park
2314e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** @} */
232