/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
 |