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