From: Jelmer Vernooij Date: Fri, 25 Jun 2010 19:51:23 +0000 (+0200) Subject: Move UCS2 macros to common code X-Git-Tag: samba-3.6.0pre1~708 X-Git-Url: http://git.samba.org/samba.git/?p=kai%2Fsamba-autobuild%2F.git;a=commitdiff_plain;h=e40afe975accd8199ffe54ea9f3c4dedd02edb02 Move UCS2 macros to common code --- diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h index cc57b3eb542..68907aa5930 100644 --- a/lib/util/charset/charset.h +++ b/lib/util/charset/charset.h @@ -39,6 +39,29 @@ typedef enum {CH_UTF16LE=0, CH_UTF16=0, CH_UNIX, CH_DISPLAY, CH_DOS, CH_UTF8, CH typedef uint16_t smb_ucs2_t; +/* + * SMB UCS2 (16-bit unicode) internal type. + * smb_ucs2_t is *always* in little endian format. + */ + +#ifdef WORDS_BIGENDIAN +#define UCS2_SHIFT 8 +#else +#define UCS2_SHIFT 0 +#endif + +/* turn a 7 bit character into a ucs2 character */ +#define UCS2_CHAR(c) ((c) << UCS2_SHIFT) + +/* return an ascii version of a ucs2 character */ +#define UCS2_TO_CHAR(c) (((c) >> UCS2_SHIFT) & 0xff) + +/* Copy into a smb_ucs2_t from a possibly unaligned buffer. Return the copied smb_ucs2_t */ +#define COPY_UCS2_CHAR(dest,src) (((unsigned char *)(dest))[0] = ((unsigned char *)(src))[0],\ + ((unsigned char *)(dest))[1] = ((unsigned char *)(src))[1], (dest)) + + + /* * for each charset we have a function that pulls from that charset to * a ucs2 buffer, and a function that pushes to a ucs2 buffer diff --git a/source3/include/smb.h b/source3/include/smb.h index 3cbd0c082dc..defecd7c88a 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -144,27 +144,6 @@ typedef union unid_t { gid_t gid; } unid_t; -/* - * SMB UCS2 (16-bit unicode) internal type. - * smb_ucs2_t is *always* in little endian format. - */ - -#ifdef WORDS_BIGENDIAN -#define UCS2_SHIFT 8 -#else -#define UCS2_SHIFT 0 -#endif - -/* turn a 7 bit character into a ucs2 character */ -#define UCS2_CHAR(c) ((c) << UCS2_SHIFT) - -/* return an ascii version of a ucs2 character */ -#define UCS2_TO_CHAR(c) (((c) >> UCS2_SHIFT) & 0xff) - -/* Copy into a smb_ucs2_t from a possibly unaligned buffer. Return the copied smb_ucs2_t */ -#define COPY_UCS2_CHAR(dest,src) (((unsigned char *)(dest))[0] = ((unsigned char *)(src))[0],\ - ((unsigned char *)(dest))[1] = ((unsigned char *)(src))[1], (dest)) - /* pipe string names */ #define PIPE_LANMAN "\\PIPE\\LANMAN"