<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="adg-pam_conv">
  <title>The conversation function</title>
  <funcsynopsis>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../man/pam_conv.3.xml" xpointer='xpointer(id("pam_conv-synopsis")/*)'/>
  </funcsynopsis>
  <programlisting>
struct pam_message {
    int msg_style;
    const char *msg;
};

struct pam_response {
    char *resp;
    int resp_retcode;
};

struct pam_conv {
    int (*conv)(int num_msg, const struct pam_message **msg,
                struct pam_response **resp, void *appdata_ptr);
    void *appdata_ptr;
};
  </programlisting>
  <section xml:id="adg-pam_conv-description">
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../man/pam_conv.3.xml" xpointer='xpointer(id("pam_conv-description")/*)'/>
  </section>
  <section xml:id="adg-pam_conv-return_values">
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../man/pam_conv.3.xml" xpointer='xpointer(id("pam_conv-return_values")/*)'/>
  </section>
</section>