%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// SPDX-License-Identifier: GPL-2.0 /// Use DEFINE_DEBUGFS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTRIBUTE /// for debugfs files. /// //# Rationale: DEFINE_SIMPLE_ATTRIBUTE + debugfs_create_file() //# imposes some significant overhead as compared to //# DEFINE_DEBUGFS_ATTRIBUTE + debugfs_create_file_unsafe(). // // Copyright (C): 2016 Nicolai Stange // Options: --no-includes // virtual context virtual patch virtual org virtual report @dsa@ declarer name DEFINE_SIMPLE_ATTRIBUTE; identifier dsa_fops; expression dsa_get, dsa_set, dsa_fmt; position p; @@ DEFINE_SIMPLE_ATTRIBUTE@p(dsa_fops, dsa_get, dsa_set, dsa_fmt); @dcf@ expression name, mode, parent, data; identifier dsa.dsa_fops; @@ debugfs_create_file(name, mode, parent, data, &dsa_fops) @context_dsa depends on context && dcf@ declarer name DEFINE_DEBUGFS_ATTRIBUTE; identifier dsa.dsa_fops; expression dsa.dsa_get, dsa.dsa_set, dsa.dsa_fmt; @@ * DEFINE_SIMPLE_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); @patch_dcf depends on patch expression@ expression name, mode, parent, data; identifier dsa.dsa_fops; @@ - debugfs_create_file(name, mode, parent, data, &dsa_fops) + debugfs_create_file_unsafe(name, mode, parent, data, &dsa_fops) @patch_dsa depends on patch_dcf && patch@ identifier dsa.dsa_fops; expression dsa.dsa_get, dsa.dsa_set, dsa.dsa_fmt; @@ - DEFINE_SIMPLE_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); + DEFINE_DEBUGFS_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); @script:python depends on org && dcf@ fops << dsa.dsa_fops; p << dsa.p; @@ msg="%s should be defined with DEFINE_DEBUGFS_ATTRIBUTE" % (fops) coccilib.org.print_todo(p[0], msg) @script:python depends on report && dcf@ fops << dsa.dsa_fops; p << dsa.p; @@ msg="WARNING: %s should be defined with DEFINE_DEBUGFS_ATTRIBUTE" % (fops) coccilib.report.print_report(p[0], msg)