/usr/include/sphde/sasmsync.h is in libsphde-dev 1.3.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | /*
* Copyright (c) 2009-2014 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation, Steven Munroe - initial API and implementation
*/
#ifndef __SAS_MSYNC_H
#define __SAS_MSYNC_H
/**! \file sasmsync.h
* \brief API to manage the resources of the Shared Address Space.
*
* Manage the real memory and persistent state of the backing files
* associated with the SAS Region.
*
**/
/** \brief SAS msync asynchronous option. **/
#define SAS_ASYNC 1
/** \brief SAS msync synchronous option. **/
#define SAS_SYNC 0
/** \brief ignore this macro behind the curtain **/
#ifdef __cplusplus
#define __C__ "C"
#else
#define __C__
#endif
/** \brief Write a range of pages to persistent storage and inform the
* kernel that those pages can be removed from real memory.
*
* Write (msync) any changed pages in range then mark all pages in range
* MADV_DONTNEED.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @param asyncBool Flag for asynchronous action if true.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncPurge(void *startAddr, size_t size, int asyncBool);
/** \brief Inform the kernel that those pages can be removed from
* real memory.
*
* Mark all pages in range MADV_DONTNEED.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncRelease(void *startAddr, size_t size);
/** \brief Inform the kernel that those pages will be needed soon.
*
* Mark all pages in range MADV_WILLNEED.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncBring(void *startAddr, size_t size);
/** \brief Inform the kernel that those pages will be needed soon
* and will be accessed in sequential order.
*
* Mark all pages in range MADV_SEQUENTIAL.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncSequential(void *startAddr, size_t size);
/** \brief Inform the kernel that those pages will be needed soon
* and will be accessed in random order.
*
* Mark all pages in range MADV_RANDOM.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncRandom(void *startAddr, size_t size);
/** \brief Write a range of pages to persistent storage.
*
* Write (msync) any changed pages in range.
*
* @param startAddr starting address of the purge range.
* @param size of the purge range.
* @param asyncBool Flag for asynchronous action if true.
* @return Zero on success and ERRNO otherwise.
*/
extern __C__ int sasMsyncWrite(void *startAddr, size_t size, int asyncBool);
#endif
|