Read rows selected by $params and $include_additional from the field_config table. If $params include 'entity_type' or 'bundle' the field_config_instance table is joined on the 'id' = 'field_id' columns. Loads and installs the module(s) for the field(s) selected.
A Drupal "field" is a way to attach additional data to any Drupal entity declared fieldable. An entity is marked as fieldable by returning 'fieldable' => TRUE in the array returned by its hook_enitity_info(). Drupal core entities which are fieldable are: node, user, taxonomy and comment. The default is 'fieldable' => FALSE. Fields can be attached to entities using the Field API.