/* parser auto-generated by pidl */

#include "replace.h"
#include "bin/default/librpc/gen_ndr/ndr_smb3posix.h"

#include "librpc/gen_ndr/ndr_security.h"
_PUBLIC_ enum ndr_err_code ndr_push_smb3_posix_cc_info(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct smb3_posix_cc_info *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 4));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nlinks));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reparse_tag));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_mode));
			NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->owner));
			NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->group));
			NDR_CHECK(ndr_push_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_smb3_posix_cc_info(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct smb3_posix_cc_info *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 4));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nlinks));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reparse_tag));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_mode));
			NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->owner));
			NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->group));
			NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_smb3_posix_cc_info(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct smb3_posix_cc_info *r)
{
	ndr_print_smb3_posix_cc_info(ndr, name, r);
}

_PUBLIC_ void ndr_print_smb3_posix_cc_info(struct ndr_print *ndr, const char *name, const struct smb3_posix_cc_info *r)
{
	ndr_print_struct(ndr, name, "smb3_posix_cc_info");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		ndr->depth++;
		ndr_print_uint32(ndr, "nlinks", r->nlinks);
		ndr_print_uint32(ndr, "reparse_tag", r->reparse_tag);
		ndr_print_uint32(ndr, "posix_mode", r->posix_mode);
		ndr_print_dom_sid(ndr, "owner", &r->owner);
		ndr_print_dom_sid(ndr, "group", &r->group);
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

_PUBLIC_ enum ndr_err_code ndr_push_smb3_file_posix_information(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct smb3_file_posix_information *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_push_align(ndr, 8));
			NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->creation_time));
			NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_access_time));
			NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_write_time));
			NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->change_time));
			NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->end_of_file));
			NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->allocation_size));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_attributes));
			NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->inode));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device));
			NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
			NDR_CHECK(ndr_push_smb3_posix_cc_info(ndr, NDR_SCALARS, &r->cc));
			NDR_CHECK(ndr_push_trailer_align(ndr, 8));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_smb3_file_posix_information(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct smb3_file_posix_information *r)
{
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
		if (ndr_flags & NDR_SCALARS) {
			NDR_CHECK(ndr_pull_align(ndr, 8));
			NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->creation_time));
			NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_access_time));
			NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_write_time));
			NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->change_time));
			NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->end_of_file));
			NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->allocation_size));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_attributes));
			NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->inode));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device));
			NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
			NDR_CHECK(ndr_pull_smb3_posix_cc_info(ndr, NDR_SCALARS, &r->cc));
			NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
		}
		if (ndr_flags & NDR_BUFFERS) {
		}
		ndr->flags = _flags_save_STRUCT;
	}
	return NDR_ERR_SUCCESS;
}

static void ndr_print_flags_smb3_file_posix_information(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct smb3_file_posix_information *r)
{
	ndr_print_smb3_file_posix_information(ndr, name, r);
}

_PUBLIC_ void ndr_print_smb3_file_posix_information(struct ndr_print *ndr, const char *name, const struct smb3_file_posix_information *r)
{
	ndr_print_struct(ndr, name, "smb3_file_posix_information");
	if (r == NULL) { ndr_print_null(ndr); return; }
	{
		libndr_flags _flags_save_STRUCT = ndr->flags;
		ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
		ndr->depth++;
		ndr_print_NTTIME(ndr, "creation_time", r->creation_time);
		ndr_print_NTTIME(ndr, "last_access_time", r->last_access_time);
		ndr_print_NTTIME(ndr, "last_write_time", r->last_write_time);
		ndr_print_NTTIME(ndr, "change_time", r->change_time);
		ndr_print_hyper(ndr, "end_of_file", r->end_of_file);
		ndr_print_hyper(ndr, "allocation_size", r->allocation_size);
		ndr_print_uint32(ndr, "file_attributes", r->file_attributes);
		ndr_print_hyper(ndr, "inode", r->inode);
		ndr_print_uint32(ndr, "device", r->device);
		ndr_print_uint32(ndr, "reserved", r->reserved);
		ndr_print_smb3_posix_cc_info(ndr, "cc", &r->cc);
		ndr->depth--;
		ndr->flags = _flags_save_STRUCT;
	}
}

#ifndef SKIP_NDR_TABLE_smb3posix
static const struct ndr_interface_public_struct smb3posix_public_structs[] = {
	{
		.name = "smb3_posix_cc_info",
		.struct_size = sizeof(struct smb3_posix_cc_info ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_smb3_posix_cc_info,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_smb3_posix_cc_info,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_smb3_posix_cc_info,
	},
	{
		.name = "smb3_file_posix_information",
		.struct_size = sizeof(struct smb3_file_posix_information ),
		.ndr_push = (ndr_push_flags_fn_t) ndr_push_smb3_file_posix_information,
		.ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_smb3_file_posix_information,
		.ndr_print = (ndr_print_function_t) ndr_print_flags_smb3_file_posix_information,
	},
	{ .name = NULL }
};

static const struct ndr_interface_call smb3posix_calls[] = {
	{ .name = NULL }
};

static const char * const smb3posix_endpoint_strings[] = {
	"ncacn_np:[\\pipe\\smb3posix]", 
};

static const struct ndr_interface_string_array smb3posix_endpoints = {
	.count	= 1,
	.names	= smb3posix_endpoint_strings
};

static const char * const smb3posix_authservice_strings[] = {
	"host", 
};

static const struct ndr_interface_string_array smb3posix_authservices = {
	.count	= 1,
	.names	= smb3posix_authservice_strings
};


const struct ndr_interface_table ndr_table_smb3posix = {
	.name		= "smb3posix",
	.num_calls	= 0,
	.calls		= smb3posix_calls,
	.num_public_structs	= 2,
	.public_structs		= smb3posix_public_structs,
	.endpoints	= &smb3posix_endpoints,
	.authservices	= &smb3posix_authservices
};

#endif /* SKIP_NDR_TABLE_smb3posix */
