]> git.saurik.com Git - apple/xnu.git/blame - bsd/dev/random/YarrowCoreLib/src/smf.h
xnu-792.12.6.tar.gz
[apple/xnu.git] / bsd / dev / random / YarrowCoreLib / src / smf.h
CommitLineData
0b4e3aa0 1/*
8ad349bb 2 * Copyright (c) 2006 Apple Computer, Inc. All Rights Reserved.
0b4e3aa0 3 *
8ad349bb 4 * @APPLE_LICENSE_OSREFERENCE_HEADER_START@
0b4e3aa0 5 *
8ad349bb
A
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the
10 * License may not be used to create, or enable the creation or
11 * redistribution of, unlawful or unlicensed copies of an Apple operating
12 * system, or to circumvent, violate, or enable the circumvention or
13 * violation of, any terms of an Apple operating system software license
14 * agreement.
15 *
16 * Please obtain a copy of the License at
17 * http://www.opensource.apple.com/apsl/ and read it before using this
18 * file.
19 *
20 * The Original Code and all software distributed under the License are
21 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
22 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
23 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
25 * Please see the License for the specific language governing rights and
26 * limitations under the License.
27 *
28 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
0b4e3aa0
A
29 */
30
31/*
32 File: smf.h
33
34 Contains: Secure malloc/free API.
35
36 Written by: Doug Mitchell
37
38 Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved.
39
40 Change History (most recent first):
41
42 02/10/00 dpm Created, based on Counterpane's Yarrow code.
43
44*/
45
46#ifndef _YARROW_SMF_H_
47#define _YARROW_SMF_H_
48
49#if defined(__cplusplus)
50extern "C" {
51#endif
52
53/* smf.h */
54
55 /*
56 Header file for secure malloc and free routines used by the Counterpane
57 PRNG. Use this code to set up a memory-mapped file out of the system
58 paging file, allocate and free memory from it, and then return
59 the memory to the system registry after having securely overwritten it.
60 Details of the secure overwrite can be found in Gutmann 1996 (Usenix).
61 Trying to explain it here will cause my head to begin to hurt.
62 Ari Benbasat (pigsfly@unixg.ubc.ca)
63 */
64
65
66
67#if defined(macintosh) || defined(__APPLE__)
68#include "macOnly.h"
69#define MMPTR void *
70
71#ifndef SMFAPI
72#define SMFAPI
73#endif
74
75#else /* original Yarrow */
76
77/* Declare HOOKSAPI as __declspec(dllexport) before
78 including this file in the actual DLL */
79#ifndef SMFAPI
80#define SMFAPI __declspec(dllimport)
81#endif
82#define MMPTR BYTE
83
84#endif /* macintosh */
85
86
87#define MM_NULL 0
88
89/* Function forward declarations */
91447636 90SMFAPI void mmInit( void );
0b4e3aa0
A
91SMFAPI MMPTR mmMalloc(DWORD request);
92SMFAPI void mmFree(MMPTR ptrnum);
93SMFAPI LPVOID mmGetPtr(MMPTR ptrnum);
94SMFAPI void mmReturnPtr(MMPTR ptrnum);
95#if 0
96SMFAPI void mmFreePtr(LPVOID ptr);
97#endif
98
99#if defined(__cplusplus)
100}
101#endif
102
103#endif /* _YARROW_SMF_H_*/