177522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/version 2c2ce6bbcSDave JiangDate: Apr 15, 2020 3c2ce6bbcSDave JiangKernelVersion: 5.8.0 4c2ce6bbcSDave JiangContact: dmaengine@vger.kernel.org 5c2ce6bbcSDave JiangDescription: The hardware version number. 6c2ce6bbcSDave Jiang 777522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/cdev_major 8b131ad59SJing LinDate: Oct 25, 2019 9b131ad59SJing LinKernelVersion: 5.6.0 10b131ad59SJing LinContact: dmaengine@vger.kernel.org 11b131ad59SJing LinDescription: The major number that the character device driver assigned to 12b131ad59SJing Lin this device. 13b131ad59SJing Lin 1477522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/errors 15b131ad59SJing LinDate: Oct 25, 2019 16b131ad59SJing LinKernelVersion: 5.6.0 17b131ad59SJing LinContact: dmaengine@vger.kernel.org 18b131ad59SJing LinDescription: The error information for this device. 19b131ad59SJing Lin 2077522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_batch_size 21b131ad59SJing LinDate: Oct 25, 2019 22b131ad59SJing LinKernelVersion: 5.6.0 23b131ad59SJing LinContact: dmaengine@vger.kernel.org 24b131ad59SJing LinDescription: The largest number of work descriptors in a batch. 2591123b37SXiaochen Shen It's not visible when the device does not support batch. 26b131ad59SJing Lin 2777522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_work_queues_size 28b131ad59SJing LinDate: Oct 25, 2019 29b131ad59SJing LinKernelVersion: 5.6.0 30b131ad59SJing LinContact: dmaengine@vger.kernel.org 31b131ad59SJing LinDescription: The maximum work queue size supported by this device. 32b131ad59SJing Lin 3377522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_engines 34b131ad59SJing LinDate: Oct 25, 2019 35b131ad59SJing LinKernelVersion: 5.6.0 36b131ad59SJing LinContact: dmaengine@vger.kernel.org 37b131ad59SJing LinDescription: The maximum number of engines supported by this device. 38b131ad59SJing Lin 3977522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_groups 40b131ad59SJing LinDate: Oct 25, 2019 41b131ad59SJing LinKernelVersion: 5.6.0 42b131ad59SJing LinContact: dmaengine@vger.kernel.org 43b131ad59SJing LinDescription: The maximum number of groups can be created under this device. 44b131ad59SJing Lin 45fde212e4SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_read_buffers 46fde212e4SDave JiangDate: Dec 10, 2021 47fde212e4SDave JiangKernelVersion: 5.17.0 48b131ad59SJing LinContact: dmaengine@vger.kernel.org 49fde212e4SDave JiangDescription: The total number of read buffers supported by this device. 50fde212e4SDave Jiang The read buffers represent resources within the DSA 51b131ad59SJing Lin implementation, and these resources are allocated by engines to 52fde212e4SDave Jiang support operations. See DSA spec v1.2 9.2.4 Total Read Buffers. 539a8ddb35SXiaochen Shen It's not visible when the device does not support Read Buffer 549a8ddb35SXiaochen Shen allocation control. 55b131ad59SJing Lin 5677522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_transfer_size 57b131ad59SJing LinDate: Oct 25, 2019 58b131ad59SJing LinKernelVersion: 5.6.0 59b131ad59SJing LinContact: dmaengine@vger.kernel.org 60b131ad59SJing LinDescription: The number of bytes to be read from the source address to 61b131ad59SJing Lin perform the operation. The maximum transfer size is dependent on 62b131ad59SJing Lin the workqueue the descriptor was submitted to. 63b131ad59SJing Lin 6477522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/max_work_queues 65b131ad59SJing LinDate: Oct 25, 2019 66b131ad59SJing LinKernelVersion: 5.6.0 67b131ad59SJing LinContact: dmaengine@vger.kernel.org 68b131ad59SJing LinDescription: The maximum work queue number that this device supports. 69b131ad59SJing Lin 7077522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/numa_node 71b131ad59SJing LinDate: Oct 25, 2019 72b131ad59SJing LinKernelVersion: 5.6.0 73b131ad59SJing LinContact: dmaengine@vger.kernel.org 74b131ad59SJing LinDescription: The numa node number for this device. 75b131ad59SJing Lin 7677522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/op_cap 77b131ad59SJing LinDate: Oct 25, 2019 78b131ad59SJing LinKernelVersion: 5.6.0 79b131ad59SJing LinContact: dmaengine@vger.kernel.org 80b131ad59SJing LinDescription: The operation capability bit mask specify the operation types 81b131ad59SJing Lin supported by the this device. 82b131ad59SJing Lin 834749f51dSDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/pasid_enabled 844749f51dSDave JiangDate: Oct 27, 2020 854749f51dSDave JiangKernelVersion: 5.11.0 864749f51dSDave JiangContact: dmaengine@vger.kernel.org 87*b449c3f9SRex ZhangDescription: To indicate if user PASID (process address space identifier) is 884749f51dSDave Jiang enabled or not for this device. 894749f51dSDave Jiang 9077522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/state 91b131ad59SJing LinDate: Oct 25, 2019 92b131ad59SJing LinKernelVersion: 5.6.0 93b131ad59SJing LinContact: dmaengine@vger.kernel.org 94b131ad59SJing LinDescription: The state information of this device. It can be either enabled 95b131ad59SJing Lin or disabled. 96b131ad59SJing Lin 9777522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/group<m>.<n> 98b131ad59SJing LinDate: Oct 25, 2019 99b131ad59SJing LinKernelVersion: 5.6.0 100b131ad59SJing LinContact: dmaengine@vger.kernel.org 101b131ad59SJing LinDescription: The assigned group under this device. 102b131ad59SJing Lin 10377522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/engine<m>.<n> 104b131ad59SJing LinDate: Oct 25, 2019 105b131ad59SJing LinKernelVersion: 5.6.0 106b131ad59SJing LinContact: dmaengine@vger.kernel.org 107b131ad59SJing LinDescription: The assigned engine under this device. 108b131ad59SJing Lin 10977522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/wq<m>.<n> 110b131ad59SJing LinDate: Oct 25, 2019 111b131ad59SJing LinKernelVersion: 5.6.0 112b131ad59SJing LinContact: dmaengine@vger.kernel.org 113b131ad59SJing LinDescription: The assigned work queue under this device. 114b131ad59SJing Lin 11577522b21SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/configurable 116b131ad59SJing LinDate: Oct 25, 2019 117b131ad59SJing LinKernelVersion: 5.6.0 118b131ad59SJing LinContact: dmaengine@vger.kernel.org 119b131ad59SJing LinDescription: To indicate if this device is configurable or not. 120b131ad59SJing Lin 121fde212e4SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/read_buffer_limit 122fde212e4SDave JiangDate: Dec 10, 2021 123fde212e4SDave JiangKernelVersion: 5.17.0 124b131ad59SJing LinContact: dmaengine@vger.kernel.org 125fde212e4SDave JiangDescription: The maximum number of read buffers that may be in use at 126b131ad59SJing Lin one time by operations that access low bandwidth memory in the 127fde212e4SDave Jiang device. See DSA spec v1.2 9.2.8 GENCFG on Global Read Buffer Limit. 1289a8ddb35SXiaochen Shen It's not visible when the device does not support Read Buffer 1299a8ddb35SXiaochen Shen allocation control. 130b131ad59SJing Lin 131ff18de55SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/cmd_status 132ff18de55SDave JiangDate: Aug 28, 2020 133ff18de55SDave JiangKernelVersion: 5.10.0 134ff18de55SDave JiangContact: dmaengine@vger.kernel.org 135ff18de55SDave JiangDescription: The last executed device administrative command's status/error. 136125d1037SDave Jiang Also last configuration error overloaded. 137125d1037SDave Jiang Writing to it will clear the status. 138ff18de55SDave Jiang 1399f0d99b3SDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/iaa_cap 1409f0d99b3SDave JiangDate: Sept 14, 2022 1419f0d99b3SDave JiangKernelVersion: 6.0.0 1429f0d99b3SDave JiangContact: dmaengine@vger.kernel.org 1439f0d99b3SDave JiangDescription: IAA (IAX) capability mask. Exported to user space for application 1449f0d99b3SDave Jiang consumption. This attribute should only be visible on IAA devices 1459f0d99b3SDave Jiang that are version 2 or later. 1469f0d99b3SDave Jiang 1471649091fSDave JiangWhat: /sys/bus/dsa/devices/dsa<m>/event_log_size 1481649091fSDave JiangDate: Sept 14, 2022 1491649091fSDave JiangKernelVersion: 6.4.0 1501649091fSDave JiangContact: dmaengine@vger.kernel.org 1511649091fSDave JiangDescription: The event log size to be configured. Default is 64 entries and 1521649091fSDave Jiang occupies 4k size if the evl entry is 64 bytes. It's visible 1531649091fSDave Jiang only on platforms that support the capability. 1541649091fSDave Jiang 1554749f51dSDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/block_on_fault 1564749f51dSDave JiangDate: Oct 27, 2020 1574749f51dSDave JiangKernelVersion: 5.11.0 1584749f51dSDave JiangContact: dmaengine@vger.kernel.org 1594749f51dSDave JiangDescription: To indicate block on fault is allowed or not for the work queue 1604749f51dSDave Jiang to support on demand paging. 1614749f51dSDave Jiang 16277522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/group_id 163b131ad59SJing LinDate: Oct 25, 2019 164b131ad59SJing LinKernelVersion: 5.6.0 165b131ad59SJing LinContact: dmaengine@vger.kernel.org 166b131ad59SJing LinDescription: The group id that this work queue belongs to. 167b131ad59SJing Lin 16877522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/size 169b131ad59SJing LinDate: Oct 25, 2019 170b131ad59SJing LinKernelVersion: 5.6.0 171b131ad59SJing LinContact: dmaengine@vger.kernel.org 172b131ad59SJing LinDescription: The work queue size for this work queue. 173b131ad59SJing Lin 17477522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/type 175b131ad59SJing LinDate: Oct 25, 2019 176b131ad59SJing LinKernelVersion: 5.6.0 177b131ad59SJing LinContact: dmaengine@vger.kernel.org 178b131ad59SJing LinDescription: The type of this work queue, it can be "kernel" type for work 179b131ad59SJing Lin queue usages in the kernel space or "user" type for work queue 180b131ad59SJing Lin usages by applications in user space. 181b131ad59SJing Lin 18277522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/cdev_minor 183b131ad59SJing LinDate: Oct 25, 2019 184b131ad59SJing LinKernelVersion: 5.6.0 185b131ad59SJing LinContact: dmaengine@vger.kernel.org 186b131ad59SJing LinDescription: The minor number assigned to this work queue by the character 187b131ad59SJing Lin device driver. 188b131ad59SJing Lin 18977522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/mode 190b131ad59SJing LinDate: Oct 25, 2019 191b131ad59SJing LinKernelVersion: 5.6.0 192b131ad59SJing LinContact: dmaengine@vger.kernel.org 193b131ad59SJing LinDescription: The work queue mode type for this work queue. 194b131ad59SJing Lin 19577522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/priority 196b131ad59SJing LinDate: Oct 25, 2019 197b131ad59SJing LinKernelVersion: 5.6.0 198b131ad59SJing LinContact: dmaengine@vger.kernel.org 1993e42d1deSCarlos BilbaoDescription: The priority value of this work queue, it is a value relative to 200b131ad59SJing Lin other work queue in the same group to control quality of service 201b131ad59SJing Lin for dispatching work from multiple workqueues in the same group. 202b131ad59SJing Lin 20377522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/state 204b131ad59SJing LinDate: Oct 25, 2019 205b131ad59SJing LinKernelVersion: 5.6.0 206b131ad59SJing LinContact: dmaengine@vger.kernel.org 207b131ad59SJing LinDescription: The current state of the work queue. 208b131ad59SJing Lin 20977522b21SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/threshold 210b131ad59SJing LinDate: Oct 25, 2019 211b131ad59SJing LinKernelVersion: 5.6.0 212b131ad59SJing LinContact: dmaengine@vger.kernel.org 213b131ad59SJing LinDescription: The number of entries in this work queue that may be filled 214b131ad59SJing Lin via a limited portal. 215b131ad59SJing Lin 216d7aad555SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/max_transfer_size 217d7aad555SDave JiangDate: Aug 28, 2020 218d7aad555SDave JiangKernelVersion: 5.10.0 219d7aad555SDave JiangContact: dmaengine@vger.kernel.org 220d7aad555SDave JiangDescription: The max transfer sized for this workqueue. Cannot exceed device 221d7aad555SDave Jiang max transfer size. Configurable parameter. 222d7aad555SDave Jiang 223e7184b15SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/max_batch_size 224e7184b15SDave JiangDate: Aug 28, 2020 225e7184b15SDave JiangKernelVersion: 5.10.0 226e7184b15SDave JiangContact: dmaengine@vger.kernel.org 227e7184b15SDave JiangDescription: The max batch size for this workqueue. Cannot exceed device 228e7184b15SDave Jiang max batch size. Configurable parameter. 22991123b37SXiaochen Shen It's not visible when the device does not support batch. 230e7184b15SDave Jiang 23192de5fa2SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/ats_disable 23292de5fa2SDave JiangDate: Nov 13, 2020 23392de5fa2SDave JiangKernelVersion: 5.11.0 23492de5fa2SDave JiangContact: dmaengine@vger.kernel.org 23592de5fa2SDave JiangDescription: Indicate whether ATS disable is turned on for the workqueue. 23692de5fa2SDave Jiang 0 indicates ATS is on, and 1 indicates ATS is off for the workqueue. 23792de5fa2SDave Jiang 238f2dc3271SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/prs_disable 239f2dc3271SDave JiangDate: Sept 14, 2022 240f2dc3271SDave JiangKernelVersion: 6.4.0 241f2dc3271SDave JiangContact: dmaengine@vger.kernel.org 242f2dc3271SDave JiangDescription: Controls whether PRS disable is turned on for the workqueue. 243f2dc3271SDave Jiang 0 indicates PRS is on, and 1 indicates PRS is off for the 244f2dc3271SDave Jiang workqueue. This option overrides block_on_fault attribute 245f2dc3271SDave Jiang if set. It's visible only on platforms that support the 246f2dc3271SDave Jiang capability. 247f2dc3271SDave Jiang 248e753a64bSDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/occupancy 249e753a64bSDave JiangDate May 25, 2021 250e753a64bSDave JiangKernelVersion: 5.14.0 251e753a64bSDave JiangContact: dmaengine@vger.kernel.org 252e753a64bSDave JiangDescription: Show the current number of entries in this WQ if WQ Occupancy 253e753a64bSDave Jiang Support bit WQ capabilities is 1. 254e753a64bSDave Jiang 2557930d855SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/enqcmds_retries 2567930d855SDave JiangDate Oct 29, 2021 2577930d855SDave JiangKernelVersion: 5.17.0 2587930d855SDave JiangContact: dmaengine@vger.kernel.org 2597930d855SDave JiangDescription: Indicate the number of retires for an enqcmds submission on a sharedwq. 2607930d855SDave Jiang A max value to set attribute is capped at 64. 2617930d855SDave Jiang 262b0325aefSDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/op_config 263b0325aefSDave JiangDate: Sept 14, 2022 264b0325aefSDave JiangKernelVersion: 6.0.0 265b0325aefSDave JiangContact: dmaengine@vger.kernel.org 266b0325aefSDave JiangDescription: Shows the operation capability bits displayed in bitmap format 267b0325aefSDave Jiang presented by %*pb printk() output format specifier. 268b0325aefSDave Jiang The attribute can be configured when the WQ is disabled in 269b0325aefSDave Jiang order to configure the WQ to accept specific bits that 270b0325aefSDave Jiang correlates to the operations allowed. It's visible only 271b0325aefSDave Jiang on platforms that support the capability. 272b0325aefSDave Jiang 27377522b21SDave JiangWhat: /sys/bus/dsa/devices/engine<m>.<n>/group_id 274b131ad59SJing LinDate: Oct 25, 2019 275b131ad59SJing LinKernelVersion: 5.6.0 276b131ad59SJing LinContact: dmaengine@vger.kernel.org 277b131ad59SJing LinDescription: The group that this engine belongs to. 278fde212e4SDave Jiang 279fde212e4SDave JiangWhat: /sys/bus/dsa/devices/group<m>.<n>/use_read_buffer_limit 280fde212e4SDave JiangDate: Dec 10, 2021 281fde212e4SDave JiangKernelVersion: 5.17.0 282fde212e4SDave JiangContact: dmaengine@vger.kernel.org 283fde212e4SDave JiangDescription: Enable the use of global read buffer limit for the group. See DSA 284fde212e4SDave Jiang spec v1.2 9.2.18 GRPCFG Use Global Read Buffer Limit. 2859a8ddb35SXiaochen Shen It's not visible when the device does not support Read Buffer 2869a8ddb35SXiaochen Shen allocation control. 287fde212e4SDave Jiang 288fde212e4SDave JiangWhat: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_allowed 289fde212e4SDave JiangDate: Dec 10, 2021 290fde212e4SDave JiangKernelVersion: 5.17.0 291fde212e4SDave JiangContact: dmaengine@vger.kernel.org 292fde212e4SDave JiangDescription: Indicates max number of read buffers that may be in use at one time 293fde212e4SDave Jiang by all engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read 294fde212e4SDave Jiang Buffers Allowed. 2959a8ddb35SXiaochen Shen It's not visible when the device does not support Read Buffer 2969a8ddb35SXiaochen Shen allocation control. 297fde212e4SDave Jiang 298fde212e4SDave JiangWhat: /sys/bus/dsa/devices/group<m>.<n>/read_buffers_reserved 299fde212e4SDave JiangDate: Dec 10, 2021 300fde212e4SDave JiangKernelVersion: 5.17.0 301fde212e4SDave JiangContact: dmaengine@vger.kernel.org 302fde212e4SDave JiangDescription: Indicates the number of Read Buffers reserved for the use of 303fde212e4SDave Jiang engines in the group. See DSA spec v1.2 9.2.18 GRPCFG Read Buffers 304fde212e4SDave Jiang Reserved. 3059a8ddb35SXiaochen Shen It's not visible when the device does not support Read Buffer 3069a8ddb35SXiaochen Shen allocation control. 3071f273752SDave Jiang 3081f273752SDave JiangWhat: /sys/bus/dsa/devices/group<m>.<n>/desc_progress_limit 3091f273752SDave JiangDate: Sept 14, 2022 3101f273752SDave JiangKernelVersion: 6.0.0 3111f273752SDave JiangContact: dmaengine@vger.kernel.org 3121f273752SDave JiangDescription: Allows control of the number of work descriptors that can be 3131f273752SDave Jiang concurrently processed by an engine in the group as a fraction 3141f273752SDave Jiang of the Maximum Work Descriptors in Progress value specified in 3151f273752SDave Jiang the ENGCAP register. The acceptable values are 0 (default), 3161f273752SDave Jiang 1 (1/2 of max value), 2 (1/4 of the max value), and 3 (1/8 of 3171f273752SDave Jiang the max value). It's visible only on platforms that support 3181f273752SDave Jiang the capability. 3197ca68fa3SDave Jiang 3207ca68fa3SDave JiangWhat: /sys/bus/dsa/devices/group<m>.<n>/batch_progress_limit 3217ca68fa3SDave JiangDate: Sept 14, 2022 3227ca68fa3SDave JiangKernelVersion: 6.0.0 3237ca68fa3SDave JiangContact: dmaengine@vger.kernel.org 3247ca68fa3SDave JiangDescription: Allows control of the number of batch descriptors that can be 3257ca68fa3SDave Jiang concurrently processed by an engine in the group as a fraction 3267ca68fa3SDave Jiang of the Maximum Batch Descriptors in Progress value specified in 3277ca68fa3SDave Jiang the ENGCAP register. The acceptable values are 0 (default), 3287ca68fa3SDave Jiang 1 (1/2 of max value), 2 (1/4 of the max value), and 3 (1/8 of 3297ca68fa3SDave Jiang the max value). It's visible only on platforms that support 3307ca68fa3SDave Jiang the capability. 331244009b0SDave Jiang 332244009b0SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/cr_faults 333244009b0SDave JiangDate: Sept 14, 2022 334244009b0SDave JiangKernelVersion: 6.4.0 335244009b0SDave JiangContact: dmaengine@vger.kernel.org 336244009b0SDave JiangDescription: Show the number of Completion Record (CR) faults this application 337244009b0SDave Jiang has caused. 338244009b0SDave Jiang 339244009b0SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/cr_fault_failures 340244009b0SDave JiangDate: Sept 14, 2022 341244009b0SDave JiangKernelVersion: 6.4.0 342244009b0SDave JiangContact: dmaengine@vger.kernel.org 343244009b0SDave JiangDescription: Show the number of Completion Record (CR) faults failures that this 344244009b0SDave Jiang application has caused. The failure counter is incremented when the 345244009b0SDave Jiang driver cannot fault in the address for the CR. Typically this is caused 346244009b0SDave Jiang by a bad address programmed in the submitted descriptor or a malicious 347244009b0SDave Jiang submitter is using bad CR address on purpose. 348a62b8f87SDave Jiang 349a62b8f87SDave JiangWhat: /sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/pid 350a62b8f87SDave JiangDate: Sept 14, 2022 351a62b8f87SDave JiangKernelVersion: 6.4.0 352a62b8f87SDave JiangContact: dmaengine@vger.kernel.org 353a62b8f87SDave JiangDescription: Show the process id of the application that opened the file. This is 354a62b8f87SDave Jiang helpful information for a monitor daemon that wants to kill the 355a62b8f87SDave Jiang application that opened the file. 356