1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * fs/hmdfs/comm/node_cb.h 4 * 5 * Copyright (c) 2020-2021 Huawei Device Co., Ltd. 6 */ 7 8 #ifndef HMDFS_NODE_CB_H 9 #define HMDFS_NODE_CB_H 10 11 #include "hmdfs.h" 12 13 /* async & sync */ 14 #define NODE_EVT_TYPE_NR 2 15 16 enum { 17 NODE_EVT_ADD = 0, 18 NODE_EVT_ONLINE, 19 NODE_EVT_OFFLINE, 20 NODE_EVT_DEL, 21 NODE_EVT_NR, 22 }; 23 24 struct hmdfs_peer; 25 26 typedef void (*hmdfs_node_evt_cb)(struct hmdfs_peer *conn, 27 int evt, unsigned int seq); 28 29 struct hmdfs_node_cb_desc { 30 int evt; 31 bool sync; 32 hmdfs_node_evt_cb fn; 33 struct list_head list; 34 }; 35 36 extern void hmdfs_node_evt_cb_init(void); 37 38 /* Only initialize during module init */ 39 extern void hmdfs_node_add_evt_cb(struct hmdfs_node_cb_desc *desc, int nr); 40 extern void hmdfs_node_call_evt_cb(struct hmdfs_peer *node, int evt, bool sync, 41 unsigned int seq); 42 43 #endif /* HMDFS_NODE_CB_H */ 44