/* ************************************************************************* */ /* * * */ /* * HPE CONFIDENTIAL. This software is confidential proprietary software * */ /* * licensed by Hewlett Packard Enterprise Development, LP, and is not * */ /* * authorized to be used, duplicated or disclosed to anyone without the * */ /* * prior written permission of HPE. * */ /* * Copyright 2017 Hewlett Packard Enterprise Development, LP * */ /* * * */ /* * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential * */ /* * proprietary software licensed by VMS Software, Inc., and is not * */ /* * authorized to be used, duplicated or disclosed to anyone without * */ /* * the prior written permission of VMS Software, Inc. * */ /* * Copyright 2017 VMS Software, Inc. * */ /* * * */ /* ************************************************************************* */ /*++ * FACILITY: * * VMS Executive (SYS) * * ABSTRACT: * * This module contains definitions for the compatibility * routines for the Alpha unprivileged queue PALcode instructions. * * AUTHOR: * * Dennis Mattoon * * CREATION DATE: * * 06-JUN-2002 * * MODIFICATION HISTORY: * * X-7 CEG0145 Clair Grant 15-May-2017 * Fix comment mismatch. * * X-6 CEG0144 Clair Grant 15-May-2017 * Verified conditional for x86 port. * Updated copyright to VSI. * * X-5 DJM Dennis Mattoon 20-NOV-2002 * Moved more symbol definitions and typedefs over to * sys_pal_qinst.c. The symbols and struct defs do not * need to be availble globaly. They are only used by * the queue instruction system service routines. * * X-4 DJM Dennis Mattoon 15-NOV-2002 * Moved QINST$L_GLOBAL and QINST$Q_GLOBAL declarations * out of this module and into SYS_PAL_QINST.C to avoid * "multiply defined" linker warnings... * * * X-3 DJM Dennis Mattoon 12-NOV-2002 * Redefined memory-resident self-relative queue * instruction builtins to point at corresponding * non-resident versions. See comment below for * more details. * * X-2 DJM Dennis Mattoon 05-NOV-2002 * Removed Alpha specific code (queue system services * are now IA64 only) and fixed some status values * that did not match the original PALcode definition. * * X-1 DJM Dennis Mattoon 06-JUN-2002 * Original version. * *-- */ #ifndef __SYS_PAL_QINST_LOADED #define __SYS_PAL_QINST_LOADED 1 /* The following memory-resident PALcode routines are redefined as */ /* the resident versions of the self-relative queue instructions. */ /* They get redefined because we are unable to safely implement */ /* system service routines that emulate their behaviour exactly. */ /* This is because we have to make sure that isertions and removals */ /* to and from queues are non-interruptable. To ensure this we have */ /* to execute in kernel mode at elevated IPL. If we're callable */ /* from user mode and executing at high ipl we MUST make sure that */ /* we do not incur any memory management exceptons. In order to */ /* do this we have to make certain alignment and memory management */ /* checks, thus negating the whole purpose of executing the memory */ /* resident version of any queue instruction in the first place. */ #if defined(__ia64) || defined(__x86_64) #define __PAL_INSQHILR __PAL_INSQHIL #define __PAL_INSQTILR __PAL_INSQTIL #define __PAL_REMQHILR __PAL_REMQHIL #define __PAL_REMQTILR __PAL_REMQTIL #define __PAL_INSQHIQR __PAL_INSQHIQ #define __PAL_INSQTIQR __PAL_INSQTIQ #define __PAL_REMQHIQR __PAL_REMQHIQ #define __PAL_REMQTIQR __PAL_REMQTIQ #endif #endif /* __SYS_PAL_QINST_H */