--- freem/src/global_bltin.h 2025/01/19 02:04:04 1.1.1.1 +++ freem/src/global_bltin.h 2025/04/08 16:46:11 1.5 @@ -1,23 +1,11 @@ /* - * * - * * * - * * * - * *************** - * * * * * - * * MUMPS * - * * * * * - * *************** - * * * - * * * - * * - * - * global_bltin.h + * $Id: global_bltin.h,v 1.5 2025/04/08 16:46:11 snw Exp $ * built-in global handler header * * - * Author: Serena Willis + * Author: Serena Willis * 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. @@ -35,4 +23,64 @@ * You should have received a copy of the GNU Affero Public License * along with FreeM. If not, see . * + * $Log: global_bltin.h,v $ + * 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