162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * fs/hmdfs/hmdfs_server.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef HMDFS_SERVER_H
962306a36Sopenharmony_ci#define HMDFS_SERVER_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "hmdfs.h"
1262306a36Sopenharmony_ci#include "comm/transport.h"
1362306a36Sopenharmony_ci#include "comm/socket_adapter.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define DATA_SEC_LEVEL0 	0
1662306a36Sopenharmony_ci#define DATA_SEC_LEVEL1 	1
1762306a36Sopenharmony_ci#define DATA_SEC_LEVEL2 	2
1862306a36Sopenharmony_ci#define DATA_SEC_LEVEL3 	3
1962306a36Sopenharmony_ci#define DATA_SEC_LEVEL4 	4
2062306a36Sopenharmony_ci#define DATA_SEC_LEVEL_LABEL 	"user.security"
2162306a36Sopenharmony_ci#define DATA_SEC_LEVEL_LENGTH 	10
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistatic inline void hmdfs_send_err_response(struct hmdfs_peer *con,
2462306a36Sopenharmony_ci					   struct hmdfs_head_cmd *cmd, int err)
2562306a36Sopenharmony_ci{
2662306a36Sopenharmony_ci	if (hmdfs_sendmessage_response(con, cmd, 0, NULL, (__u32)err))
2762306a36Sopenharmony_ci		hmdfs_warning("send err failed");
2862306a36Sopenharmony_ci}
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_civoid hmdfs_server_open(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
3162306a36Sopenharmony_ci		       void *data);
3262306a36Sopenharmony_civoid hmdfs_server_atomic_open(struct hmdfs_peer *con,
3362306a36Sopenharmony_ci			      struct hmdfs_head_cmd *cmd, void *data);
3462306a36Sopenharmony_civoid hmdfs_server_fsync(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
3562306a36Sopenharmony_ci			void *data);
3662306a36Sopenharmony_civoid hmdfs_server_release(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
3762306a36Sopenharmony_ci			  void *data);
3862306a36Sopenharmony_civoid hmdfs_server_readpage(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
3962306a36Sopenharmony_ci			   void *data);
4062306a36Sopenharmony_civoid hmdfs_server_writepage(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
4162306a36Sopenharmony_ci			    void *data);
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_civoid hmdfs_server_readdir(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
4462306a36Sopenharmony_ci			  void *data);
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_civoid hmdfs_server_mkdir(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
4762306a36Sopenharmony_ci			void *data);
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_civoid hmdfs_server_create(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
5062306a36Sopenharmony_ci			 void *data);
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_civoid hmdfs_server_rmdir(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
5362306a36Sopenharmony_ci			void *data);
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_civoid hmdfs_server_unlink(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
5662306a36Sopenharmony_ci			 void *data);
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_civoid hmdfs_server_rename(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
5962306a36Sopenharmony_ci			 void *data);
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_civoid hmdfs_server_setattr(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
6262306a36Sopenharmony_ci			  void *data);
6362306a36Sopenharmony_civoid hmdfs_server_getattr(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
6462306a36Sopenharmony_ci			  void *data);
6562306a36Sopenharmony_civoid hmdfs_server_statfs(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
6662306a36Sopenharmony_ci			 void *data);
6762306a36Sopenharmony_civoid hmdfs_server_syncfs(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
6862306a36Sopenharmony_ci			 void *data);
6962306a36Sopenharmony_civoid hmdfs_server_getxattr(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
7062306a36Sopenharmony_ci			   void *data);
7162306a36Sopenharmony_civoid hmdfs_server_setxattr(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
7262306a36Sopenharmony_ci			   void *data);
7362306a36Sopenharmony_civoid hmdfs_server_listxattr(struct hmdfs_peer *con, struct hmdfs_head_cmd *cmd,
7462306a36Sopenharmony_ci			    void *data);
7562306a36Sopenharmony_civoid hmdfs_server_get_drop_push(struct hmdfs_peer *con,
7662306a36Sopenharmony_ci				struct hmdfs_head_cmd *cmd, void *data);
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_civoid __init hmdfs_server_add_node_evt_cb(void);
7962306a36Sopenharmony_ci#endif
80