title: Can you explain this C definition from efilib.h?
body: <p>I'm learning UEFI programming and I notice that many of the EFI header files show chunks with this syntax I can't understand:</p>
  
  <pre><code>typedef
  EFI_STATUS
  (EFIAPI *EFI_TEXT_STRING) (
      IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
      IN CHAR16 *String
  );
  </code></pre>
  
  <ul>
  <li><strong>Could you please explain what are the arguments of that <code>typedef</code> in this case?</strong></li>
  <li><strong>How come those <code>IN</code>'s are legal syntax? Is it a compiler specific feature?</strong></li>
  </ul>