Project

General

Profile

Feature #3890

Deal with Linux kernel API macros at global scope

Added by Evgeny Novikov almost 7 years ago. Updated almost 7 years ago.

Status:
Closed
Priority:
High
Category:
-
Start date:
01/29/2013
Due date:
% Done:

0%

Estimated time:
Published in build:
9a663b3

Description

During development of models 110, 130 and 148 it was noticed that using Linux kernel API macros at global scope is a common way to declare some global variables and initialize them in static. This mechanism also can be used (but used rarely) at a function scope level and this can be processed by current abilities of Aspectator (primarily because of we can insert calls to model functions there). But for global scope now it requires incomprehensible actions like defining some additional auxiliary unique functions, calling them in ldv_initialize (how we can do that if we don't know how to distinguish them...), etc.

To deal with Linux kernel API macros at global scope we decided to extend a rerouter script functionality to allow to collect different lists of template parameters (default is for function parameter signatures, second is for macrofunction parameters, etc.) and instantiate templates on the basis of them.


Related issues

Related to Linux Kernel Safety RuleDB - Feature #2747: 110: Correct initialization of spin_lockOpen04/13/2012

Actions
Related to Linux Kernel Safety RuleDB - Feature #3270: 130: Initialize dynamically allocated sysfs attributes before device_create_file() callOpen07/24/2012

Actions
Related to Linux Kernel Safety RuleDB - Feature #3865: 148: completion must be initialized before every useOpen01/18/2013

Actions
Blocked by C Instrumentation Framework - Bug #3857: macro infrequest is applied only onceClosed01/17/2013

Actions

History

#1

Updated by Evgeny Novikov almost 7 years ago

It looks like without #3857 fixing this feature can't be implemented in a full way.

#2

Updated by Evgeny Novikov almost 7 years ago

  • Status changed from Open to Resolved

Implemented in commit 9a663b3 of the master branch. QA tests passed.

#3

Updated by Evgeny Novikov almost 7 years ago

  • Status changed from Resolved to Closed
  • Published in build set to 9a663b3

Works good.

Also available in: Atom PDF