loader: Process module dependencies.
authorCorey Farrell <git@cfware.com>
Wed, 22 Nov 2017 05:39:33 +0000 (00:39 -0500)
committerCorey Farrell <git@cfware.com>
Wed, 17 Jan 2018 22:56:59 +0000 (17:56 -0500)
commit3b73ed28c52ff1458b19ef3a8686638ade874c03
treead4691a29593f42161161a8f7d32a3dfe4790410
parentb304c97dec74557f267cb3b31d81a20d9a419ced
loader: Process module dependencies.

* Add string vectors for requires, optional_apis and enhances.
* Add reffed_deps module vector for holding references to dependencies.
* Initialize string vectors after final dlopen of each module.
* Free string vectors and clear references from reffed_deps in
  module_destroy.
* Create functions necessary to process module dependencies and enforce
  load order.

Module dependencies result in automatic references being managed by the
module loader.  This enforces unload order.

Change-Id: I9be08d1dd331aceadc1dcba00b804d71360b2fbb
main/loader.c