Removed empty file genio.h and references to it.
[bpt/guile.git] / libguile / mallocs.c
CommitLineData
1bbd0b84
GB
1/* classes: src_files
2 * Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
0f2d19dd
JB
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2, or (at your option)
7 * any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this software; see the file COPYING. If not, write to
82892bed
JB
16 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
17 * Boston, MA 02111-1307 USA */
0f2d19dd 18
1bbd0b84
GB
19/* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
20 gjb@cs.washington.edu, http://www.cs.washington.edu/homes/gjb */
21
22
0f2d19dd
JB
23\f
24
25#include <stdio.h>
26#include "_scm.h"
20e6290e
JB
27#include "smob.h"
28
0f2d19dd 29#include "mallocs.h"
20e6290e 30
0f2d19dd 31#ifdef HAVE_MALLOC_H
95b88819 32#include <malloc.h>
0f2d19dd
JB
33#endif
34#ifdef HAVE_UNISTD_H
95b88819 35#include <unistd.h>
0f2d19dd
JB
36#endif
37
38
39\f
40
41
1cc91f1b 42
0f2d19dd 43static scm_sizet
1bbd0b84 44fmalloc(SCM ptr)
0f2d19dd
JB
45{
46 if (SCM_MALLOCDATA (ptr))
47 free (SCM_MALLOCDATA (ptr));
48 return 0;
49}
50
1cc91f1b 51
0f2d19dd 52static int
1bbd0b84 53prinmalloc (SCM exp,SCM port,scm_print_state *pstate)
0f2d19dd 54{
b7f3516f 55 scm_puts("#<malloc ", port);
c209c88e 56 scm_intprint((int) SCM_CDR(exp), 16, port);
b7f3516f 57 scm_putc('>', port);
0f2d19dd
JB
58 return 1;
59}
60
61\f
62int scm_tc16_malloc;
0f2d19dd
JB
63\f
64
1cc91f1b 65
0f2d19dd 66SCM
6e8d25a6 67scm_malloc_obj (scm_sizet n)
0f2d19dd 68{
0f2d19dd
JB
69 SCM mem;
70
0f2d19dd
JB
71 mem = (n
72 ? (SCM)malloc (n)
73 : 0);
74 if (n && !mem)
75 {
76 SCM_ALLOW_INTS;
77 return SCM_BOOL_F;
78 }
23a62151 79 SCM_RETURN_NEWSMOB (scm_tc16_malloc, mem);
0f2d19dd
JB
80}
81
82
83\f
1cc91f1b 84
0f2d19dd
JB
85void
86scm_init_mallocs ()
0f2d19dd 87{
23a62151
MD
88 scm_tc16_malloc = scm_make_smob_type_mfpe ("malloc", 0,
89 NULL, fmalloc, prinmalloc, NULL);
0f2d19dd 90}