r24712: No longer expose the 'BOOL' data type in any interfaces.
[jelmer/samba4-debian.git] / source / librpc / ndr / libndr.h
index e6bf7c04e2f86c8e61361f043c33774c0314a916..e138b3eac9940b7da38e6fc0d72f78bb23e2a823 100644 (file)
@@ -5,7 +5,7 @@
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
@@ -14,8 +14,7 @@
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef __LIBNDR_H__
@@ -285,12 +284,41 @@ typedef NTSTATUS (*ndr_pull_flags_fn_t)(struct ndr_pull *, int ndr_flags, void *
 typedef void (*ndr_print_fn_t)(struct ndr_print *, const char *, const void *);
 typedef void (*ndr_print_function_t)(struct ndr_print *, const char *, int, const void *);
 
-extern const struct dcerpc_syntax_id ndr_transfer_syntax;
-extern const struct dcerpc_syntax_id ndr64_transfer_syntax;
-
 #include "librpc/gen_ndr/misc.h"
 #include "librpc/ndr/libndr_proto.h"
 
+extern const struct ndr_syntax_id ndr_transfer_syntax;
+extern const struct ndr_syntax_id ndr64_transfer_syntax;
+
+struct ndr_interface_call {
+       const char *name;
+       size_t struct_size;
+       ndr_push_flags_fn_t ndr_push;
+       ndr_pull_flags_fn_t ndr_pull;
+       ndr_print_function_t ndr_print;
+       bool async;
+};
+
+struct ndr_interface_string_array {
+       uint32_t count;
+       const char * const *names;
+};
+
+struct ndr_interface_table {
+       const char *name;
+       struct ndr_syntax_id syntax_id;
+       const char *helpstring;
+       uint32_t num_calls;
+       const struct ndr_interface_call *calls;
+       const struct ndr_interface_string_array *endpoints;
+       const struct ndr_interface_string_array *authservices;
+};
+
+struct ndr_interface_list {
+       struct ndr_interface_list *prev, *next;
+       const struct ndr_interface_table *table;
+};
+
 /* FIXME: Use represent_as instead */
 struct dom_sid;
 NTSTATUS ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);