diff --git a/include/lber_pvt.h b/include/lber_pvt.h index 7f5a141e1f..564978ed0b 100644 --- a/include/lber_pvt.h +++ b/include/lber_pvt.h @@ -21,6 +21,22 @@ LDAP_BEGIN_DECL +/* for allocating aligned buffers (on the stack) */ +#define LBER_ALIGNED_BUFFER(uname,size) \ + union uname { \ + char buffer[size]; \ + /* force alignment */ \ + int ialign; \ + long lalign; \ + float falign; \ + double dalign; \ + char* palign; \ + } + +#define LBER_ELEMENT_SIZEOF (256) /* must be >= sizeof(BerElement) */ +typedef LBER_ALIGNED_BUFFER(lber_berelement_u,LBER_ELEMENT_SIZEOF) + BerElementBuffer; + typedef struct sockbuf_buf { ber_len_t buf_size; ber_len_t buf_ptr;