0001
0002
0003
0004
0005
0006 #ifndef __KSMBD_TRANSPORT_IPC_H__
0007 #define __KSMBD_TRANSPORT_IPC_H__
0008
0009 #include <linux/wait.h>
0010
0011 #define KSMBD_IPC_MAX_PAYLOAD 4096
0012
0013 struct ksmbd_login_response *
0014 ksmbd_ipc_login_request(const char *account);
0015
0016 struct ksmbd_session;
0017 struct ksmbd_share_config;
0018 struct ksmbd_tree_connect;
0019 struct sockaddr;
0020
0021 struct ksmbd_tree_connect_response *
0022 ksmbd_ipc_tree_connect_request(struct ksmbd_session *sess,
0023 struct ksmbd_share_config *share,
0024 struct ksmbd_tree_connect *tree_conn,
0025 struct sockaddr *peer_addr);
0026 int ksmbd_ipc_tree_disconnect_request(unsigned long long session_id,
0027 unsigned long long connect_id);
0028 int ksmbd_ipc_logout_request(const char *account, int flags);
0029 struct ksmbd_share_config_response *
0030 ksmbd_ipc_share_config_request(const char *name);
0031 struct ksmbd_spnego_authen_response *
0032 ksmbd_ipc_spnego_authen_request(const char *spnego_blob, int blob_len);
0033 int ksmbd_ipc_id_alloc(void);
0034 void ksmbd_rpc_id_free(int handle);
0035 struct ksmbd_rpc_command *ksmbd_rpc_open(struct ksmbd_session *sess, int handle);
0036 struct ksmbd_rpc_command *ksmbd_rpc_close(struct ksmbd_session *sess, int handle);
0037 struct ksmbd_rpc_command *ksmbd_rpc_write(struct ksmbd_session *sess, int handle,
0038 void *payload, size_t payload_sz);
0039 struct ksmbd_rpc_command *ksmbd_rpc_read(struct ksmbd_session *sess, int handle);
0040 struct ksmbd_rpc_command *ksmbd_rpc_ioctl(struct ksmbd_session *sess, int handle,
0041 void *payload, size_t payload_sz);
0042 struct ksmbd_rpc_command *ksmbd_rpc_rap(struct ksmbd_session *sess, void *payload,
0043 size_t payload_sz);
0044 void ksmbd_ipc_release(void);
0045 void ksmbd_ipc_soft_reset(void);
0046 int ksmbd_ipc_init(void);
0047 #endif