From c3f151620312880b7bf4f3f0eb6dd8f1723f4c89 Mon Sep 17 00:00:00 2001 From: Yiwei Lin Date: Tue, 26 Nov 2024 20:44:33 +0800 Subject: [PATCH] Add opts to attach watchpoint on usb and plat dev --- src/main.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main.rs b/src/main.rs index cb4a812..fe3909f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -76,6 +76,12 @@ struct Cli { #[arg(long, help = "kexpr: 'sturct pci_dev' from the device name")] pci_dev: Option, + + #[arg(long, help = "kexpr: 'sturct usb_device' from the device name")] + usb_dev: Option, + + #[arg(long, help = "kexpr: 'sturct platform_device' from the device name")] + plat_dev: Option, } fn parse_addr(bp: &BpType) -> Result { @@ -83,6 +89,8 @@ fn parse_addr(bp: &BpType) -> Result { let expr = cli.expr; let pid_task = cli.pid_task; let pci_dev = cli.pci_dev; + let usb_dev = cli.usb_dev; + let plat_dev = cli.plat_dev; let vmlinux = cli.vmlinux; /* Use kexpr if special option is specified. @@ -96,6 +104,14 @@ fn parse_addr(bp: &BpType) -> Result { return pcidev_kexpr2addr(&pci_dev, &expr); } + if let Some(usb_dev) = usb_dev { + return usbdev_kexpr2addr(&usb_dev, &expr); + } + + if let Some(plat_dev) = plat_dev { + return platdev_kexpr2addr(&plat_dev, &expr); + } + if let Ok(addr) = hexstr2int(&expr) { return Ok(addr); }