|
|
| version 1.2, 2025/03/09 15:20:18 | version 1.5, 2025/04/08 16:46:11 |
|---|---|
| Line 1 | Line 1 |
| /* | /* |
| * * | * $Id$ |
| * * * | |
| * * * | |
| * *************** | |
| * * * * * | |
| * * MUMPS * | |
| * * * * * | |
| * *************** | |
| * * * | |
| * * * | |
| * * | |
| * | |
| * global_bltin.h | |
| * built-in global handler header | * built-in global handler header |
| * | * |
| * | * |
| * Author: Serena Willis <snw@coherent-logic.com> | * Author: Serena Willis <snw@coherent-logic.com> |
| * Copyright (C) 1998 MUG Deutschland | * Copyright (C) 1998 MUG Deutschland |
| * Copyright (C) 2020 Coherent Logic Development LLC | * Copyright (C) 2020, 2025 Coherent Logic Development LLC |
| * | * |
| * | * |
| * This file is part of FreeM. | * This file is part of FreeM. |
| Line 35 | Line 23 |
| * You should have received a copy of the GNU Affero Public License | * You should have received a copy of the GNU Affero Public License |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | |
| * Revision 1.5 2025/04/08 16:46:11 snw | |
| * Add global file header and offsets | |
| * | |
| * Revision 1.4 2025/04/08 14:39:21 snw | |
| * Initial work on global handler refactor | |
| * | |
| * Revision 1.3 2025/03/09 19:14:25 snw | |
| * First phase of REUSE compliance and header reformat | |
| * | |
| * | |
| * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC | |
| * SPDX-License-Identifier: AGPL-3.0-or-later | |
| **/ | **/ |
| #if !defined(__FREEM_GLOBAL_BLTIN_H) | |
| # define __FREEM_GLOBAL_BLTIN_H | |
| #include "version.h" | |
| #define GBL_FORMAT_VERSION 2 | |
| #define GBL_MAGIC "FRMGL" | |
| typedef struct global_header { | |
| char magic[5]; /* FRMGL */ | |
| int format_version; | |
| char host_triplet[40]; | |
| unsigned long block_size; | |
| unsigned long last_transaction_id; | |
| long created; | |
| long last_backup; | |
| } global_header; | |
| typedef struct global_handle { | |
| int fd; /* file descriptor */ | |
| global_header header; | |
| long use_count; /* how many times has it been accessed? */ | |
| long age; | |
| short opened; | |
| short locked; | |
| unsigned long last_block; | |
| short fast_path; | |
| char global_name[256]; | |
| char global_path[4096]; | |
| struct global_handle *next; | |
| } global_handle; | |
| extern global_handle *global_handles_head; | |
| #endif |