VirtualBox

source: vbox/trunk/src/VBox/Runtime/win/amd64/ASMAtomicBitTestAndToggle.asm@ 106061

Last change on this file since 106061 was 106061, checked in by vboxsync, 3 months ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 2.0 KB
Line 
1;; @file
2; IPRT - ASMAtomicBitTestAndToggle().
3;
4
5;
6; Copyright (C) 2006-2024 Oracle and/or its affiliates.
7;
8; This file is part of VirtualBox base platform packages, as
9; available from https://www.virtualbox.org.
10;
11; This program is free software; you can redistribute it and/or
12; modify it under the terms of the GNU General Public License
13; as published by the Free Software Foundation, in version 3 of the
14; License.
15;
16; This program is distributed in the hope that it will be useful, but
17; WITHOUT ANY WARRANTY; without even the implied warranty of
18; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19; General Public License for more details.
20;
21; You should have received a copy of the GNU General Public License
22; along with this program; if not, see <https://www.gnu.org/licenses>.
23;
24; The contents of this file may alternatively be used under the terms
25; of the Common Development and Distribution License Version 1.0
26; (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
27; in the VirtualBox distribution, in which case the provisions of the
28; CDDL are applicable instead of those of the GPL.
29;
30; You may elect to license modified versions of this file under the
31; terms and conditions of either the GPL or the CDDL or both.
32;
33; SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
34;
35
36
37;*******************************************************************************
38;* Header Files *
39;*******************************************************************************
40%include "iprt/asmdefs.mac"
41
42BEGINCODE
43
44;;
45; Atomically tests and toggles a bit in a bitmap.
46;
47; @returns al(rax) true if the bit was set.
48; @returns al(rax) false if the bit was clear.
49; @param rcx pvBitmap Pointer to the bitmap.
50; @param edx iBit The bit to test and toggle.
51RT_BEGINPROC ASMAtomicBitTestAndToggle
52 lock btc [rcx], edx
53 sbb eax, eax
54 ret
55ENDPROC ASMAtomicBitTestAndToggle
56
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette