ライブラリ化進行中

AD1836Aコーデック・コントローラの部分をライブラリ化しています。作業が途中まで進んだところでちょっと躓きました。ライブラリ内部でセマフォやデータキューを扱うのですがそのためには資源のIDがわからなければなりません。IDはアプリケーション用にコンフィグレータで一回だけ生成しますのでライブラリのビルド時にはわかりません…
これはTOPPERS/JSPがどうの、と言う問題ではなくC言語の問題です。もちろん、解決策はあります。たとえばFOO_SEMというセマフォIDがコンフィグレータで生成されたとします。これを、

const int foo_sem = FOO_SEM;

としてアプリケーションプロジェクトが変数の初期値にしておけば、外部のタスクでは

extern const int foo_sem;

と宣言することでセマフォのIDを知ることが出来ます。const宣言していますので、コンパイラはこれをてこにしてある程度の最適化を進めることができます。
ただし、ライブラリ化しますので最適化には限度があります。ライブラリ化しない手もありますが、コードの再利用を考えればそれは却下です。