1a90cf9f2SGordon Ross /* 2a90cf9f2SGordon Ross * This file and its contents are supplied under the terms of the 3a90cf9f2SGordon Ross * Common Development and Distribution License ("CDDL"), version 1.0. 4a90cf9f2SGordon Ross * You may only use this file in accordance with the terms of version 5a90cf9f2SGordon Ross * 1.0 of the CDDL. 6a90cf9f2SGordon Ross * 7a90cf9f2SGordon Ross * A full copy of the text of the CDDL should have accompanied this 8a90cf9f2SGordon Ross * source. A copy of the CDDL is also available via the Internet at 9a90cf9f2SGordon Ross * http://www.illumos.org/license/CDDL. 10a90cf9f2SGordon Ross */ 11a90cf9f2SGordon Ross 12a90cf9f2SGordon Ross /* 13*5677e049SGordon Ross * Copyright 2018 Nexenta Systems, Inc. All rights reserved. 14a90cf9f2SGordon Ross */ 15a90cf9f2SGordon Ross 16a90cf9f2SGordon Ross #ifndef _SMB2_KPROTO_H_ 17a90cf9f2SGordon Ross #define _SMB2_KPROTO_H_ 18a90cf9f2SGordon Ross 19a90cf9f2SGordon Ross #include <smbsrv/smb_kproto.h> 20a90cf9f2SGordon Ross #include <smbsrv/smb2.h> 21a90cf9f2SGordon Ross 22a90cf9f2SGordon Ross #ifdef __cplusplus 23a90cf9f2SGordon Ross extern "C" { 24a90cf9f2SGordon Ross #endif 25a90cf9f2SGordon Ross 26a90cf9f2SGordon Ross extern uint32_t smb2_tcp_rcvbuf; 27a90cf9f2SGordon Ross extern uint32_t smb2_max_rwsize; 28a90cf9f2SGordon Ross extern uint32_t smb2_max_trans; 29a90cf9f2SGordon Ross 30d082c877SGordon Ross extern int smb2_aapl_use_file_ids; 31d082c877SGordon Ross 32a90cf9f2SGordon Ross void smb2_dispatch_stats_init(smb_server_t *); 33a90cf9f2SGordon Ross void smb2_dispatch_stats_fini(smb_server_t *); 34a90cf9f2SGordon Ross void smb2_dispatch_stats_update(smb_server_t *, 35a90cf9f2SGordon Ross smb_kstat_req_t *, int, int); 36a90cf9f2SGordon Ross 37a90cf9f2SGordon Ross int smb2sr_newrq(smb_request_t *); 38a90cf9f2SGordon Ross void smb2sr_work(smb_request_t *); 39a90cf9f2SGordon Ross 40a90cf9f2SGordon Ross int smb2_decode_header(smb_request_t *); 41a90cf9f2SGordon Ross int smb2_encode_header(smb_request_t *, boolean_t); 42a90cf9f2SGordon Ross void smb2_send_reply(smb_request_t *); 43a90cf9f2SGordon Ross void smb2sr_put_error(smb_request_t *, uint32_t); 44a90cf9f2SGordon Ross void smb2sr_put_error_data(smb_request_t *, uint32_t, mbuf_chain_t *); 45a90cf9f2SGordon Ross void smb2sr_put_errno(struct smb_request *, int); 46a90cf9f2SGordon Ross uint32_t smb2sr_lookup_fid(smb_request_t *, smb2fid_t *); 47a90cf9f2SGordon Ross 48a90cf9f2SGordon Ross /* SMB2 signing routines - smb2_signing.c */ 49a90cf9f2SGordon Ross int smb2_sign_check_request(smb_request_t *); 50a90cf9f2SGordon Ross void smb2_sign_reply(smb_request_t *); 51a90cf9f2SGordon Ross 52a90cf9f2SGordon Ross uint32_t smb2_fsctl_vneginfo(smb_request_t *, smb_fsctl_t *); 53a90cf9f2SGordon Ross 54a90cf9f2SGordon Ross smb_sdrc_t smb2_negotiate(smb_request_t *); 55a90cf9f2SGordon Ross smb_sdrc_t smb2_session_setup(smb_request_t *); 56a90cf9f2SGordon Ross smb_sdrc_t smb2_logoff(smb_request_t *); 57a90cf9f2SGordon Ross smb_sdrc_t smb2_tree_connect(smb_request_t *); 58a90cf9f2SGordon Ross smb_sdrc_t smb2_tree_disconn(smb_request_t *); 59a90cf9f2SGordon Ross smb_sdrc_t smb2_create(smb_request_t *); 60a90cf9f2SGordon Ross smb_sdrc_t smb2_close(smb_request_t *); 61a90cf9f2SGordon Ross smb_sdrc_t smb2_flush(smb_request_t *); 62a90cf9f2SGordon Ross smb_sdrc_t smb2_read(smb_request_t *); 63a90cf9f2SGordon Ross smb_sdrc_t smb2_write(smb_request_t *); 64a90cf9f2SGordon Ross smb_sdrc_t smb2_lock(smb_request_t *); 65a90cf9f2SGordon Ross smb_sdrc_t smb2_ioctl(smb_request_t *); 66*5677e049SGordon Ross smb_sdrc_t smb2_cancel(smb_request_t *); 67a90cf9f2SGordon Ross smb_sdrc_t smb2_echo(smb_request_t *); 68a90cf9f2SGordon Ross smb_sdrc_t smb2_query_dir(smb_request_t *); 69a90cf9f2SGordon Ross smb_sdrc_t smb2_change_notify(smb_request_t *); 70a90cf9f2SGordon Ross smb_sdrc_t smb2_query_info(smb_request_t *); 71a90cf9f2SGordon Ross smb_sdrc_t smb2_set_info(smb_request_t *); 72a90cf9f2SGordon Ross smb_sdrc_t smb2_oplock_break_ack(smb_request_t *); 73a90cf9f2SGordon Ross 74a90cf9f2SGordon Ross int smb2_newrq_negotiate(smb_request_t *); 75*5677e049SGordon Ross int smb2_newrq_cancel(smb_request_t *); 76a90cf9f2SGordon Ross 77d082c877SGordon Ross uint32_t smb2_aapl_crctx(smb_request_t *, 78d082c877SGordon Ross mbuf_chain_t *, mbuf_chain_t *); 79d082c877SGordon Ross 80a90cf9f2SGordon Ross uint32_t smb2_ofile_getattr(smb_request_t *, smb_ofile_t *, smb_attr_t *); 81a90cf9f2SGordon Ross uint32_t smb2_ofile_getstd(smb_ofile_t *, smb_queryinfo_t *); 82a90cf9f2SGordon Ross uint32_t smb2_ofile_getname(smb_ofile_t *, smb_queryinfo_t *); 83a90cf9f2SGordon Ross 84a90cf9f2SGordon Ross uint32_t smb2_qinfo_file(smb_request_t *, smb_queryinfo_t *); 85a90cf9f2SGordon Ross uint32_t smb2_qinfo_fs(smb_request_t *, smb_queryinfo_t *); 86a90cf9f2SGordon Ross uint32_t smb2_qinfo_sec(smb_request_t *, smb_queryinfo_t *); 87a90cf9f2SGordon Ross uint32_t smb2_qinfo_quota(smb_request_t *, smb_queryinfo_t *); 88a90cf9f2SGordon Ross uint32_t smb2_qinfo_stream(smb_request_t *, smb_queryinfo_t *); 89a90cf9f2SGordon Ross 90a90cf9f2SGordon Ross uint32_t smb2_setinfo_file(smb_request_t *, smb_setinfo_t *, int); 91a90cf9f2SGordon Ross uint32_t smb2_setinfo_fs(smb_request_t *, smb_setinfo_t *, int); 92a90cf9f2SGordon Ross uint32_t smb2_setinfo_sec(smb_request_t *, smb_setinfo_t *, uint32_t); 93a90cf9f2SGordon Ross uint32_t smb2_setinfo_quota(smb_request_t *, smb_setinfo_t *); 94a90cf9f2SGordon Ross 95a90cf9f2SGordon Ross #ifdef __cplusplus 96a90cf9f2SGordon Ross } 97a90cf9f2SGordon Ross #endif 98a90cf9f2SGordon Ross 99a90cf9f2SGordon Ross #endif /* _SMB2_KPROTO_H_ */ 100