1 /* 2 * Copyright (C) 2018-2022 Intel Corporation. 3 * SPDX-License-Identifier: BSD-3-Clause 4 */ 5 6 #ifndef __VMRECORD_H__ 7 #define __VMRECORD_H__ 8 #include "pthread.h" 9 10 #define VMRECORD_HEAD_LINES 10 11 #define VMRECORD_TAG_LEN 9 12 #define VMRECORD_TAG_WAITING_SYNC " <==" 13 #define VMRECORD_TAG_NOT_FOUND "NOT_FOUND" 14 #define VMRECORD_TAG_MISS_LOG "MISS_LOGS" 15 #define VMRECORD_TAG_ON_GOING " ON_GOING" 16 #define VMRECORD_TAG_NO_RESOURCE "NO_RESORC" 17 #define VMRECORD_TAG_SUCCESS " " 18 19 enum vmrecord_mark_t { 20 SUCCESS, 21 NOT_FOUND, 22 WAITING_SYNC, 23 ON_GOING, 24 NO_RESRC, 25 MISS_LOG 26 }; 27 28 struct vmrecord_t { 29 char *path; 30 pthread_mutex_t mtx; 31 struct mm_file_t *recos; 32 }; 33 34 int vmrecord_last(struct vmrecord_t *vmrecord, const char *vm_name, 35 size_t nlen, char *vmkey, size_t ksize); 36 int vmrecord_mark(struct vmrecord_t *vmrecord, const char *vmkey, 37 size_t klen, enum vmrecord_mark_t type); 38 int vmrecord_open_mark(struct vmrecord_t *vmrecord, const char *vmkey, 39 size_t klen, enum vmrecord_mark_t type); 40 int vmrecord_gen_ifnot_exists(struct vmrecord_t *vmrecord); 41 int vmrecord_new(struct vmrecord_t *vmrecord, const char *vm_name, 42 const char *key); 43 44 45 #endif 46