comparison src/opaque.h @ 442:abe6d1db359e r21-2-36

Import from CVS: tag r21-2-36
author cvs
date Mon, 13 Aug 2007 11:35:02 +0200
parents 8de8e3f6228a
children d7a9135ec789
comparison
equal deleted inserted replaced
441:72a7cfa4a488 442:abe6d1db359e
24 /* Written by Ben Wing, October 1993. */ 24 /* Written by Ben Wing, October 1993. */
25 25
26 #ifndef INCLUDED_opaque_h_ 26 #ifndef INCLUDED_opaque_h_
27 #define INCLUDED_opaque_h_ 27 #define INCLUDED_opaque_h_
28 28
29 typedef union { 29 typedef union
30 {
30 struct { Lisp_Object obj; } obj; 31 struct { Lisp_Object obj; } obj;
31 struct { void *p; } p; 32 struct { void *p; } p;
32 struct { double d; } d; 33 struct { double d; } d;
33 } max_align_t; 34 } max_align_t;
34 35
46 /* #define CHECK_OPAQUE(x) CHECK_RECORD (x, opaque) 47 /* #define CHECK_OPAQUE(x) CHECK_RECORD (x, opaque)
47 Opaque pointers should never escape to the Lisp level, so 48 Opaque pointers should never escape to the Lisp level, so
48 functions should not be doing this. */ 49 functions should not be doing this. */
49 50
50 /* Alternative DATA arguments to make_opaque() */ 51 /* Alternative DATA arguments to make_opaque() */
51 #define OPAQUE_CLEAR ((CONST void *) 0) 52 #define OPAQUE_CLEAR ((const void *) 0)
52 #define OPAQUE_UNINIT ((CONST void *) -1) 53 #define OPAQUE_UNINIT ((const void *) -1)
53 54
54 #define OPAQUE_SIZE(op) ((op)->size) 55 #define OPAQUE_SIZE(op) ((op)->size)
55 #define OPAQUE_DATA(op) ((void *) ((op)->data)) 56 #define OPAQUE_DATA(op) ((void *) ((op)->data))
56 #define OPAQUE_MARKFUN(op) ((op)->markfun) 57 #define OPAQUE_MARKFUN(op) ((op)->markfun)
57 #define XOPAQUE_SIZE(op) OPAQUE_SIZE (XOPAQUE (op)) 58 #define XOPAQUE_SIZE(op) OPAQUE_SIZE (XOPAQUE (op))
58 #define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op)) 59 #define XOPAQUE_DATA(op) OPAQUE_DATA (XOPAQUE (op))
59 #define XOPAQUE_MARKFUN(op) OPAQUE_MARKFUN (XOPAQUE (op)) 60 #define XOPAQUE_MARKFUN(op) OPAQUE_MARKFUN (XOPAQUE (op))
60 61
61 Lisp_Object make_opaque (CONST void *data, size_t size); 62 Lisp_Object make_opaque (const void *data, size_t size);
62 63
63 typedef struct Lisp_Opaque_Ptr 64 typedef struct Lisp_Opaque_Ptr
64 { 65 {
65 struct lcrecord_header header; 66 struct lcrecord_header header;
66 void *ptr; 67 void *ptr;