From: munkyu.im Date: Tue, 12 Nov 2013 02:21:11 +0000 (+0900) Subject: nfc: support multi session on nfc X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf10a97e44acbdb94bf984d59580da5a0c99760d;p=sdk%2Femulator%2Femulator-kernel.git nfc: support multi session on nfc changed message info to support multi session. removed excutable mode which had been added by mistake before. Change-Id: Ia5dadd6040913c2a53a2c03b38a064af4226ea28 Signed-off-by: munkyu.im --- diff --git a/drivers/maru/maru_virtio_evdi.c b/drivers/maru/maru_virtio_evdi.c old mode 100755 new mode 100644 diff --git a/drivers/maru/maru_virtio_nfc.c b/drivers/maru/maru_virtio_nfc.c old mode 100755 new mode 100644 index b69f62de941c..f5ec7e92c8da --- a/drivers/maru/maru_virtio_nfc.c +++ b/drivers/maru/maru_virtio_nfc.c @@ -57,14 +57,19 @@ /* device protocol */ #define MAX_BUF_SIZE 255 -unsigned char buf[MAX_BUF_SIZE]; +struct msg_info { + unsigned char client_id; + unsigned char client_type; + uint32_t use; + char buf[MAX_BUF_SIZE]; +}; static int g_read_count = 0; /* device protocol */ struct msg_buf { - unsigned char msg[MAX_BUF_SIZE]; + struct msg_info msg; struct list_head list; }; @@ -93,8 +98,8 @@ struct virtio_nfc { struct virtqueue* rvq; struct virtqueue* svq; - unsigned char read_msginfo[MAX_BUF_SIZE]; - unsigned char send_msginfo[MAX_BUF_SIZE]; + struct msg_info read_msginfo; + struct msg_info send_msginfo; struct list_head read_list; struct list_head write_list; @@ -136,7 +141,7 @@ int make_buf_and_kick(void) return 0; } -static int add_inbuf(struct virtqueue *vq, unsigned char *msg) +static int add_inbuf(struct virtqueue *vq, struct msg_info *msg) { struct scatterlist sg[1]; int ret; @@ -243,7 +248,7 @@ static ssize_t nfc_read(struct file *filp, char __user *ubuf, size_t len, spin_lock_irqsave(&pnfc_info[NFC_READ]->inbuf_lock, flags); - if (add_inbuf(vnfc->rvq, vnfc->read_msginfo) < 0){ + if (add_inbuf(vnfc->rvq, &vnfc->read_msginfo) < 0){ LOG("failed add_buf\n"); } @@ -276,7 +281,9 @@ static ssize_t nfc_write(struct file *f, const char __user *ubuf, size_t len, memset(&vnfc->send_msginfo, 0, sizeof(vnfc->send_msginfo)); ret = copy_from_user(&vnfc->send_msginfo, ubuf, sizeof(vnfc->send_msginfo)); - LOG("copy_from_user ret = %d, msg = %s\n", ret, vnfc->send_msginfo); + LOG("copy_from_user ret = %d, id = %02x, type = %02x, msg = %s use = %d\n", + ret, vnfc->send_msginfo.client_id, vnfc->send_msginfo.client_type, + vnfc->send_msginfo.buf, vnfc->send_msginfo.use); if (ret) { ret = -EFAULT; @@ -359,7 +366,7 @@ static void nfc_recv_done(struct virtqueue *rvq) { /* insert into queue */ msgbuf = (struct msg_buf*) __xmalloc(SIZEOF_MSG_BUF); memset(msgbuf, 0x00, sizeof(*msgbuf)); - memcpy(&(msgbuf->msg), msg, sizeof(*msg)); + memcpy(&(msgbuf->msg), msg, len); //LOG("copied msg data = %s, %s\n", msgbuf->msg.buf, msg->buf); diff --git a/package/changelog b/package/changelog index 4ef09577b36a..fa8f0dfc1f2b 100644 --- a/package/changelog +++ b/package/changelog @@ -1,3 +1,6 @@ +* 1.4.29 +- support multi session on nfc +== Munkyu Im 2013-11-12 * 1.4.28 - Support emulator suspend == SeokYeon Hwang 2013-09-23 diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index e3b88f9e7469..421d9f03e079 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -1,4 +1,4 @@ -Version: 1.4.28 +Version: 1.4.29 Maintainer: Yeong-Kyoon, Lee Source: emulator-kernel