From ec919868544f69fe5a212da4d4ace8b53485ed41 Mon Sep 17 00:00:00 2001 From: Vincent Wei Date: Wed, 22 Jan 2020 17:01:42 +0800 Subject: [PATCH] add inline functions for get shm/sem key for system/layer --- src/include/sharedres.h | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/src/include/sharedres.h b/src/include/sharedres.h index 9c105178..766f5f67 100644 --- a/src/include/sharedres.h +++ b/src/include/sharedres.h @@ -11,35 +11,35 @@ // ////////////////////////////////////////////////////////////////////////////// /* - * This file is part of MiniGUI, a mature cross-platform windowing + * This file is part of MiniGUI, a mature cross-platform windowing * and Graphics User Interface (GUI) support system for embedded systems * and smart IoT devices. - * + * * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. * Copyright (C) 1998~2002, WEI Yongming - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * + * * Or, - * + * * As this program is a library, any link to this program must follow * GNU General Public License version 3 (GPLv3). If you cannot accept * GPLv3, you need to be licensed from FMSoft. - * + * * If you have got a commercial license of this program, please use it * under the terms and conditions of the commercial license. - * + * * For more information about the commercial license, please refer to * . */ @@ -70,6 +70,24 @@ enum { _NR_SEM }; +// key base for System V IPC +#define IPC_KEY_BASE 0x464D4700 + +inline static key_t get_shm_key_for_system (void) +{ + return (key_t)(IPC_KEY_BASE + 0x01); +} + +inline static key_t get_sem_key_for_system (void) +{ + return (key_t)(IPC_KEY_BASE + 0x02); +} + +inline static key_t get_sem_key_for_layers (void) +{ + return (key_t)(IPC_KEY_BASE + 0x03); +} + typedef struct tagG_RES { int semid; int shmid; @@ -95,7 +113,7 @@ typedef struct tagG_RES { int mousebutton; int shiftstatus; Uint8 kbd_state [MGUI_NR_KEYS + 1]; - + #ifdef _MGHAVE_CURSOR int cursorx, cursory; int oldboxleft, oldboxtop;