mariadb/storage/innobase/include/cache.h
Marko Mäkelä 720a0f6c78 MDEV-33447 fixup for POWER 8
pmem_phwsync(): The implementation for POWER ISA v3.1 that is
compatible with libpmem.

pmem_fence(): A dummy implementation for older ISA. While such systems
are unlikely to support MAP_SYNC memory mappings, this could be useful
when running tests with memory-mapped /dev/shm/*/ib_logfile0
(the "fake PMEM"), to ensure that mariadb-backup will be able to
read the latest redo log contents.

pmem_persist_init(): Check the availability of POWER ISA v3.1.
Thanks to Daniel Black for suggesting this.
2024-04-24 12:39:30 +03:00

33 lines
1.1 KiB
C++

/*****************************************************************************
Copyright (c) 2024, MariaDB plc
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; version 2 of the License.
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, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
*****************************************************************************/
#pragma once
#include <cstddef>
#if defined __x86_64__ || defined __aarch64__ || defined __powerpc64__
struct pmem_control
{
void (*persist)(const void *, size_t);
public:
pmem_control();
};
extern const pmem_control pmem;
# define pmem_persist(buf, size) pmem.persist(buf, size)
#else
void pmem_persist(const void *buf, size_t size);
#endif