Mercurial > hg > xemacs-beta
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; |