Annotation of freem/src/global_bltin.h, revision 1.5
1.1 snw 1: /*
1.5 ! snw 2: * $Id: global_bltin.h,v 1.4 2025/04/08 14:39:21 snw Exp $
1.1 snw 3: * built-in global handler header
4: *
5: *
1.2 snw 6: * Author: Serena Willis <snw@coherent-logic.com>
1.1 snw 7: * Copyright (C) 1998 MUG Deutschland
1.3 snw 8: * Copyright (C) 2020, 2025 Coherent Logic Development LLC
1.1 snw 9: *
10: *
11: * This file is part of FreeM.
12: *
13: * FreeM is free software: you can redistribute it and/or modify
14: * it under the terms of the GNU Affero Public License as published by
15: * the Free Software Foundation, either version 3 of the License, or
16: * (at your option) any later version.
17: *
18: * FreeM is distributed in the hope that it will be useful,
19: * but WITHOUT ANY WARRANTY; without even the implied warranty of
20: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21: * GNU Affero Public License for more details.
22: *
23: * You should have received a copy of the GNU Affero Public License
24: * along with FreeM. If not, see <https://www.gnu.org/licenses/>.
25: *
1.4 snw 26: * $Log: global_bltin.h,v $
1.5 ! snw 27: * Revision 1.4 2025/04/08 14:39:21 snw
! 28: * Initial work on global handler refactor
! 29: *
1.4 snw 30: * Revision 1.3 2025/03/09 19:14:25 snw
31: * First phase of REUSE compliance and header reformat
32: *
1.3 snw 33: *
34: * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC
35: * SPDX-License-Identifier: AGPL-3.0-or-later
1.1 snw 36: **/
1.4 snw 37:
38: #if !defined(__FREEM_GLOBAL_BLTIN_H)
39: # define __FREEM_GLOBAL_BLTIN_H
40:
1.5 ! snw 41: #include "version.h"
! 42:
! 43: #define GBL_FORMAT_VERSION 2
! 44: #define GBL_MAGIC "FRMGL"
! 45:
! 46: typedef struct global_header {
! 47:
! 48: char magic[5]; /* FRMGL */
! 49: int format_version;
! 50: char host_triplet[40];
! 51:
! 52: unsigned long block_size;
! 53: unsigned long last_transaction_id;
! 54:
! 55: long created;
! 56: long last_backup;
! 57:
! 58: } global_header;
! 59:
1.4 snw 60: typedef struct global_handle {
61:
62: int fd; /* file descriptor */
1.5 ! snw 63:
! 64: global_header header;
1.4 snw 65: long use_count; /* how many times has it been accessed? */
66: long age;
67: short opened;
68: short locked;
69: unsigned long last_block;
1.5 ! snw 70:
1.4 snw 71: short fast_path;
72:
73: char global_name[256];
74: char global_path[4096];
75:
76:
77: struct global_handle *next;
78:
79: } global_handle;
80:
81: extern global_handle *global_handles_head;
82:
83: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>