--- testsuites/samples/utf32/utf32.h | 45 +-
1 file changed, 45 insertions(+), 0 deletion(-) create mode 100644 testsuites/samples/utf32/utf32.h diff --git a/testsuites/samples/utf32/utf32.h b/testsuites/samples/utf32/utf32.h index 83f6342ab3..5ebcdc9ef2 100644 --- /dev/null +++ b/testsuites/samples/utf32/utf32.h @@ -0,0 +1,45 @@ +/* + Copyright 2024 John Howard + All Rights Reserved. + CUBITS is a trademark of John Howard. + CUBITS means Capital, Underline, Bold, Italic, Texture, and Strike. + + This file is part of the RTEMS.org test suites samples. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +/* Unicode & ISO 10646-2012 character ranges 0..\UFFFFFFFF. */ +typedef int utf32; + +/* Convert UTF32 Big Endian and Little Endian v ranges 0..0xFFFFFFFF. */ +#define CONVERT_(v) ((((v) & 255) << 24) | ((((v) >> 8) & 255) << 16) | \ + ((((v) >> 16) & 255) << 8) | (((v) >> 24) & 255)) + +/* Set zero-based nth bit of v ranges 0..0xFFFFFFFF. n ranges 0..31. */ +#define SETBIT_(v,n) ((v) |= (1 << (n))) + +/* Unset zero-based nth bit of v ranges 0..0xFFFFFFFF. n ranges 0..31. */ +#define UNSETBIT_(v,n) ((v) &= ~(1 << (n))) + +/* Test zero-based nth bit of v ranges 0..0xFFFFFFFF. n ranges 0..31. */ +#define TESTBIT_(v,n) (((v) & (1 << (n))) != 0) + +/* Unicode & ISO 10646-2012 codepoint v ranges 0..0x10FFFF. */ +#define CODEPOINT_(v) ((v) &= 0x1FFFFF; (((v) > 0x10FFFF) ? ((v) & 0xFFFF) : (v)) + +/* CUBITS model: VGA, CGA, Custom, Texture, Cloudy, Glory, Shiny, Fiery. */ +#define SETMODEL_(v,m) ((v) |= ((m) << 21)) + +/* CUBITS Texture ranges 0..255: VGA color index, CGA text attributes. */ +#define SETTEXTURE_(v,m) ((v) |= ((m) << 24)) -- 2.42.0
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel