Loading drivers/char/diag/diagchar.h +5 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,11 @@ struct diag_logging_mode_param_t { uint8_t mode_param; } __packed; struct diag_con_all_param_t { uint32_t diag_con_all; uint32_t num_peripherals; }; struct diag_md_session_t { int pid; int peripheral_mask; Loading drivers/char/diag/diagchar_core.c +20 −0 Original line number Diff line number Diff line Loading @@ -2099,6 +2099,7 @@ long diagchar_compat_ioctl(struct file *filp, uint16_t remote_dev; struct diag_dci_client_tbl *dci_client = NULL; struct diag_logging_mode_param_t mode_param; struct diag_con_all_param_t con_param; switch (iocmd) { case DIAG_IOCTL_COMMAND_REG: Loading Loading @@ -2210,6 +2211,15 @@ long diagchar_compat_ioctl(struct file *filp, case DIAG_IOCTL_HDLC_TOGGLE: result = diag_ioctl_hdlc_toggle(ioarg); break; case DIAG_IOCTL_QUERY_CON_ALL: con_param.diag_con_all = DIAG_CON_ALL; con_param.num_peripherals = NUM_PERIPHERALS; if (copy_to_user((void __user *)ioarg, &con_param, sizeof(struct diag_con_all_param_t))) result = -EFAULT; else result = 0; break; } return result; } Loading @@ -2224,6 +2234,7 @@ long diagchar_ioctl(struct file *filp, uint16_t remote_dev; struct diag_dci_client_tbl *dci_client = NULL; struct diag_logging_mode_param_t mode_param; struct diag_con_all_param_t con_param; switch (iocmd) { case DIAG_IOCTL_COMMAND_REG: Loading Loading @@ -2335,6 +2346,15 @@ long diagchar_ioctl(struct file *filp, case DIAG_IOCTL_HDLC_TOGGLE: result = diag_ioctl_hdlc_toggle(ioarg); break; case DIAG_IOCTL_QUERY_CON_ALL: con_param.diag_con_all = DIAG_CON_ALL; con_param.num_peripherals = NUM_PERIPHERALS; if (copy_to_user((void __user *)ioarg, &con_param, sizeof(struct diag_con_all_param_t))) result = -EFAULT; else result = 0; break; } return result; } Loading include/linux/diagchar.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2008-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2008-2016, 2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -66,6 +66,7 @@ #define DIAG_IOCTL_PERIPHERAL_BUF_DRAIN 36 #define DIAG_IOCTL_REGISTER_CALLBACK 37 #define DIAG_IOCTL_HDLC_TOGGLE 38 #define DIAG_IOCTL_QUERY_CON_ALL 40 /* PC Tools IDs */ #define APQ8060_TOOLS_ID 4062 Loading Loading
drivers/char/diag/diagchar.h +5 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,11 @@ struct diag_logging_mode_param_t { uint8_t mode_param; } __packed; struct diag_con_all_param_t { uint32_t diag_con_all; uint32_t num_peripherals; }; struct diag_md_session_t { int pid; int peripheral_mask; Loading
drivers/char/diag/diagchar_core.c +20 −0 Original line number Diff line number Diff line Loading @@ -2099,6 +2099,7 @@ long diagchar_compat_ioctl(struct file *filp, uint16_t remote_dev; struct diag_dci_client_tbl *dci_client = NULL; struct diag_logging_mode_param_t mode_param; struct diag_con_all_param_t con_param; switch (iocmd) { case DIAG_IOCTL_COMMAND_REG: Loading Loading @@ -2210,6 +2211,15 @@ long diagchar_compat_ioctl(struct file *filp, case DIAG_IOCTL_HDLC_TOGGLE: result = diag_ioctl_hdlc_toggle(ioarg); break; case DIAG_IOCTL_QUERY_CON_ALL: con_param.diag_con_all = DIAG_CON_ALL; con_param.num_peripherals = NUM_PERIPHERALS; if (copy_to_user((void __user *)ioarg, &con_param, sizeof(struct diag_con_all_param_t))) result = -EFAULT; else result = 0; break; } return result; } Loading @@ -2224,6 +2234,7 @@ long diagchar_ioctl(struct file *filp, uint16_t remote_dev; struct diag_dci_client_tbl *dci_client = NULL; struct diag_logging_mode_param_t mode_param; struct diag_con_all_param_t con_param; switch (iocmd) { case DIAG_IOCTL_COMMAND_REG: Loading Loading @@ -2335,6 +2346,15 @@ long diagchar_ioctl(struct file *filp, case DIAG_IOCTL_HDLC_TOGGLE: result = diag_ioctl_hdlc_toggle(ioarg); break; case DIAG_IOCTL_QUERY_CON_ALL: con_param.diag_con_all = DIAG_CON_ALL; con_param.num_peripherals = NUM_PERIPHERALS; if (copy_to_user((void __user *)ioarg, &con_param, sizeof(struct diag_con_all_param_t))) result = -EFAULT; else result = 0; break; } return result; } Loading
include/linux/diagchar.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2008-2016, The Linux Foundation. All rights reserved. /* Copyright (c) 2008-2016, 2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -66,6 +66,7 @@ #define DIAG_IOCTL_PERIPHERAL_BUF_DRAIN 36 #define DIAG_IOCTL_REGISTER_CALLBACK 37 #define DIAG_IOCTL_HDLC_TOGGLE 38 #define DIAG_IOCTL_QUERY_CON_ALL 40 /* PC Tools IDs */ #define APQ8060_TOOLS_ID 4062 Loading