Enhancements/Bugs closed WW52!
Stephen Jolley
All,
Thanks,
Stephen K. Jolley Yocto Project Program Manager ( Cell: (208) 244-4460 * Email: sjolley.yp.pm@...
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Current high bug count owners for Yocto Project 3.5
Stephen Jolley
All,
Thanks,
Stephen K. Jolley Yocto Project Program Manager ( Cell: (208) 244-4460 * Email: sjolley.yp.pm@...
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yocto Project Newcomer & Unassigned Bugs - Help Needed
Stephen Jolley
All,
The triage team is starting to try and collect up and classify bugs which a newcomer to the project would be able to work on in a way which means people can find them. They're being listed on the triage page under the appropriate heading: https://wiki.yoctoproject.org/wiki/Bug_Triage#Newcomer_Bugs Also please review: https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded and how to create a bugzilla account at: https://bugzilla.yoctoproject.org/createaccount.cgi The idea is these bugs should be straight forward for a person to help work on who doesn't have deep experience with the project. If anyone can help, please take ownership of the bug and send patches! If anyone needs help/advice there are people on irc who can likely do so, or some of the more experienced contributors will likely be happy to help too.
Also, the triage team meets weekly and does its best to handle the bugs reported into the Bugzilla. The number of people attending that meeting has fallen, as have the number of people available to help fix bugs. One of the things we hear users report is they don't know how to help. We (the triage team) are therefore going to start reporting out the currently 393 unassigned or newcomer bugs.
We're hoping people may be able to spare some time now and again to help out with these. Bugs are split into two types, "true bugs" where things don't work as they should and "enhancements" which are features we'd want to add to the system. There are also roughly four different "priority" classes right now, “3.4”, “3.5, "3.99" and "Future", the more pressing/urgent issues being in "3.4" and then “3.5”.
Please review this link and if a bug is something you would be able to help with either take ownership of the bug, or send me (sjolley.yp.pm@...) an e-mail with the bug number you would like and I will assign it to you (please make sure you have a Bugzilla account). The list is at: https://wiki.yoctoproject.org/wiki/Bug_Triage_Archive#Unassigned_or_Newcomer_Bugs
Thanks,
Stephen K. Jolley Yocto Project Program Manager ( Cell: (208) 244-4460 * Email: sjolley.yp.pm@...
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Fetch of shared-mime-info and shared-mime-info-native never finishes.
Howard
Ok so for some reason the repo for shared-mime-info is offline. I just ran a simple git clone of:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Fetch of shared-mime-info and shared-mime-info-native never finishes.
Howard
I should point out that nothing changed on my end and this was all building fine Friday Dec 24, and now it does not build on Monday Dec 27.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fetch of shared-mime-info and shared-mime-info-native never finishes.
Howard
Hi:
This just started happening today. Both shared-mime-info-native-1.15-r0 do_fetch and shared-mime-info-1.15-r0 do_fetch Never complete. Bitbake completes all other non-dependant recipes, leaving the 2 above to go forever, but never finish. Anybody else seeing this? Is this a case of a remote repo not functioning properly? Thanks Howard
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[meta-security][PATCH 2/2] packagegroup-security-tpm2: drop ibmswtpm2
ibmswtpm2 has not been ported to openssl 3
Signed-off-by: Armin Kuster <akuster808@...> --- meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb b/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb index 764b2e5..b8324e5 100644 --- a/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb +++ b/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb @@ -18,5 +18,4 @@ RDEPENDS:packagegroup-security-tpm2 = " \ libtss2-tcti-mssim \ tpm2-abrmd \ tpm2-pkcs11 \ - ibmswtpm2 \ " -- 2.25.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[meta-security][PATCH 1/2] tpm2-pkcs11: backport openssl 3.x build fixes
bump to tip of current sources.
Signed-off-by: Armin Kuster <akuster808@...> --- .../0001-ssl-compile-against-OSSL-3.0.patch | 1305 +++++++++++++++++ ...ssl-require-version-1.1.0-or-greater.patch | 93 ++ .../tpm2-pkcs11/tpm2-pkcs11_1.7.0.bb | 4 +- 3 files changed, 1401 insertions(+), 1 deletion(-) create mode 100644 meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0001-ssl-compile-against-OSSL-3.0.patch create mode 100644 meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0002-ossl-require-version-1.1.0-or-greater.patch diff --git a/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0001-ssl-compile-against-OSSL-3.0.patch b/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0001-ssl-compile-against-OSSL-3.0.patch new file mode 100644 index 0000000..ac2f92c --- /dev/null +++ b/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0001-ssl-compile-against-OSSL-3.0.patch @@ -0,0 +1,1305 @@ +From f7a2e90e80fd8b4c43042f8099e821b4118234d1 Mon Sep 17 00:00:00 2001 +From: William Roberts <william.c.roberts@...> +Date: Fri, 3 Sep 2021 11:24:40 -0500 +Subject: [PATCH 1/2] ssl: compile against OSSL 3.0 + +Compile against OpenSSL. This moves functions non-deprecated things if +possible and ignores deprecation warnings when not. Padding manipulation +routines seem to have been marked deprecated in OSSL 3.0, so we need to +figure out a porting strategy here. + +Fixes: #686 + +Signed-off-by: William Roberts <william.c.roberts@...> + +Upstream-Status: Backport +Signed-off-by: Armin Kuster <akuster808@...> + +--- + src/lib/backend_esysdb.c | 5 +- + src/lib/backend_fapi.c | 5 +- + src/lib/encrypt.c | 2 +- + src/lib/mech.c | 72 +--- + src/lib/object.c | 3 +- + src/lib/sign.c | 2 +- + src/lib/ssl_util.c | 531 ++++++++++++++++-------- + src/lib/ssl_util.h | 31 +- + src/lib/tpm.c | 6 +- + src/lib/utils.c | 35 +- + src/lib/utils.h | 13 - + test/integration/pkcs-sign-verify.int.c | 94 ++--- + 12 files changed, 441 insertions(+), 358 deletions(-) + +Index: git/src/lib/backend_esysdb.c +=================================================================== +--- git.orig/src/lib/backend_esysdb.c ++++ git/src/lib/backend_esysdb.c +@@ -3,6 +3,7 @@ + #include "config.h" + #include "backend_esysdb.h" + #include "db.h" ++#include "ssl_util.h" + #include "tpm.h" + + CK_RV backend_esysdb_init(void) { +@@ -308,7 +309,7 @@ CK_RV backend_esysdb_token_unseal_wrappi + } + + twist sealsalt = user ? sealobj->userauthsalt : sealobj->soauthsalt; +- twist sealobjauth = utils_hash_pass(tpin, sealsalt); ++ twist sealobjauth = ssl_util_hash_pass(tpin, sealsalt); + if (!sealobjauth) { + rv = CKR_HOST_MEMORY; + goto error; +@@ -372,7 +373,7 @@ CK_RV backend_esysdb_token_changeauth(to + */ + twist oldsalt = !user ? tok->esysdb.sealobject.soauthsalt : tok->esysdb.sealobject.userauthsalt; + +- twist oldauth = utils_hash_pass(toldpin, oldsalt); ++ twist oldauth = ssl_util_hash_pass(toldpin, oldsalt); + if (!oldauth) { + goto out; + } +Index: git/src/lib/backend_fapi.c +=================================================================== +--- git.orig/src/lib/backend_fapi.c ++++ git/src/lib/backend_fapi.c +@@ -11,6 +11,7 @@ + #include "backend_fapi.h" + #include "emitter.h" + #include "parser.h" ++#include "ssl_util.h" + #include "utils.h" + + #ifdef HAVE_FAPI +@@ -793,7 +794,7 @@ CK_RV backend_fapi_token_unseal_wrapping + } + + twist sealsalt = user ? tok->fapi.userauthsalt : tok->fapi.soauthsalt; +- twist sealobjauth = utils_hash_pass(tpin, sealsalt); ++ twist sealobjauth = ssl_util_hash_pass(tpin, sealsalt); + if (!sealobjauth) { + rv = CKR_HOST_MEMORY; + goto error; +@@ -889,7 +890,7 @@ CK_RV backend_fapi_token_changeauth(toke + } + rv = CKR_GENERAL_ERROR; + +- oldauth = utils_hash_pass(toldpin, user ? tok->fapi.userauthsalt : tok->fapi.soauthsalt); ++ oldauth = ssl_util_hash_pass(toldpin, user ? tok->fapi.userauthsalt : tok->fapi.soauthsalt); + if (!oldauth) { + goto out; + } +Index: git/src/lib/encrypt.c +=================================================================== +--- git.orig/src/lib/encrypt.c ++++ git/src/lib/encrypt.c +@@ -59,7 +59,7 @@ void encrypt_op_data_free(encrypt_op_dat + CK_RV sw_encrypt_data_init(mdetail *mdtl, CK_MECHANISM *mechanism, tobject *tobj, sw_encrypt_data **enc_data) { + + EVP_PKEY *pkey = NULL; +- CK_RV rv = ssl_util_tobject_to_evp(&pkey, tobj); ++ CK_RV rv = ssl_util_attrs_to_evp(tobj->attrs, &pkey); + if (rv != CKR_OK) { + return rv; + } +Index: git/src/lib/mech.c +=================================================================== +--- git.orig/src/lib/mech.c ++++ git/src/lib/mech.c +@@ -693,7 +693,7 @@ CK_RV ecc_keygen_validator(mdetail *m, C + } + + int nid = 0; +- CK_RV rv = ec_params_to_nid(a, &nid); ++ CK_RV rv = ssl_util_params_to_nid(a, &nid); + if (rv != CKR_OK) { + return rv; + } +@@ -857,11 +857,11 @@ CK_RV rsa_pkcs_synthesizer(mdetail *mdtl + } + + /* Apply the PKCS1.5 padding */ +- int rc = RSA_padding_add_PKCS1_type_1(outbuf, padded_len, +- inbuf, inlen); +- if (!rc) { ++ CK_RV rv = ssl_util_add_PKCS1_TYPE_1(inbuf, inlen, ++ outbuf, padded_len); ++ if (rv != CKR_OK) { + LOGE("Applying RSA padding failed"); +- return CKR_GENERAL_ERROR; ++ return rv; + } + + *outlen = padded_len; +@@ -893,22 +893,21 @@ CK_RV rsa_pkcs_unsynthesizer(mdetail *md + size_t key_bytes = *keybits / 8; + + unsigned char buf[4096]; +- int rc = RSA_padding_check_PKCS1_type_2(buf, sizeof(buf), +- inbuf, inlen, +- key_bytes); +- if (rc < 0) { ++ CK_ULONG buflen = sizeof(buf); ++ CK_RV rv = ssl_util_check_PKCS1_TYPE_2(inbuf, inlen, key_bytes, ++ buf, &buflen); ++ if (rv != CKR_OK) { + LOGE("Could not recover CKM_RSA_PKCS Padding"); +- return CKR_GENERAL_ERROR; ++ return rv; + } + +- /* cannot be < 0 because of check above */ +- if (!outbuf || (unsigned)rc > *outlen) { +- *outlen = rc; ++ if (!outbuf || buflen > *outlen) { ++ *outlen = buflen; + return outbuf ? CKR_BUFFER_TOO_SMALL : CKR_OK; + } + +- *outlen = rc; +- memcpy(outbuf, buf, rc); ++ *outlen = buflen; ++ memcpy(outbuf, buf, buflen); + + return CKR_OK; + } +@@ -944,50 +943,21 @@ CK_RV rsa_pss_synthesizer(mdetail *mdtl, + return CKR_GENERAL_ERROR; + } + +- CK_ATTRIBUTE_PTR exp_attr = attr_get_attribute_by_type(attrs, CKA_PUBLIC_EXPONENT); +- if (!exp_attr) { +- LOGE("Signing key has no CKA_PUBLIC_EXPONENT"); +- return CKR_GENERAL_ERROR; +- } +- + if (modulus_attr->ulValueLen > *outlen) { + LOGE("Output buffer is too small, got: %lu, required at least %lu", + *outlen, modulus_attr->ulValueLen); + return CKR_GENERAL_ERROR; + } + +- BIGNUM *e = BN_bin2bn(exp_attr->pValue, exp_attr->ulValueLen, NULL); +- if (!e) { +- LOGE("Could not convert exponent to bignum"); +- return CKR_GENERAL_ERROR; +- } +- +- BIGNUM *n = BN_bin2bn(modulus_attr->pValue, modulus_attr->ulValueLen, NULL); +- if (!n) { +- LOGE("Could not convert modulus to bignum"); +- BN_free(e); +- return CKR_GENERAL_ERROR; +- } +- +- RSA *rsa = RSA_new(); +- if (!rsa) { +- LOGE("oom"); +- return CKR_HOST_MEMORY; +- } +- +- int rc = RSA_set0_key(rsa, n, e, NULL); +- if (!rc) { +- LOGE("Could not set modulus and exponent to OSSL RSA key"); +- BN_free(n); +- BN_free(e); +- RSA_free(rsa); +- return CKR_GENERAL_ERROR; ++ EVP_PKEY *pkey = NULL; ++ rv = ssl_util_attrs_to_evp(attrs, &pkey); ++ if (rv != CKR_OK) { ++ return rv; + } + +- rc = RSA_padding_add_PKCS1_PSS(rsa, outbuf, +- inbuf, md, -1); +- RSA_free(rsa); +- if (!rc) { ++ rv = ssl_util_add_PKCS1_PSS(pkey, inbuf, md, outbuf); ++ EVP_PKEY_free(pkey); ++ if (rv != CKR_OK) { + LOGE("Applying RSA padding failed"); + return CKR_GENERAL_ERROR; + } +Index: git/src/lib/object.c +=================================================================== +--- git.orig/src/lib/object.c ++++ git/src/lib/object.c +@@ -15,6 +15,7 @@ + #include "object.h" + #include "pkcs11.h" + #include "session_ctx.h" ++#include "ssl_util.h" + #include "token.h" + #include "utils.h" + +@@ -121,7 +122,7 @@ CK_RV tobject_get_min_buf_size(tobject * + } + + int nid = 0; +- CK_RV rv = ec_params_to_nid(a, &nid); ++ CK_RV rv = ssl_util_params_to_nid(a, &nid); + if (rv != CKR_OK) { + return rv; + } +Index: git/src/lib/sign.c +=================================================================== +--- git.orig/src/lib/sign.c ++++ git/src/lib/sign.c +@@ -74,7 +74,7 @@ static sign_opdata *sign_opdata_new(mdet + } + + EVP_PKEY *pkey = NULL; +- rv = ssl_util_tobject_to_evp(&pkey, tobj); ++ rv = ssl_util_attrs_to_evp(tobj->attrs, &pkey); + if (rv != CKR_OK) { + return NULL; + } +Index: git/src/lib/ssl_util.c +=================================================================== +--- git.orig/src/lib/ssl_util.c ++++ git/src/lib/ssl_util.c +@@ -10,6 +10,7 @@ + #include <openssl/rsa.h> + #include <openssl/sha.h> + ++#include "attrs.h" + #include "log.h" + #include "pkcs11.h" + #include "ssl_util.h" +@@ -19,194 +20,228 @@ + #include <openssl/evperr.h> + #endif + +-#if defined(LIB_TPM2_OPENSSL_OPENSSL_PRE11) ++#if defined(LIB_TPM2_OPENSSL_OPENSSL_POST300) ++#include <openssl/core_names.h> ++#endif + + /* +- * Pre openssl 1.1 doesn't have EC_POINT_point2buf, so use EC_POINT_point2oct to +- * create an API compatible version of it. ++ * TODO Port these routines ++ * Deprecated function block to port ++ * ++ * There are no padding routine replacements in OSSL 3.0. ++ * - per Matt Caswell (maintainer) on mailing list. ++ * Signature verification can likely be done with EVP Verify interface. + */ +-size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, +- point_conversion_form_t form, +- unsigned char **pbuf, BN_CTX *ctx) { +- +- /* Get the required buffer length */ +- size_t len = EC_POINT_point2oct(group, point, form, NULL, 0, NULL); +- if (!len) { +- return 0; +- } ++#if defined(LIB_TPM2_OPENSSL_OPENSSL_POST300) ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif + +- /* allocate it */ +- unsigned char *buf = OPENSSL_malloc(len); +- if (!buf) { +- return 0; +- } ++CK_RV ssl_util_add_PKCS1_PSS(EVP_PKEY *pkey, ++ const CK_BYTE_PTR inbuf, const EVP_MD *md, ++ CK_BYTE_PTR outbuf) { + +- /* convert it */ +- len = EC_POINT_point2oct(group, point, form, buf, len, ctx); +- if (!len) { +- OPENSSL_free(buf); +- return 0; ++ RSA *rsa = (RSA *)EVP_PKEY_get0_RSA(pkey); ++ if (!rsa) { ++ return CKR_GENERAL_ERROR; + } + +- *pbuf = buf; +- return len; +-} ++ int rc = RSA_padding_add_PKCS1_PSS(rsa, outbuf, ++ inbuf, md, -1); + +-size_t OBJ_length(const ASN1_OBJECT *obj) { ++ return rc == 1 ? CKR_OK : CKR_GENERAL_ERROR; ++} + +- if (!obj) { +- return 0; +- } ++CK_RV ssl_util_add_PKCS1_TYPE_1(const CK_BYTE_PTR inbuf, CK_ULONG inlen, ++ CK_BYTE_PTR outbuf, CK_ULONG outbuflen) { + +- return obj->length; ++ return RSA_padding_add_PKCS1_type_1(outbuf, outbuflen, ++ inbuf, inlen) == 1 ? CKR_OK : CKR_GENERAL_ERROR; + } + +-const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj) { ++CK_RV ssl_util_check_PKCS1_TYPE_2(const CK_BYTE_PTR inbuf, CK_ULONG inlen, CK_ULONG rsa_len, ++ CK_BYTE_PTR outbuf, CK_ULONG_PTR outbuflen) { + +- if (!obj) { +- return NULL; ++ int rc = RSA_padding_check_PKCS1_type_2(outbuf, *outbuflen, ++ inbuf, inlen, rsa_len); ++ if (rc < 0) { ++ return CKR_GENERAL_ERROR; + } + +- return obj->data; ++ /* cannot be negative due to check above */ ++ *outbuflen = rc; ++ return CKR_OK; + } + +-const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x) { +- return ASN1_STRING_data((ASN1_STRING *)x); +-} ++#if defined(LIB_TPM2_OPENSSL_OPENSSL_POST300) ++#pragma GCC diagnostic pop ++#endif + +-int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d) { ++#if defined(LIB_TPM2_OPENSSL_OPENSSL_POST300) + +- if ((r->n == NULL && n == NULL) || (r->e == NULL && e == NULL)) { +- return 0; +- } ++static CK_RV get_RSA_evp_pubkey(CK_ATTRIBUTE_PTR e_attr, CK_ATTRIBUTE_PTR n_attr, EVP_PKEY **out_pkey) { ++ ++ OSSL_PARAM params[] = { ++ OSSL_PARAM_BN("n", n_attr->pValue, n_attr->ulValueLen), ++ OSSL_PARAM_BN("e", e_attr->pValue, e_attr->ulValueLen), ++ OSSL_PARAM_END ++ }; + +- if (n != NULL) { +- BN_free(r->n); +- r->n = n; ++ /* convert params to EVP key */ ++ EVP_PKEY_CTX *evp_ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); ++ if (!evp_ctx) { ++ SSL_UTIL_LOGE("EVP_PKEY_CTX_new_id"); ++ return CKR_GENERAL_ERROR; + } + +- if (e != NULL) { +- BN_free(r->e); +- r->e = e; ++ int rc = EVP_PKEY_fromdata_init(evp_ctx); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_PKEY_fromdata_init"); ++ EVP_PKEY_CTX_free(evp_ctx); ++ return CKR_GENERAL_ERROR; + } + +- if (d != NULL) { +- BN_free(r->d); +- r->d = d; ++ rc = EVP_PKEY_fromdata(evp_ctx, out_pkey, EVP_PKEY_PUBLIC_KEY, params); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_PKEY_fromdata"); ++ EVP_PKEY_CTX_free(evp_ctx); ++ return CKR_GENERAL_ERROR; + } + +- return 1; ++ EVP_PKEY_CTX_free(evp_ctx); ++ ++ return CKR_OK; + } + +-int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) { ++static CK_RV get_EC_evp_pubkey(CK_ATTRIBUTE_PTR ecparams, CK_ATTRIBUTE_PTR ecpoint, EVP_PKEY **out_pkey) { ++ ++ /* ++ * The simplest way I have found to deal with this is to convert the ASN1 object in ++ * the ecparams attribute (was done previously with d2i_ECParameters) is to a nid and ++ * then take the int nid and convert it to a friendly name like prime256v1. ++ * EVP_PKEY_fromdata can handle group by name. ++ * ++ * Per the spec this is "DER-encoding of an ANSI X9.62 Parameters value". ++ */ ++ int curve_id = 0; ++ CK_RV rv = ssl_util_params_to_nid(ecparams, &curve_id); ++ if (rv != CKR_OK) { ++ LOGE("Could not get nid from params"); ++ return rv; ++ } + +- if (!r || !s) { +- return 0; ++ /* Per the spec CKA_EC_POINT attribute is the "DER-encoding of ANSI X9.62 ECPoint value Q */ ++ const unsigned char *x = ecpoint->pValue; ++ ASN1_OCTET_STRING *os = d2i_ASN1_OCTET_STRING(NULL, &x, ecpoint->ulValueLen); ++ if (!os) { ++ SSL_UTIL_LOGE("d2i_ASN1_OCTET_STRING: %s"); ++ return CKR_GENERAL_ERROR; + } + +- BN_free(sig->r); +- BN_free(sig->s); ++ OSSL_PARAM params[] = { ++ OSSL_PARAM_utf8_string(OSSL_PKEY_PARAM_GROUP_NAME, (char *)OBJ_nid2sn(curve_id), 0), ++ OSSL_PARAM_octet_string(OSSL_PKEY_PARAM_PUB_KEY, os->data, os->length), ++ OSSL_PARAM_END ++ }; + +- sig->r = r; +- sig->s = s; ++ /* convert params to EVP key */ ++ EVP_PKEY_CTX *evp_ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_EC, NULL); ++ if (!evp_ctx) { ++ SSL_UTIL_LOGE("EVP_PKEY_CTX_new_id"); ++ OPENSSL_free(os); ++ return CKR_GENERAL_ERROR; ++ } + +- return 1; +-} ++ int rc = EVP_PKEY_fromdata_init(evp_ctx); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_PKEY_fromdata_init: %s"); ++ EVP_PKEY_CTX_free(evp_ctx); ++ OPENSSL_free(os); ++ return CKR_GENERAL_ERROR; ++ } + +-EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey) { +- if (pkey->type != EVP_PKEY_EC) { +- return NULL; ++ rc = EVP_PKEY_fromdata(evp_ctx, out_pkey, EVP_PKEY_PUBLIC_KEY, params); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_PKEY_fromdata"); ++ EVP_PKEY_CTX_free(evp_ctx); ++ OPENSSL_free(os); ++ return CKR_GENERAL_ERROR; + } + +- return pkey->pkey.ec; ++ EVP_PKEY_CTX_free(evp_ctx); ++ OPENSSL_free(os); ++ ++ return CKR_OK; + } +-#endif + +-static CK_RV convert_pubkey_RSA(RSA **outkey, attr_list *attrs) { ++#else + +- RSA *rsa = NULL; +- BIGNUM *e = NULL, *n = NULL; ++static CK_RV get_RSA_evp_pubkey(CK_ATTRIBUTE_PTR e_attr, CK_ATTRIBUTE_PTR n_attr, EVP_PKEY **out_pkey) { + +- CK_ATTRIBUTE_PTR exp = attr_get_attribute_by_type(attrs, CKA_PUBLIC_EXPONENT); +- if (!exp) { +- LOGE("RSA Object must have attribute CKA_PUBLIC_EXPONENT"); ++ BIGNUM *e = BN_bin2bn(e_attr->pValue, e_attr->ulValueLen, NULL); ++ if (!e) { ++ LOGE("Could not convert exponent to bignum"); + return CKR_GENERAL_ERROR; + } + +- CK_ATTRIBUTE_PTR mod = attr_get_attribute_by_type(attrs, CKA_MODULUS); +- if (!mod) { +- LOGE("RSA Object must have attribute CKA_MODULUS"); ++ BIGNUM *n = BN_bin2bn(n_attr->pValue, n_attr->ulValueLen, NULL); ++ if (!n) { ++ LOGE("Could not convert modulus to bignum"); ++ BN_free(e); + return CKR_GENERAL_ERROR; + } + +- rsa = RSA_new(); ++ RSA *rsa = RSA_new(); + if (!rsa) { +- SSL_UTIL_LOGE("Failed to allocate OpenSSL RSA structure"); +- goto error; ++ LOGE("oom"); ++ return CKR_HOST_MEMORY; + } + +- e = BN_bin2bn(exp->pValue, exp->ulValueLen, NULL); +- if (!e) { +- SSL_UTIL_LOGE("Failed to convert exponent to SSL internal format"); +- goto error; ++ int rc = RSA_set0_key(rsa, n, e, NULL); ++ if (!rc) { ++ LOGE("Could not set modulus and exponent to OSSL RSA key"); ++ BN_free(n); ++ BN_free(e); ++ RSA_free(rsa); ++ return CKR_GENERAL_ERROR; + } + +- n = BN_bin2bn(mod->pValue, mod->ulValueLen, NULL); +- if (!n) { +- SSL_UTIL_LOGE("Failed to convert modulus to SSL internal format"); +- goto error; ++ /* assigned to RSA key */ ++ n = e = NULL; ++ ++ EVP_PKEY *pkey = EVP_PKEY_new(); ++ if (!pkey) { ++ SSL_UTIL_LOGE("EVP_PKEY_new"); ++ RSA_free(rsa); ++ return CKR_GENERAL_ERROR; + } + +- if (!RSA_set0_key(rsa, n, e, NULL)) { +- SSL_UTIL_LOGE("Failed to set RSA modulus and exponent components"); ++ rc = EVP_PKEY_assign_RSA(pkey, rsa); ++ if (rc != 1) { + RSA_free(rsa); +- BN_free(e); +- BN_free(n); +- goto error; ++ EVP_PKEY_free(pkey); ++ return CKR_GENERAL_ERROR; + } + +- *outkey = rsa; ++ *out_pkey = pkey; + + return CKR_OK; +- +-error: +- RSA_free(rsa); +- if (e) { +- BN_free(e); +- } +- if (n) { +- BN_free(n); +- } +- +- return CKR_GENERAL_ERROR; + } + +-static CK_RV convert_pubkey_ECC(EC_KEY **outkey, attr_list *attrs) { ++static CK_RV get_EC_evp_pubkey(CK_ATTRIBUTE_PTR ecparams, CK_ATTRIBUTE_PTR ecpoint, EVP_PKEY **out_pkey) { + +- EC_KEY *key = EC_KEY_new(); +- if (!key) { ++ EC_KEY *ecc = EC_KEY_new(); ++ if (!ecc) { + LOGE("oom"); + return CKR_HOST_MEMORY; + } + +- CK_ATTRIBUTE_PTR ecparams = attr_get_attribute_by_type(attrs, CKA_EC_PARAMS); +- if (!ecparams) { +- LOGE("ECC Key must have attribute CKA_EC_PARAMS"); +- return CKR_GENERAL_ERROR; +- } +- +- CK_ATTRIBUTE_PTR ecpoint = attr_get_attribute_by_type(attrs, CKA_EC_POINT); +- if (!ecpoint) { +- LOGE("ECC Key must have attribute CKA_EC_POINT"); +- return CKR_GENERAL_ERROR; +- } +- + /* set params */ + const unsigned char *x = ecparams->pValue; +- EC_KEY *k = d2i_ECParameters(&key, &x, ecparams->ulValueLen); ++ EC_KEY *k = d2i_ECParameters(&ecc, &x, ecparams->ulValueLen); + if (!k) { + SSL_UTIL_LOGE("Could not update key with EC Parameters"); +- EC_KEY_free(key); ++ EC_KEY_free(ecc); + return CKR_GENERAL_ERROR; + } + +@@ -215,22 +250,38 @@ static CK_RV convert_pubkey_ECC(EC_KEY * + ASN1_OCTET_STRING *os = d2i_ASN1_OCTET_STRING(NULL, &x, ecpoint->ulValueLen); + if (os) { + x = os->data; +- k = o2i_ECPublicKey(&key, &x, os->length); ++ k = o2i_ECPublicKey(&ecc, &x, os->length); + ASN1_STRING_free(os); + if (!k) { + SSL_UTIL_LOGE("Could not update key with EC Points"); +- EC_KEY_free(key); ++ EC_KEY_free(ecc); + return CKR_GENERAL_ERROR; + } + } + +- *outkey = key; ++ EVP_PKEY *pkey = EVP_PKEY_new(); ++ if (!pkey) { ++ SSL_UTIL_LOGE("EVP_PKEY_new"); ++ EC_KEY_free(ecc); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ int rc = EVP_PKEY_assign_EC_KEY(pkey, ecc); ++ if (!rc) { ++ SSL_UTIL_LOGE("Could not set pkey with ec key"); ++ EC_KEY_free(ecc); ++ EVP_PKEY_free(pkey); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ *out_pkey = pkey; + return CKR_OK; + } ++#endif + +-CK_RV ssl_util_tobject_to_evp(EVP_PKEY **outpkey, tobject *obj) { ++CK_RV ssl_util_attrs_to_evp(attr_list *attrs, EVP_PKEY **outpkey) { + +- CK_ATTRIBUTE_PTR a = attr_get_attribute_by_type(obj->attrs, CKA_KEY_TYPE); ++ CK_ATTRIBUTE_PTR a = attr_get_attribute_by_type(attrs, CKA_KEY_TYPE); + if (!a) { + LOGE("Expected object to have attribute CKA_KEY_TYPE"); + return CKR_KEY_TYPE_INCONSISTENT; +@@ -253,44 +304,52 @@ CK_RV ssl_util_tobject_to_evp(EVP_PKEY * + return CKR_OK; + } + +- EVP_PKEY *pkey = EVP_PKEY_new(); +- if (!pkey) { +- LOGE("oom"); +- return CKR_HOST_MEMORY; +- } ++ EVP_PKEY *pkey = NULL; + + if (key_type == CKK_EC) { +- EC_KEY *e = NULL; +- rv = convert_pubkey_ECC(&e, obj->attrs); +- if (rv != CKR_OK) { +- return rv; ++ ++ CK_ATTRIBUTE_PTR ecparams = attr_get_attribute_by_type(attrs, CKA_EC_PARAMS); ++ if (!ecparams) { ++ LOGE("ECC Key must have attribute CKA_EC_PARAMS"); ++ return CKR_GENERAL_ERROR; + } +- int rc = EVP_PKEY_assign_EC_KEY(pkey, e); +- if (!rc) { +- SSL_UTIL_LOGE("Could not set pkey with ec key"); +- EC_KEY_free(e); +- EVP_PKEY_free(pkey); ++ ++ CK_ATTRIBUTE_PTR ecpoint = attr_get_attribute_by_type(attrs, CKA_EC_POINT); ++ if (!ecpoint) { ++ LOGE("ECC Key must have attribute CKA_EC_POINT"); + return CKR_GENERAL_ERROR; + } +- } else if (key_type == CKK_RSA) { +- RSA *r = NULL; +- rv = convert_pubkey_RSA(&r, obj->attrs); ++ ++ rv = get_EC_evp_pubkey(ecparams, ecpoint, &pkey); + if (rv != CKR_OK) { + return rv; + } +- int rc = EVP_PKEY_assign_RSA(pkey, r); +- if (!rc) { +- SSL_UTIL_LOGE("Could not set pkey with rsa key"); +- RSA_free(r); +- EVP_PKEY_free(pkey); ++ ++ } else if (key_type == CKK_RSA) { ++ ++ CK_ATTRIBUTE_PTR exp = attr_get_attribute_by_type(attrs, CKA_PUBLIC_EXPONENT); ++ if (!exp) { ++ LOGE("RSA Object must have attribute CKA_PUBLIC_EXPONENT"); + return CKR_GENERAL_ERROR; + } ++ ++ CK_ATTRIBUTE_PTR mod = attr_get_attribute_by_type(attrs, CKA_MODULUS); ++ if (!mod) { ++ LOGE("RSA Object must have attribute CKA_MODULUS"); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ rv = get_RSA_evp_pubkey(exp, mod, &pkey); ++ if (rv != CKR_OK) { ++ return rv; ++ } ++ + } else { + LOGE("Invalid CKA_KEY_TYPE, got: %lu", key_type); +- EVP_PKEY_free(pkey); + return CKR_KEY_TYPE_INCONSISTENT; + } + ++ assert(pkey); + *outpkey = pkey; + + return CKR_OK; +@@ -406,10 +465,12 @@ CK_RV ssl_util_setup_evp_pkey_ctx(EVP_PK + } + } + +- rc = EVP_PKEY_CTX_set_signature_md(pkey_ctx, md); +- if (!rc) { +- SSL_UTIL_LOGE("EVP_PKEY_CTX_set_signature_md failed"); +- goto error; ++ if (md) { ++ rc = EVP_PKEY_CTX_set_signature_md(pkey_ctx, md); ++ if (!rc) { ++ SSL_UTIL_LOGE("EVP_PKEY_CTX_set_signature_md failed"); ++ goto error; ++ } + } + + *outpkey_ctx = pkey_ctx; +@@ -421,21 +482,12 @@ error: + return CKR_GENERAL_ERROR; + } + +-static CK_RV do_sig_verify_rsa(EVP_PKEY *pkey, +- int padding, const EVP_MD *md, +- CK_BYTE_PTR digest, CK_ULONG digest_len, +- CK_BYTE_PTR signature, CK_ULONG signature_len) { ++static CK_RV sig_verify(EVP_PKEY_CTX *ctx, ++ const unsigned char *sig, size_t siglen, ++ const unsigned char *tbs, size_t tbslen) { + + CK_RV rv = CKR_GENERAL_ERROR; +- +- EVP_PKEY_CTX *pkey_ctx = NULL; +- rv = ssl_util_setup_evp_pkey_ctx(pkey, padding, md, +- EVP_PKEY_verify_init, &pkey_ctx); +- if (rv != CKR_OK) { +- return rv; +- } +- +- int rc = EVP_PKEY_verify(pkey_ctx, signature, signature_len, digest, digest_len); ++ int rc = EVP_PKEY_verify(ctx, sig, siglen, tbs, tbslen); + if (rc < 0) { + SSL_UTIL_LOGE("EVP_PKEY_verify failed"); + } else if (rc == 1) { +@@ -444,11 +496,11 @@ static CK_RV do_sig_verify_rsa(EVP_PKEY + rv = CKR_SIGNATURE_INVALID; + } + +- EVP_PKEY_CTX_free(pkey_ctx); + return rv; + } + +-static CK_RV create_ecdsa_sig(CK_BYTE_PTR sig, CK_ULONG siglen, ECDSA_SIG **outsig) { ++static CK_RV create_ecdsa_sig(CK_BYTE_PTR sig, CK_ULONG siglen, ++ unsigned char **outbuf, size_t *outlen) { + + if (siglen & 1) { + LOGE("Expected ECDSA signature length to be even, got : %lu", +@@ -487,21 +539,48 @@ static CK_RV create_ecdsa_sig(CK_BYTE_PT + return CKR_GENERAL_ERROR; + } + +- *outsig = ossl_sig; ++ int sig_len =i2d_ECDSA_SIG(ossl_sig, NULL); ++ if (sig_len <= 0) { ++ if (rc < 0) { ++ SSL_UTIL_LOGE("ECDSA_do_verify failed"); ++ } else { ++ LOGE("Expected length to be greater than 0"); ++ } ++ ECDSA_SIG_free(ossl_sig); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ unsigned char *buf = calloc(1, sig_len); ++ if (!buf) { ++ LOGE("oom"); ++ ECDSA_SIG_free(ossl_sig); ++ return CKR_HOST_MEMORY; ++ } ++ ++ unsigned char *p = buf; ++ int sig_len2 = i2d_ECDSA_SIG(ossl_sig, &p); ++ if (sig_len2 < 0) { ++ SSL_UTIL_LOGE("ECDSA_do_verify failed"); ++ ECDSA_SIG_free(ossl_sig); ++ free(buf); ++ return CKR_GENERAL_ERROR; ++ } ++ ++ assert(sig_len == sig_len2); ++ ++ ECDSA_SIG_free(ossl_sig); ++ ++ *outbuf = buf; ++ *outlen = sig_len; + + return CKR_OK; + } + + static CK_RV do_sig_verify_ec(EVP_PKEY *pkey, ++ const EVP_MD *md, + CK_BYTE_PTR digest, CK_ULONG digest_len, + CK_BYTE_PTR signature, CK_ULONG signature_len) { + +- EC_KEY *eckey = EVP_PKEY_get0_EC_KEY(pkey); +- if (!eckey) { +- LOGE("Expected EC Key"); +- return CKR_GENERAL_ERROR; +- } +- + /* + * OpenSSL expects ASN1 framed signatures, PKCS11 does flat + * R + S signatures, so convert it to ASN1 framing. +@@ -509,21 +588,47 @@ static CK_RV do_sig_verify_ec(EVP_PKEY * + * https://github.com/tpm2-software/tpm2-pkcs11/issues/277 + * For details. + */ +- ECDSA_SIG *ossl_sig = NULL; +- CK_RV rv = create_ecdsa_sig(signature, signature_len, &ossl_sig); ++ unsigned char *buf = NULL; ++ size_t buflen = 0; ++ CK_RV rv = create_ecdsa_sig(signature, signature_len, &buf, &buflen); + if (rv != CKR_OK) { + return rv; + } + +- int rc = ECDSA_do_verify(digest, digest_len, ossl_sig, eckey); +- if (rc < 0) { +- ECDSA_SIG_free(ossl_sig); +- SSL_UTIL_LOGE("ECDSA_do_verify failed"); +- return CKR_GENERAL_ERROR; ++ EVP_PKEY_CTX *pkey_ctx = NULL; ++ rv = ssl_util_setup_evp_pkey_ctx(pkey, 0, md, ++ EVP_PKEY_verify_init, &pkey_ctx); ++ if (rv != CKR_OK) { ++ free(buf); ++ return rv; + } +- ECDSA_SIG_free(ossl_sig); + +- return rc == 1 ? CKR_OK : CKR_SIGNATURE_INVALID; ++ rv = sig_verify(pkey_ctx, buf, buflen, digest, digest_len); ++ ++ EVP_PKEY_CTX_free(pkey_ctx); ++ free(buf); ++ ++ return rv; ++} ++ ++static CK_RV do_sig_verify_rsa(EVP_PKEY *pkey, ++ int padding, const EVP_MD *md, ++ CK_BYTE_PTR digest, CK_ULONG digest_len, ++ CK_BYTE_PTR signature, CK_ULONG signature_len) { ++ ++ CK_RV rv = CKR_GENERAL_ERROR; ++ ++ EVP_PKEY_CTX *pkey_ctx = NULL; ++ rv = ssl_util_setup_evp_pkey_ctx(pkey, padding, md, ++ EVP_PKEY_verify_init, &pkey_ctx); ++ if (rv != CKR_OK) { ++ return rv; ++ } ++ ++ rv = sig_verify(pkey_ctx, signature, signature_len, digest, digest_len); ++ ++ EVP_PKEY_CTX_free(pkey_ctx); ++ return rv; + } + + CK_RV ssl_util_sig_verify(EVP_PKEY *pkey, +@@ -538,7 +643,7 @@ CK_RV ssl_util_sig_verify(EVP_PKEY *pkey + digest, digest_len, + signature, signature_len); + case EVP_PKEY_EC: +- return do_sig_verify_ec(pkey, digest, digest_len, ++ return do_sig_verify_ec(pkey, md, digest, digest_len, + signature, signature_len); + default: + LOGE("Unknown PKEY type, got: %d", type); +@@ -577,3 +682,65 @@ CK_RV ssl_util_verify_recover(EVP_PKEY * + EVP_PKEY_CTX_free(pkey_ctx); + return rv; + } ++ ++twist ssl_util_hash_pass(const twist pin, const twist salt) { ++ ++ ++ twist out = NULL; ++ unsigned char md[SHA256_DIGEST_LENGTH]; ++ ++ EVP_MD_CTX *ctx = EVP_MD_CTX_new(); ++ if (!ctx) { ++ SSL_UTIL_LOGE("EVP_MD_CTX_new"); ++ return NULL; ++ } ++ ++ int rc = EVP_DigestInit(ctx, EVP_sha256()); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_DigestInit"); ++ goto error; ++ } ++ ++ rc = EVP_DigestUpdate(ctx, pin, twist_len(pin)); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_DigestUpdate"); ++ goto error; ++ } ++ ++ rc = EVP_DigestUpdate(ctx, salt, twist_len(salt)); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_DigestUpdate"); ++ goto error; ++ } ++ ++ unsigned int len = sizeof(md); ++ rc = EVP_DigestFinal(ctx, md, &len); ++ if (rc != 1) { ++ SSL_UTIL_LOGE("EVP_DigestFinal"); ++ goto error; ++ } ++ ++ /* truncate the password to 32 characters */ ++ out = twist_hex_new((char *)md, sizeof(md)/2); ++ ++error: ++ EVP_MD_CTX_free(ctx); ++ ++ return out; ++} ++ ++CK_RV ssl_util_params_to_nid(CK_ATTRIBUTE_PTR ecparams, int *nid) { ++ ++ const unsigned char *p = ecparams->pValue; ++ ++ ASN1_OBJECT *a = d2i_ASN1_OBJECT(NULL, &p, ecparams->ulValueLen); ++ if (!a) { ++ LOGE("Unknown CKA_EC_PARAMS value"); ++ return CKR_ATTRIBUTE_VALUE_INVALID; ++ } ++ ++ *nid = OBJ_obj2nid(a); ++ ASN1_OBJECT_free(a); ++ ++ return CKR_OK; ++} +Index: git/src/lib/ssl_util.h +=================================================================== +--- git.orig/src/lib/ssl_util.h ++++ git/src/lib/ssl_util.h +@@ -11,8 +11,8 @@ + + #include "pkcs11.h" + ++#include "attrs.h" + #include "log.h" +-#include "object.h" + #include "twist.h" + + #if (OPENSSL_VERSION_NUMBER < 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) /* OpenSSL 1.1.0 */ +@@ -22,6 +22,10 @@ + #define LIB_TPM2_OPENSSL_OPENSSL_POST111 0x1010100f + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x30000000) /* OpenSSL 3.0.0 */ ++#define LIB_TPM2_OPENSSL_OPENSSL_POST300 0x1010100f ++#endif ++ + /* OpenSSL Backwards Compat APIs */ + #if defined(LIB_TPM2_OPENSSL_OPENSSL_PRE11) + #include <string.h> +@@ -58,7 +62,7 @@ static inline void *OPENSSL_memdup(const + + #define SSL_UTIL_LOGE(m) LOGE("%s: %s", m, ERR_error_string(ERR_get_error(), NULL)); + +-CK_RV ssl_util_tobject_to_evp(EVP_PKEY **outpkey, tobject *obj); ++CK_RV ssl_util_attrs_to_evp(attr_list *attrs, EVP_PKEY **outpkey); + + CK_RV ssl_util_encrypt(EVP_PKEY *pkey, + int padding, twist label, const EVP_MD *md, +@@ -82,4 +86,27 @@ CK_RV ssl_util_setup_evp_pkey_ctx(EVP_PK + fn_EVP_PKEY_init init_fn, + EVP_PKEY_CTX **outpkey_ctx); + ++CK_RV ssl_util_add_PKCS1_PSS(EVP_PKEY *pkey, ++ const CK_BYTE_PTR inbuf, const EVP_MD *md, ++ CK_BYTE_PTR outbuf); ++ ++CK_RV ssl_util_add_PKCS1_TYPE_1(const CK_BYTE_PTR inbuf, CK_ULONG inlen, ++ CK_BYTE_PTR outbuf, CK_ULONG outbuflen); ++ ++CK_RV ssl_util_check_PKCS1_TYPE_2(const CK_BYTE_PTR inbuf, CK_ULONG inlen, CK_ULONG rsa_len, ++ CK_BYTE_PTR outbuf, CK_ULONG_PTR outbuflen); ++ ++twist ssl_util_hash_pass(const twist pin, const twist salt); ++ ++/** ++ * Given an attribute of CKA_EC_PARAMS returns the nid value. ++ * @param ecparams ++ * The DER X9.62 parameters value ++ * @param nid ++ * The nid to set ++ * @return ++ * CKR_OK on success. ++ */ ++CK_RV ssl_util_params_to_nid(CK_ATTRIBUTE_PTR ecparams, int *nid); ++ + #endif /* SRC_LIB_SSL_UTIL_H_ */ +Index: git/src/lib/tpm.c +=================================================================== +--- git.orig/src/lib/tpm.c ++++ git/src/lib/tpm.c +@@ -3099,7 +3099,7 @@ static CK_RV handle_ecparams(CK_ATTRIBUT + tpm_key_data *keydat = (tpm_key_data *)udata; + + int nid = 0; +- CK_RV rv = ec_params_to_nid(attr, &nid); ++ CK_RV rv = ssl_util_params_to_nid(attr, &nid); + if (rv != CKR_OK) { + return rv; + } +@@ -3451,7 +3451,7 @@ static EC_POINT *tpm_pub_to_ossl_pub(EC_ + goto out; + } + +- int rc = EC_POINT_set_affine_coordinates_GFp(group, ++ int rc = EC_POINT_set_affine_coordinates(group, + pub_key_point_tmp, + bn_x, + bn_y, +@@ -4579,7 +4579,7 @@ CK_RV tpm_get_pss_sig_state(tpm_ctx *tct + goto out; + } + +- rv = ssl_util_tobject_to_evp(&pkey, tobj); ++ rv = ssl_util_attrs_to_evp(tobj->attrs, &pkey); + if (rv != CKR_OK) { + goto out; + } +Index: git/src/lib/utils.c +=================================================================== +--- git.orig/src/lib/utils.c ++++ git/src/lib/utils.c +@@ -7,6 +7,7 @@ + #include <openssl/sha.h> + + #include "log.h" ++#include "ssl_util.h" + #include "token.h" + #include "utils.h" + +@@ -45,7 +46,7 @@ CK_RV utils_setup_new_object_auth(twist + pin_to_use = newpin; + } + +- *newauthhex = utils_hash_pass(pin_to_use, salt_to_use); ++ *newauthhex = ssl_util_hash_pass(pin_to_use, salt_to_use); + if (!*newauthhex) { + goto out; + } +@@ -330,22 +331,6 @@ out: + + } + +-twist utils_hash_pass(const twist pin, const twist salt) { +- +- +- unsigned char md[SHA256_DIGEST_LENGTH]; +- +- SHA256_CTX sha256; +- SHA256_Init(&sha256); +- +- SHA256_Update(&sha256, pin, twist_len(pin)); +- SHA256_Update(&sha256, salt, twist_len(salt)); +- SHA256_Final(md, &sha256); +- +- /* truncate the password to 32 characters */ +- return twist_hex_new((char *)md, sizeof(md)/2); +-} +- + size_t utils_get_halg_size(CK_MECHANISM_TYPE mttype) { + + switch(mttype) { +@@ -448,22 +433,6 @@ CK_RV utils_ctx_wrap_objauth(twist wrapp + + return CKR_OK; + } +- +-CK_RV ec_params_to_nid(CK_ATTRIBUTE_PTR ecparams, int *nid) { +- +- const unsigned char *p = ecparams->pValue; +- +- ASN1_OBJECT *a = d2i_ASN1_OBJECT(NULL, &p, ecparams->ulValueLen); +- if (!a) { +- LOGE("Unknown CKA_EC_PARAMS value"); +- return CKR_ATTRIBUTE_VALUE_INVALID; +- } +- +- *nid = OBJ_obj2nid(a); +- ASN1_OBJECT_free(a); +- +- return CKR_OK; +-} + + CK_RV apply_pkcs7_pad(const CK_BYTE_PTR in, CK_ULONG inlen, + CK_BYTE_PTR out, CK_ULONG_PTR outlen) { +Index: git/src/lib/utils.h +=================================================================== +--- git.orig/src/lib/utils.h ++++ git/src/lib/utils.h +@@ -45,8 +45,6 @@ static inline void _str_padded_copy(CK_U + memcpy(dst, src, src_len); + } + +-twist utils_hash_pass(const twist pin, const twist salt); +- + twist aes256_gcm_decrypt(const twist key, const twist objauth); + + twist aes256_gcm_encrypt(twist keybin, twist plaintextbin); +@@ -77,17 +75,6 @@ CK_RV utils_ctx_unwrap_objauth(twist wra + CK_RV utils_ctx_wrap_objauth(twist wrappingkey, twist objauth, twist *wrapped_auth); + + /** +- * Given an attribute of CKA_EC_PARAMS returns the nid value. +- * @param ecparams +- * The DER X9.62 parameters value +- * @param nid +- * The nid to set +- * @return +- * CKR_OK on success. +- */ +-CK_RV ec_params_to_nid(CK_ATTRIBUTE_PTR ecparams, int *nid); +- +-/** + * Removes a PKCS7 padding on a 16 byte block. + * @param in + * The PKCS5 padded input. +Index: git/test/integration/pkcs-sign-verify.int.c +=================================================================== +--- git.orig/test/integration/pkcs-sign-verify.int.c ++++ git/test/integration/pkcs-sign-verify.int.c +@@ -1061,70 +1061,13 @@ static void test_double_sign_final_call_ + assert_int_equal(rv, CKR_OK); + } + +-static CK_ATTRIBUTE_PTR get_attr(CK_ATTRIBUTE_TYPE type, CK_ATTRIBUTE_PTR attrs, CK_ULONG attr_len) { +- +- CK_ULONG i; +- for (i=0; i < attr_len; i++) { +- CK_ATTRIBUTE_PTR a = &attrs[i]; +- if (a->type == type) { +- return a; +- } +- } +- +- return NULL; +-} +- +-#if (OPENSSL_VERSION_NUMBER < 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) /* OpenSSL 1.1.0 */ +-#define LIB_TPM2_OPENSSL_OPENSSL_PRE11 +-#endif +- +-RSA *template_to_rsa_pub_key(CK_ATTRIBUTE_PTR attrs, CK_ULONG attr_len) { +- +- RSA *ssl_rsa_key = NULL; +- BIGNUM *e = NULL, *n = NULL; +- +- /* get the exponent */ +- CK_ATTRIBUTE_PTR a = get_attr(CKA_PUBLIC_EXPONENT, attrs, attr_len); +- assert_non_null(a); +- +- e = BN_bin2bn((void*)a->pValue, a->ulValueLen, NULL); +- assert_non_null(e); +- +- /* get the modulus */ +- a = get_attr(CKA_MODULUS, attrs, attr_len); +- assert_non_null(a); +- +- n = BN_bin2bn(a->pValue, a->ulValueLen, +- NULL); +- assert_non_null(n); +- +- ssl_rsa_key = RSA_new(); +- assert_non_null(ssl_rsa_key); +- +-#if defined(LIB_TPM2_OPENSSL_OPENSSL_PRE11) +- ssl_rsa_key->e = e; +- ssl_rsa_key->n = n; +-#else +- int rc = RSA_set0_key(ssl_rsa_key, n, e, NULL); +- assert_int_equal(rc, 1); +-#endif +- +- return ssl_rsa_key; +-} +- +-static void verify(RSA *pub, CK_BYTE_PTR msg, CK_ULONG msg_len, CK_BYTE_PTR sig, CK_ULONG sig_len) { +- +- EVP_PKEY *pkey = EVP_PKEY_new(); +- assert_non_null(pkey); +- +- int rc = EVP_PKEY_set1_RSA(pkey, pub); +- assert_int_equal(rc, 1); ++static void verify(EVP_PKEY *pkey, CK_BYTE_PTR msg, CK_ULONG msg_len, CK_BYTE_PTR sig, CK_ULONG sig_len) { + + EVP_MD_CTX *ctx = EVP_MD_CTX_create(); + const EVP_MD* md = EVP_get_digestbyname("SHA256"); + assert_non_null(md); + +- rc = EVP_DigestInit_ex(ctx, md, NULL); ++ int rc = EVP_DigestInit_ex(ctx, md, NULL); + assert_int_equal(rc, 1); + + rc = EVP_DigestVerifyInit(ctx, NULL, md, NULL, pkey); +@@ -1136,7 +1079,6 @@ static void verify(RSA *pub, CK_BYTE_PTR + rc = EVP_DigestVerifyFinal(ctx, sig, sig_len); + assert_int_equal(rc, 1); + +- EVP_PKEY_free(pkey); + EVP_MD_CTX_destroy(ctx); + } + +@@ -1170,20 +1112,38 @@ static void test_sign_verify_public(void + assert_int_equal(siglen, 256); + + /* build an OSSL RSA key from parts */ +- CK_BYTE _tmp_bufs[2][1024]; ++ CK_BYTE _tmp_bufs[3][1024]; + CK_ATTRIBUTE attrs[] = { +- { .type = CKA_PUBLIC_EXPONENT, .ulValueLen = sizeof(_tmp_bufs[0]), .pValue = &_tmp_bufs[0] }, +- { .type = CKA_MODULUS, .ulValueLen = sizeof(_tmp_bufs[1]), .pValue = &_tmp_bufs[1] }, ++ { .type = CKA_KEY_TYPE, .ulValueLen = sizeof(_tmp_bufs[0]), .pValue = &_tmp_bufs[0] }, ++ { .type = CKA_PUBLIC_EXPONENT, .ulValueLen = sizeof(_tmp_bufs[0]), .pValue = &_tmp_bufs[1] }, ++ { .type = CKA_MODULUS, .ulValueLen = sizeof(_tmp_bufs[1]), .pValue = &_tmp_bufs[2] }, + }; + + rv = C_GetAttributeValue(session, pub_handle, attrs, ARRAY_LEN(attrs)); + assert_int_equal(rv, CKR_OK); + +- RSA *r = template_to_rsa_pub_key(attrs, ARRAY_LEN(attrs)); +- assert_non_null(r); ++ CK_KEY_TYPE key_type = CKA_KEY_TYPE_BAD; ++ rv = attr_CK_KEY_TYPE(&attrs[0], &key_type); ++ assert_int_equal(rv, CKR_OK); ++ ++ EVP_PKEY *pkey = NULL; ++ attr_list *l = attr_list_new(); ++ ++ bool res = attr_list_add_int(l, CKA_KEY_TYPE, key_type); ++ assert_true(res); + +- verify(r, msg, sizeof(msg) - 1, sig, siglen); +- RSA_free(r); ++ res = attr_list_add_buf(l, attrs[1].type, attrs[1].pValue, attrs[1].ulValueLen); ++ assert_true(res); ++ ++ res = attr_list_add_buf(l, attrs[2].type, attrs[2].pValue, attrs[2].ulValueLen); ++ assert_true(res); ++ ++ rv = ssl_util_attrs_to_evp(l, &pkey); ++ assert_int_equal(rv, CKR_OK); ++ attr_list_free(l); ++ ++ verify(pkey, msg, sizeof(msg) - 1, sig, siglen); ++ EVP_PKEY_free(pkey); + } + + static void test_sign_verify_context_specific_good(void **state) { diff --git a/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0002-ossl-require-version-1.1.0-or-greater.patch b/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0002-ossl-require-version-1.1.0-or-greater.patch new file mode 100644 index 0000000..ef0a6dc --- /dev/null +++ b/meta-tpm/recipes-tpm2/tpm2-pkcs11/files/0002-ossl-require-version-1.1.0-or-greater.patch @@ -0,0 +1,93 @@ +From d33e5ef0b11125fe4683d7bfa17023e24997f587 Mon Sep 17 00:00:00 2001 +From: William Roberts <william.c.roberts@...> +Date: Fri, 3 Sep 2021 11:30:50 -0500 +Subject: [PATCH 2/2] ossl: require version 1.1.0 or greater + +THIS DROPS SUPPORT FOR OSSL 1.0.2. + +Signed-off-by: William Roberts <william.c.roberts@...> + +Upstream-Status: Backport +Signed-off-by: Armin Kuster <akuster808@...> +--- + configure.ac | 2 +- + src/lib/ssl_util.h | 43 +++++-------------------------------------- + 2 files changed, 6 insertions(+), 39 deletions(-) + +diff --git a/configure.ac b/configure.ac +index a7aeaf5..94fb5d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,7 +55,7 @@ PKG_CHECK_EXISTS([tss2-esys >= 3.0], + # require sqlite3 and libcrypto + PKG_CHECK_MODULES([SQLITE3], [sqlite3]) + PKG_CHECK_MODULES([YAML], [yaml-0.1]) +-PKG_CHECK_MODULES([CRYPTO], [libcrypto >= 1.0.2g]) ++PKG_CHECK_MODULES([CRYPTO], [libcrypto >= 1.1.0]) + + # check for pthread + AX_PTHREAD([],[AC_MSG_ERROR([Cannot find pthread])]) +diff --git a/src/lib/ssl_util.h b/src/lib/ssl_util.h +index 9909fd6..2591728 100644 +--- a/src/lib/ssl_util.h ++++ b/src/lib/ssl_util.h +@@ -15,51 +15,18 @@ + #include "log.h" + #include "twist.h" + +-#if (OPENSSL_VERSION_NUMBER < 0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER)) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) /* OpenSSL 1.1.0 */ +-#define LIB_TPM2_OPENSSL_OPENSSL_PRE11 +-/* LibreSSL does not appear to have evperr.h, so their is no need to define this otherwise */ +-#elif (OPENSSL_VERSION_NUMBER >= 0x1010100fL) /* OpenSSL 1.1.1 */ ++#if (OPENSSL_VERSION_NUMBER >= 0x1010100fL) /* OpenSSL 1.1.1 */ + #define LIB_TPM2_OPENSSL_OPENSSL_POST111 0x1010100f + #endif + +-#if (OPENSSL_VERSION_NUMBER >= 0x30000000) /* OpenSSL 3.0.0 */ +-#define LIB_TPM2_OPENSSL_OPENSSL_POST300 0x1010100f ++#if defined(LIB_TPM2_OPENSSL_OPENSSL_POST111) ++#include <openssl/evperr.h> + #endif + +-/* OpenSSL Backwards Compat APIs */ +-#if defined(LIB_TPM2_OPENSSL_OPENSSL_PRE11) +-#include <string.h> +-size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, +- point_conversion_form_t form, +- unsigned char **pbuf, BN_CTX *ctx); +- +-const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); +- +-int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); +- +-int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); +- +-EC_KEY *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); +- +-static inline void *OPENSSL_memdup(const void *dup, size_t l) { +- +- void *p = OPENSSL_malloc(l); +- if (!p) { +- return NULL; +- } +- +- memcpy(p, dup, l); +- return p; +-} +- +-#endif +- +-#ifndef RSA_PSS_SALTLEN_DIGEST +-#define RSA_PSS_SALTLEN_DIGEST -1 ++#if (OPENSSL_VERSION_NUMBER >= 0x30000000) /* OpenSSL 3.0.0 */ ++#define LIB_TPM2_OPENSSL_OPENSSL_POST300 0x1010100f + #endif + +-/* Utility APIs */ +- + #define SSL_UTIL_LOGE(m) LOGE("%s: %s", m, ERR_error_string(ERR_get_error(), NULL)); + + CK_RV ssl_util_attrs_to_evp(attr_list *attrs, EVP_PKEY **outpkey); +-- +2.25.1 + diff --git a/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.7.0.bb b/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.7.0.bb index 366e9da..3a0917a 100644 --- a/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.7.0.bb +++ b/meta-tpm/recipes-tpm2/tpm2-pkcs11/tpm2-pkcs11_1.7.0.bb @@ -9,9 +9,11 @@ DEPENDS = "autoconf-archive pkgconfig dstat sqlite3 openssl libtss2-dev tpm2-too SRC_URI = "git://github.com/tpm2-software/tpm2-pkcs11.git;branch=master;protocol=https \ file://bootstrap_fixup.patch \ file://0001-remove-local-binary-checkes.patch \ + file://0001-ssl-compile-against-OSSL-3.0.patch \ + file://0002-ossl-require-version-1.1.0-or-greater.patch \ " -SRCREV = "862bdb845910342cd7b6e6da7495f6ee7d090a37" +SRCREV = "11fd2532ce10e97834a57dfb25bff6c613a5a851" S = "${WORKDIR}/git" -- 2.25.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: [meta-security][PATCH] dm-verity-img.bbclass: Fix wrong override syntax for CONVERSION_DEPENDS
On 12/17/21 2:29 AM, Kristian Klausen via lists.yoctoproject.org wrote:
On Fri, Dec 17, 2021 at 10:06:06 +0000, Jose Quaresma wrote:correct. The new overright syntax is now ":" instead off "_".Kristian Klausen via lists.yoctoproject.org <kristian=(resend as I forgot to CC the list) -armin python __anonymous() {--
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[psplash][PATCH 2/2] Add CMakeLists.txt to build project with cmake
Example:
mkdir build && cd build cmake ../ -DHAVE_SYSTEMD=ON make Signed-off-by: LM.H <hyyoxhk@...> --- CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1a7e6f1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.1.0) + +project(psplash LANGUAGES C) + +option(HAVE_SYSTEMD "Build with systemd support" OFF) +option(DISABLE_STARTUP_MSG "Disable text banner output on startup" OFF) +option(DISABLE_PROGRESS_BAR "Disable progress bar" OFF) +option(IMG_FULLSCREEN "Enable the logo image in fullscreen mode" OFF) + +set(PSPLASH_SRCS psplash-console.c + psplash-fb.c + psplash.c) + +add_executable(psplash ${PSPLASH_SRCS}) +add_executable(psplash-write psplash-write.c) + +if (HAVE_SYSTEMD) + find_package(PkgConfig REQUIRED) + pkg_check_modules(SYSTEMD REQUIRED libsystemd>=221) + add_executable(psplash-systemd psplash-systemd.c) + target_link_libraries(psplash-systemd systemd) +endif() + +if (NOT FONT_NAME) + set(FONT_NAME radeon) +endif() + +add_definitions(-DFONT_HEADER=\"${FONT_NAME}-font.h\") +add_definitions(-DFONT_DEF=${FONT_NAME}_font) + +if(DISABLE_STARTUP_MSG) + add_definitions(-DPSPLASH_DISABLE_STARTUP_MSG) +endif() + +if(DISABLE_PROGRESS_BAR) + add_definitions(-DPSPLASH_DISABLE_PROGRESS_BAR) +endif() + +if(IMG_FULLSCREEN) + add_definitions(-DPSPLASH_IMG_FULLSCREEN=1) +endif() -- 2.17.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[psplash][PATCH 1/2] Change the coding style to be the same as the linux kernel
The original coding style is not conducive to reading, I find
that the coding style of the linux kernel makes reading more enjoyable Signed-off-by: LM.H <hyyoxhk@...> --- psplash-console.c | 287 ++- psplash-console.h | 6 +- psplash-fb.c | 1071 ++++----- psplash-fb.h | 118 +- psplash-systemd.c | 39 +- psplash-write.c | 55 +- psplash.c | 527 ++-- psplash.h | 27 +- radeon-font.h | 5844 ++++++++++++++++++++++----------------------- 9 files changed, 3941 insertions(+), 4033 deletions(-) diff --git a/psplash-console.c b/psplash-console.c index 3a40620..ecff91f 100644 --- a/psplash-console.c +++ b/psplash-console.c @@ -10,178 +10,163 @@ #include "psplash.h" /* Globals, needed for signal handling */ -static int ConsoleFd = -1; -static int VTNum = -1; -static int VTNumInitial = -1; -static int Visible = 1; +static int ConsoleFd = -1; +static int VTNum = -1; +static int VTNumInitial = -1; +static int Visible = 1; -static void -vt_request (int UNUSED(sig)) +static void vt_request(int UNUSED(sig)) { - DBG("mark, visible:%i", Visible); - - if (Visible) - { - /* Allow Switch Away */ - if (ioctl (ConsoleFd, VT_RELDISP, 1) < 0) - perror("Error cannot switch away from console"); - Visible = 0; - - /* FIXME: - * We likely now want to signal the main loop as to exit - * and we've now likely switched to the X tty. Note, this - * seems to happen anyway atm due to select() call getting - * a signal interuption error - not sure if this is really - * reliable however. - */ - } - else - { - if (ioctl (ConsoleFd, VT_RELDISP, VT_ACKACQ)) - perror ("Error can't acknowledge VT switch"); - Visible = 1; - /* FIXME: need to schedule repaint some how ? */ - } + DBG("mark, visible:%i", Visible); + + if (Visible) { + /* Allow Switch Away */ + if (ioctl(ConsoleFd, VT_RELDISP, 1) < 0) + perror("Error cannot switch away from console"); + Visible = 0; + + /* FIXME: + * We likely now want to signal the main loop as to exit + * and we've now likely switched to the X tty. Note, this + * seems to happen anyway atm due to select() call getting + * a signal interuption error - not sure if this is really + * reliable however. + */ + } else { + if (ioctl(ConsoleFd, VT_RELDISP, VT_ACKACQ)) + perror("Error can't acknowledge VT switch"); + Visible = 1; + /* FIXME: need to schedule repaint some how ? */ + } } -static void -psplash_console_ignore_switches (void) +static void psplash_console_ignore_switches(void) { - struct sigaction act; - struct vt_mode vt_mode; - - if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) - { - perror("Error VT_SETMODE failed"); - return; - } - - act.sa_handler = SIG_IGN; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - sigaction (SIGUSR1, &act, 0); - - vt_mode.mode = VT_AUTO; - vt_mode.relsig = 0; - vt_mode.acqsig = 0; - - if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) - perror("Error VT_SETMODE failed"); + struct sigaction act; + struct vt_mode vt_mode; + + if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) { + perror("Error VT_SETMODE failed"); + return; + } + + act.sa_handler = SIG_IGN; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + sigaction(SIGUSR1, &act, 0); + + vt_mode.mode = VT_AUTO; + vt_mode.relsig = 0; + vt_mode.acqsig = 0; + + if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) + perror("Error VT_SETMODE failed"); } -static void -psplash_console_handle_switches (void) +static void psplash_console_handle_switches(void) { - struct sigaction act; - struct vt_mode vt_mode; - - if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) - { - perror("Error VT_SETMODE failed"); - return; - } - - act.sa_handler = vt_request; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - sigaction (SIGUSR1, &act, 0); - - vt_mode.mode = VT_PROCESS; - vt_mode.relsig = SIGUSR1; - vt_mode.acqsig = SIGUSR1; - - if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) - perror("Error VT_SETMODE failed"); + struct sigaction act; + struct vt_mode vt_mode; + + if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) { + perror("Error VT_SETMODE failed"); + return; + } + + act.sa_handler = vt_request; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + sigaction(SIGUSR1, &act, 0); + + vt_mode.mode = VT_PROCESS; + vt_mode.relsig = SIGUSR1; + vt_mode.acqsig = SIGUSR1; + + if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) + perror("Error VT_SETMODE failed"); } -void -psplash_console_switch (void) +void psplash_console_switch(void) { - char vtname[10]; - int fd; - struct vt_stat vt_state; - - if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) - { - perror("Error Cannot open /dev/tty0"); - return; - } - - /* Find next free terminal */ - if ((ioctl(fd, VT_OPENQRY, &VTNum) < 0)) - { - perror("Error unable to find a free virtual terminal"); - close(fd); - return; - } - - close(fd); - - sprintf(vtname,"/dev/tty%d", VTNum); - - if ((ConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0) - { - fprintf(stderr, "Error cannot open %s: %s\n", vtname, strerror(errno)); - return; - } - - if (ioctl(ConsoleFd, VT_GETSTATE, &vt_state) == 0) - VTNumInitial = vt_state.v_active; - - /* Switch to new free terminal */ - - psplash_console_ignore_switches (); - - if (ioctl(ConsoleFd, VT_ACTIVATE, VTNum) != 0) - perror("Error VT_ACTIVATE failed"); - - if (ioctl(ConsoleFd, VT_WAITACTIVE, VTNum) != 0) - perror("Error VT_WAITACTIVE failed\n"); - - psplash_console_handle_switches (); - - if (ioctl(ConsoleFd, KDSETMODE, KD_GRAPHICS) < 0) - perror("Error KDSETMODE KD_GRAPHICS failed\n"); - - return; + char vtname[10]; + int fd; + struct vt_stat vt_state; + + if ((fd = open("/dev/tty0", O_WRONLY, 0)) < 0) { + perror("Error Cannot open /dev/tty0"); + return; + } + + /* Find next free terminal */ + if ((ioctl(fd, VT_OPENQRY, &VTNum) < 0)) { + perror("Error unable to find a free virtual terminal"); + close(fd); + return; + } + + close(fd); + + sprintf(vtname, "/dev/tty%d", VTNum); + + if ((ConsoleFd = open(vtname, O_RDWR | O_NDELAY, 0)) < 0) { + fprintf(stderr, "Error cannot open %s: %s\n", vtname, + strerror(errno)); + return; + } + + if (ioctl(ConsoleFd, VT_GETSTATE, &vt_state) == 0) + VTNumInitial = vt_state.v_active; + + /* Switch to new free terminal */ + + psplash_console_ignore_switches(); + + if (ioctl(ConsoleFd, VT_ACTIVATE, VTNum) != 0) + perror("Error VT_ACTIVATE failed"); + + if (ioctl(ConsoleFd, VT_WAITACTIVE, VTNum) != 0) + perror("Error VT_WAITACTIVE failed\n"); + + psplash_console_handle_switches(); + + if (ioctl(ConsoleFd, KDSETMODE, KD_GRAPHICS) < 0) + perror("Error KDSETMODE KD_GRAPHICS failed\n"); + + return; } -void -psplash_console_reset (void) +void psplash_console_reset(void) { - int fd; - struct vt_stat vt_state; + int fd; + struct vt_stat vt_state; - if (ConsoleFd < 0) - return; + if (ConsoleFd < 0) + return; - /* Back to text mode */ - ioctl(ConsoleFd, KDSETMODE, KD_TEXT); + /* Back to text mode */ + ioctl(ConsoleFd, KDSETMODE, KD_TEXT); - psplash_console_ignore_switches (); + psplash_console_ignore_switches(); - /* Attempt to switch back to initial console if were still active */ - ioctl (ConsoleFd, VT_GETSTATE, &vt_state); + /* Attempt to switch back to initial console if were still active */ + ioctl(ConsoleFd, VT_GETSTATE, &vt_state); - if (VTNum == vt_state.v_active) - { - if (VTNumInitial > -1) - { - ioctl (ConsoleFd, VT_ACTIVATE, VTNumInitial); - ioctl (ConsoleFd, VT_WAITACTIVE, VTNumInitial); - VTNumInitial = -1; - } - } + if (VTNum == vt_state.v_active) { + if (VTNumInitial > -1) { + ioctl(ConsoleFd, VT_ACTIVATE, VTNumInitial); + ioctl(ConsoleFd, VT_WAITACTIVE, VTNumInitial); + VTNumInitial = -1; + } + } - /* Cleanup */ + /* Cleanup */ - close(ConsoleFd); + close(ConsoleFd); - if ((fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0)) >= 0) - { - ioctl (fd, VT_DISALLOCATE, VTNum); - close (fd); - } + if ((fd = open("/dev/tty0", O_RDWR | O_NDELAY, 0)) >= 0) { + ioctl(fd, VT_DISALLOCATE, VTNum); + close(fd); + } - return; + return; } diff --git a/psplash-console.h b/psplash-console.h index c893bf2..ffc1a0e 100644 --- a/psplash-console.h +++ b/psplash-console.h @@ -10,10 +10,8 @@ #ifndef _HAVE_PSPLASH_CONSOLE_H #define _HAVE_PSPLASH_CONSOLE_H -void -psplash_console_switch (void); +void psplash_console_switch(void); -void -psplash_console_reset (void); +void psplash_console_reset(void); #endif diff --git a/psplash-fb.c b/psplash-fb.c index 2babb5f..08bb2ad 100644 --- a/psplash-fb.c +++ b/psplash-fb.c @@ -10,616 +10,589 @@ #include <endian.h> #include "psplash.h" -static void -psplash_wait_for_vsync(PSplashFB *fb) +static void psplash_wait_for_vsync(PSplashFB * fb) { - int err = ioctl(fb->fd, FBIO_WAITFORVSYNC, 0); - if (err != 0) - fprintf(stderr, "Error, FB vsync ioctl [%d]\n", err); + int err = ioctl(fb->fd, FBIO_WAITFORVSYNC, 0); + if (err != 0) + fprintf(stderr, "Error, FB vsync ioctl [%d]\n", err); } -void -psplash_fb_flip(PSplashFB *fb, int sync) +void psplash_fb_flip(PSplashFB * fb, int sync) { - char *tmp; - - if (fb->double_buffering) { - - /* Carry out the flip after a vsync */ - psplash_wait_for_vsync(fb); - - /* Switch the current activate area in fb */ - if (fb->fb_var.yoffset == 0 ) { - fb->fb_var.yoffset = fb->real_height; - } else { - fb->fb_var.yoffset = 0; - } - if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb->fb_var) == -1 ) { - fprintf(stderr, "psplash_fb_flip: FBIOPAN_DISPLAY failed\n"); - } - - /* Switch the front and back data pointers */ - tmp = fb->fdata; - fb->fdata = fb->bdata; - fb->bdata = tmp; - - /* Sync new front to new back when requested */ - if (sync) { - memcpy(fb->bdata, fb->fdata, fb->stride * fb->real_height); - } - } + char *tmp; + + if (fb->double_buffering) { + + /* Carry out the flip after a vsync */ + psplash_wait_for_vsync(fb); + + /* Switch the current activate area in fb */ + if (fb->fb_var.yoffset == 0) { + fb->fb_var.yoffset = fb->real_height; + } else { + fb->fb_var.yoffset = 0; + } + if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb->fb_var) == -1) { + fprintf(stderr, + "psplash_fb_flip: FBIOPAN_DISPLAY failed\n"); + } + + /* Switch the front and back data pointers */ + tmp = fb->fdata; + fb->fdata = fb->bdata; + fb->bdata = tmp; + + /* Sync new front to new back when requested */ + if (sync) { + memcpy(fb->bdata, fb->fdata, + fb->stride * fb->real_height); + } + } } -void -psplash_fb_destroy (PSplashFB *fb) +void psplash_fb_destroy(PSplashFB * fb) { - if (fb->fd >= 0) - close (fb->fd); + if (fb->fd >= 0) + close(fb->fd); - free(fb); + free(fb); } static int -attempt_to_change_pixel_format (PSplashFB *fb, - struct fb_var_screeninfo *fb_var) +attempt_to_change_pixel_format(PSplashFB * fb, struct fb_var_screeninfo *fb_var) { - /* By default the framebuffer driver may have set an oversized - * yres_virtual to support VT scrolling via the panning interface. - * - * We don't try and maintain this since it's more likely that we - * will fail to increase the bpp if the driver's pre allocated - * framebuffer isn't large enough. - */ - fb_var->yres_virtual = fb_var->yres; - - /* First try setting an 8,8,8,0 pixel format so we don't have to do - * any conversions while drawing. */ - - fb_var->bits_per_pixel = 32; - - fb_var->red.offset = 0; - fb_var->red.length = 8; - - fb_var->green.offset = 8; - fb_var->green.length = 8; - - fb_var->blue.offset = 16; - fb_var->blue.length = 8; - - fb_var->transp.offset = 0; - fb_var->transp.length = 0; - - if (ioctl (fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) - { - fprintf(stdout, "Switched to a 32 bpp 8,8,8 frame buffer\n"); - return 1; - } - else - { - fprintf(stderr, - "Error, failed to switch to a 32 bpp 8,8,8 frame buffer\n"); - } - - /* Otherwise try a 16bpp 5,6,5 format */ - - fb_var->bits_per_pixel = 16; - - fb_var->red.offset = 11; - fb_var->red.length = 5; - - fb_var->green.offset = 5; - fb_var->green.length = 6; - - fb_var->blue.offset = 0; - fb_var->blue.length = 5; - - fb_var->transp.offset = 0; - fb_var->transp.length = 0; - - if (ioctl (fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) - { - fprintf(stdout, "Switched to a 16 bpp 5,6,5 frame buffer\n"); - return 1; - } - else - { - fprintf(stderr, - "Error, failed to switch to a 16 bpp 5,6,5 frame buffer\n"); - } - - return 0; + /* By default the framebuffer driver may have set an oversized + * yres_virtual to support VT scrolling via the panning interface. + * + * We don't try and maintain this since it's more likely that we + * will fail to increase the bpp if the driver's pre allocated + * framebuffer isn't large enough. + */ + fb_var->yres_virtual = fb_var->yres; + + /* First try setting an 8,8,8,0 pixel format so we don't have to do + * any conversions while drawing. */ + + fb_var->bits_per_pixel = 32; + + fb_var->red.offset = 0; + fb_var->red.length = 8; + + fb_var->green.offset = 8; + fb_var->green.length = 8; + + fb_var->blue.offset = 16; + fb_var->blue.length = 8; + + fb_var->transp.offset = 0; + fb_var->transp.length = 0; + + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) { + fprintf(stdout, "Switched to a 32 bpp 8,8,8 frame buffer\n"); + return 1; + } else { + fprintf(stderr, + "Error, failed to switch to a 32 bpp 8,8,8 frame buffer\n"); + } + + /* Otherwise try a 16bpp 5,6,5 format */ + + fb_var->bits_per_pixel = 16; + + fb_var->red.offset = 11; + fb_var->red.length = 5; + + fb_var->green.offset = 5; + fb_var->green.length = 6; + + fb_var->blue.offset = 0; + fb_var->blue.length = 5; + + fb_var->transp.offset = 0; + fb_var->transp.length = 0; + + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) { + fprintf(stdout, "Switched to a 16 bpp 5,6,5 frame buffer\n"); + return 1; + } else { + fprintf(stderr, + "Error, failed to switch to a 16 bpp 5,6,5 frame buffer\n"); + } + + return 0; } -PSplashFB* -psplash_fb_new (int angle, int fbdev_id) +PSplashFB *psplash_fb_new(int angle, int fbdev_id) { - struct fb_var_screeninfo fb_var; - struct fb_fix_screeninfo fb_fix; - int off; - char fbdev[9] = "/dev/fb0"; - - PSplashFB *fb = NULL; - - if (fbdev_id > 0 && fbdev_id < 10) - { - // Conversion from integer to ascii. - fbdev[7] = fbdev_id + 48; - } - - if ((fb = malloc (sizeof(PSplashFB))) == NULL) - { - perror ("Error no memory"); - goto fail; - } - - memset (fb, 0, sizeof(PSplashFB)); - - fb->fd = -1; - - if ((fb->fd = open (fbdev, O_RDWR)) < 0) - { - fprintf(stderr, - "Error opening %s\n", - fbdev); - goto fail; - } - - if (ioctl (fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) - { - perror ("Error getting variable framebuffer info"); - goto fail; - } - - if (fb_var.bits_per_pixel < 16) - { - fprintf(stderr, - "Error, no support currently for %i bpp frame buffers\n" - "Trying to change pixel format...\n", - fb_var.bits_per_pixel); - if (!attempt_to_change_pixel_format (fb, &fb_var)) - goto fail; - } - - if (ioctl (fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) - { - perror ("Error getting variable framebuffer info (2)"); - goto fail; - } - - /* NB: It looks like the fbdev concept of fixed vs variable screen info is - * broken. The line_length is part of the fixed info but it can be changed - * if you set a new pixel format. */ - if (ioctl (fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) - { - perror ("Error getting fixed framebuffer info"); - goto fail; - } - - /* Setup double virtual resolution for double buffering */ - if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb_var) == -1) { - fprintf(stderr, "warning: FBIOPAN_DISPLAY not supported, " - "double buffering disabled\n"); - } else { - if (fb_var.yres_virtual == fb_var.yres * 2) { - DBG("Virtual resolution already double"); - fb->double_buffering = 1; - } else { - fb_var.yres_virtual = fb_var.yres * 2; - if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, &fb_var) == -1) { - fprintf(stderr, "warning: FBIOPUT_VSCREENINFO failed, " - "double buffering disabled\n"); - } else { - if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) { - perror(" Error getting the fixed framebuffer info"); - goto fail; - } else { - DBG("Virtual resolution set to double"); - fb->double_buffering = 1; - } - } - } - } - - fb->real_width = fb->width = fb_var.xres; - fb->real_height = fb->height = fb_var.yres; - fb->bpp = fb_var.bits_per_pixel; - fb->stride = fb_fix.line_length; - fb->type = fb_fix.type; - fb->visual = fb_fix.visual; - - fb->red_offset = fb_var.red.offset; - fb->red_length = fb_var.red.length; - fb->green_offset = fb_var.green.offset; - fb->green_length = fb_var.green.length; - fb->blue_offset = fb_var.blue.offset; - fb->blue_length = fb_var.blue.length; - - if (fb->red_offset == 11 && fb->red_length == 5 && - fb->green_offset == 5 && fb->green_length == 6 && - fb->blue_offset == 0 && fb->blue_length == 5) { - fb->rgbmode = RGB565; - } else if (fb->red_offset == 0 && fb->red_length == 5 && - fb->green_offset == 5 && fb->green_length == 6 && - fb->blue_offset == 11 && fb->blue_length == 5) { - fb->rgbmode = BGR565; - } else if (fb->red_offset == 16 && fb->red_length == 8 && - fb->green_offset == 8 && fb->green_length == 8 && - fb->blue_offset == 0 && fb->blue_length == 8) { - fb->rgbmode = RGB888; - } else if (fb->red_offset == 0 && fb->red_length == 8 && - fb->green_offset == 8 && fb->green_length == 8 && - fb->blue_offset == 16 && fb->blue_length == 8) { - fb->rgbmode = BGR888; - } else { - fb->rgbmode = GENERIC; - } - - DBG("width: %i, height: %i, bpp: %i, stride: %i", - fb->width, fb->height, fb->bpp, fb->stride); - - fb->base = (char *) mmap ((caddr_t) NULL, - fb_fix.smem_len, - PROT_READ|PROT_WRITE, - MAP_SHARED, - fb->fd, 0); - - if (fb->base == (char *)-1) - { - perror("Error cannot mmap framebuffer "); - goto fail; - } - - off = (unsigned long) fb_fix.smem_start % (unsigned long) getpagesize(); - - fb->data = fb->base + off; - - if (fb->double_buffering) { - /* fb_var is needed when flipping the buffers */ - memcpy(&fb->fb_var, &fb_var, sizeof(struct fb_var_screeninfo)); - if (fb->fb_var.yoffset == 0) { - printf("to back\n"); - fb->fdata = fb->data; - fb->bdata = fb->data + fb->stride * fb->height; - } else { - printf("to front\n"); - fb->fdata = fb->data + fb->stride * fb->height; - fb->bdata = fb->data; - } - } else { - fb->fdata = fb->data; - fb->bdata = fb->data; - } + struct fb_var_screeninfo fb_var; + struct fb_fix_screeninfo fb_fix; + int off; + char fbdev[9] = "/dev/fb0"; + + PSplashFB *fb = NULL; + + if (fbdev_id > 0 && fbdev_id < 10) { + // Conversion from integer to ascii. + fbdev[7] = fbdev_id + 48; + } + + if ((fb = malloc(sizeof(PSplashFB))) == NULL) { + perror("Error no memory"); + goto fail; + } + + memset(fb, 0, sizeof(PSplashFB)); + + fb->fd = -1; + + if ((fb->fd = open(fbdev, O_RDWR)) < 0) { + fprintf(stderr, "Error opening %s\n", fbdev); + goto fail; + } + + if (ioctl(fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) { + perror("Error getting variable framebuffer info"); + goto fail; + } + + if (fb_var.bits_per_pixel < 16) { + fprintf(stderr, + "Error, no support currently for %i bpp frame buffers\n" + "Trying to change pixel format...\n", + fb_var.bits_per_pixel); + if (!attempt_to_change_pixel_format(fb, &fb_var)) + goto fail; + } + + if (ioctl(fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) { + perror("Error getting variable framebuffer info (2)"); + goto fail; + } + + /* NB: It looks like the fbdev concept of fixed vs variable screen info is + * broken. The line_length is part of the fixed info but it can be changed + * if you set a new pixel format. */ + if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) { + perror("Error getting fixed framebuffer info"); + goto fail; + } + + /* Setup double virtual resolution for double buffering */ + if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb_var) == -1) { + fprintf(stderr, "warning: FBIOPAN_DISPLAY not supported, " + "double buffering disabled\n"); + } else { + if (fb_var.yres_virtual == fb_var.yres * 2) { + DBG("Virtual resolution already double"); + fb->double_buffering = 1; + } else { + fb_var.yres_virtual = fb_var.yres * 2; + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, &fb_var) == -1) { + fprintf(stderr, + "warning: FBIOPUT_VSCREENINFO failed, " + "double buffering disabled\n"); + } else { + if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) + == -1) { + perror + (" Error getting the fixed framebuffer info"); + goto fail; + } else { + DBG("Virtual resolution set to double"); + fb->double_buffering = 1; + } + } + } + } + + fb->real_width = fb->width = fb_var.xres; + fb->real_height = fb->height = fb_var.yres; + fb->bpp = fb_var.bits_per_pixel; + fb->stride = fb_fix.line_length; + fb->type = fb_fix.type; + fb->visual = fb_fix.visual; + + fb->red_offset = fb_var.red.offset; + fb->red_length = fb_var.red.length; + fb->green_offset = fb_var.green.offset; + fb->green_length = fb_var.green.length; + fb->blue_offset = fb_var.blue.offset; + fb->blue_length = fb_var.blue.length; + + if (fb->red_offset == 11 && fb->red_length == 5 && + fb->green_offset == 5 && fb->green_length == 6 && + fb->blue_offset == 0 && fb->blue_length == 5) { + fb->rgbmode = RGB565; + } else if (fb->red_offset == 0 && fb->red_length == 5 && + fb->green_offset == 5 && fb->green_length == 6 && + fb->blue_offset == 11 && fb->blue_length == 5) { + fb->rgbmode = BGR565; + } else if (fb->red_offset == 16 && fb->red_length == 8 && + fb->green_offset == 8 && fb->green_length == 8 && + fb->blue_offset == 0 && fb->blue_length == 8) { + fb->rgbmode = RGB888; + } else if (fb->red_offset == 0 && fb->red_length == 8 && + fb->green_offset == 8 && fb->green_length == 8 && + fb->blue_offset == 16 && fb->blue_length == 8) { + fb->rgbmode = BGR888; + } else { + fb->rgbmode = GENERIC; + } + + DBG("width: %i, height: %i, bpp: %i, stride: %i", + fb->width, fb->height, fb->bpp, fb->stride); + + fb->base = (char *)mmap((caddr_t) NULL, + fb_fix.smem_len, + PROT_READ | PROT_WRITE, MAP_SHARED, fb->fd, 0); + + if (fb->base == (char *)-1) { + perror("Error cannot mmap framebuffer "); + goto fail; + } + + off = (unsigned long)fb_fix.smem_start % (unsigned long)getpagesize(); + + fb->data = fb->base + off; + + if (fb->double_buffering) { + /* fb_var is needed when flipping the buffers */ + memcpy(&fb->fb_var, &fb_var, sizeof(struct fb_var_screeninfo)); + if (fb->fb_var.yoffset == 0) { + printf("to back\n"); + fb->fdata = fb->data; + fb->bdata = fb->data + fb->stride * fb->height; + } else { + printf("to front\n"); + fb->fdata = fb->data + fb->stride * fb->height; + fb->bdata = fb->data; + } + } else { + fb->fdata = fb->data; + fb->bdata = fb->data; + } #if 0 - /* FIXME: No support for 8pp as yet */ - if (visual == FB_VISUAL_PSEUDOCOLOR - || visual == FB_VISUAL_STATIC_PSEUDOCOLOR) - { - static struct fb_cmap cmap; - - cmap.start = 0; - cmap.len = 16; - cmap.red = saved_red; - cmap.green = saved_green; - cmap.blue = saved_blue; - cmap.transp = NULL; - - ioctl (fb, FBIOGETCMAP, &cmap); - } - - if (!status) - atexit (bogl_done); - status = 2; -#endif + /* FIXME: No support for 8pp as yet */ + if (visual == FB_VISUAL_PSEUDOCOLOR + || visual == FB_VISUAL_STATIC_PSEUDOCOLOR) { + static struct fb_cmap cmap; + + cmap.start = 0; + cmap.len = 16; + cmap.red = saved_red; + cmap.green = saved_green; + cmap.blue = saved_blue; + cmap.transp = NULL; + + ioctl(fb, FBIOGETCMAP, &cmap); + } - fb->angle = angle; + if (!status) + atexit(bogl_done); + status = 2; +#endif - switch (fb->angle) - { - case 270: - case 90: - fb->width = fb->real_height; - fb->height = fb->real_width; - break; - case 180: - case 0: - default: - break; - } + fb->angle = angle; + + switch (fb->angle) { + case 270: + case 90: + fb->width = fb->real_height; + fb->height = fb->real_width; + break; + case 180: + case 0: + default: + break; + } - return fb; + return fb; - fail: +fail: - if (fb) - psplash_fb_destroy (fb); + if (fb) + psplash_fb_destroy(fb); - return NULL; + return NULL; } #define OFFSET(fb,x,y) (((y) * (fb)->stride) + ((x) * ((fb)->bpp >> 3))) static inline void -psplash_fb_plot_pixel (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue) +psplash_fb_plot_pixel(PSplashFB * fb, + int x, int y, uint8 red, uint8 green, uint8 blue) { - /* Always write to back data (bdata) which points to the right data with or - * without double buffering support */ - int off; - - if (x < 0 || x > fb->width-1 || y < 0 || y > fb->height-1) - return; - - switch (fb->angle) - { - case 270: - off = OFFSET (fb, fb->height - y - 1, x); - break; - case 180: - off = OFFSET (fb, fb->width - x - 1, fb->height - y - 1); - break; - case 90: - off = OFFSET (fb, y, fb->width - x - 1); - break; - case 0: - default: - off = OFFSET (fb, x, y); - break; - } - - if (fb->rgbmode == RGB565 || fb->rgbmode == RGB888) { - switch (fb->bpp) - { - case 24: + /* Always write to back data (bdata) which points to the right data with or + * without double buffering support */ + int off; + + if (x < 0 || x > fb->width - 1 || y < 0 || y > fb->height - 1) + return; + + switch (fb->angle) { + case 270: + off = OFFSET(fb, fb->height - y - 1, x); + break; + case 180: + off = OFFSET(fb, fb->width - x - 1, fb->height - y - 1); + break; + case 90: + off = OFFSET(fb, y, fb->width - x - 1); + break; + case 0: + default: + off = OFFSET(fb, x, y); + break; + } + + if (fb->rgbmode == RGB565 || fb->rgbmode == RGB888) { + switch (fb->bpp) { + case 24: #if __BYTE_ORDER == __BIG_ENDIAN - *(fb->bdata + off + 0) = red; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = blue; + *(fb->bdata + off + 0) = red; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = blue; #else - *(fb->bdata + off + 0) = blue; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = red; + *(fb->bdata + off + 0) = blue; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = red; #endif - break; - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = (red << 16) | (green << 8) | (blue); - break; - - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((red >> 3) << 11) | ((green >> 2) << 5) | (blue >> 3); - break; - default: - /* depth not supported yet */ - break; - } - } else if (fb->rgbmode == BGR565 || fb->rgbmode == BGR888) { - switch (fb->bpp) - { - case 24: + break; + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = (red << 16) | (green << 8) | (blue); + break; + + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((red >> 3) << 11) | ((green >> 2) << 5) | (blue + >> 3); + break; + default: + /* depth not supported yet */ + break; + } + } else if (fb->rgbmode == BGR565 || fb->rgbmode == BGR888) { + switch (fb->bpp) { + case 24: #if __BYTE_ORDER == __BIG_ENDIAN - *(fb->bdata + off + 0) = blue; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = red; + *(fb->bdata + off + 0) = blue; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = red; #else - *(fb->bdata + off + 0) = red; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = blue; + *(fb->bdata + off + 0) = red; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = blue; #endif - break; - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = (blue << 16) | (green << 8) | (red); - break; - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((blue >> 3) << 11) | ((green >> 2) << 5) | (red >> 3); - break; - default: - /* depth not supported yet */ - break; - } - } else { - switch (fb->bpp) - { - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = ((red >> (8 - fb->red_length)) << fb->red_offset) - | ((green >> (8 - fb->green_length)) << fb->green_offset) - | ((blue >> (8 - fb->blue_length)) << fb->blue_offset); - break; - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((red >> (8 - fb->red_length)) << fb->red_offset) - | ((green >> (8 - fb->green_length)) << fb->green_offset) - | ((blue >> (8 - fb->blue_length)) << fb->blue_offset); - break; - default: - /* depth not supported yet */ - break; - } - } + break; + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = (blue << 16) | (green << 8) | (red); + break; + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((blue >> 3) << 11) | ((green >> 2) << 5) | (red + >> + 3); + break; + default: + /* depth not supported yet */ + break; + } + } else { + switch (fb->bpp) { + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = ((red >> (8 - fb->red_length)) << fb->red_offset) + | ((green >> (8 - fb->green_length)) << fb-> + green_offset) + | ((blue >> (8 - fb->blue_length)) << fb-> + blue_offset); + break; + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((red >> (8 - fb->red_length)) << fb->red_offset) + | ((green >> (8 - fb->green_length)) << fb-> + green_offset) + | ((blue >> (8 - fb->blue_length)) << fb-> + blue_offset); + break; + default: + /* depth not supported yet */ + break; + } + } } void -psplash_fb_draw_rect (PSplashFB *fb, - int x, - int y, - int width, - int height, - uint8 red, - uint8 green, - uint8 blue) +psplash_fb_draw_rect(PSplashFB * fb, + int x, + int y, + int width, int height, uint8 red, uint8 green, uint8 blue) { - int dx, dy; + int dx, dy; - for (dy=0; dy < height; dy++) - for (dx=0; dx < width; dx++) - psplash_fb_plot_pixel (fb, x+dx, y+dy, red, green, blue); + for (dy = 0; dy < height; dy++) + for (dx = 0; dx < width; dx++) + psplash_fb_plot_pixel(fb, x + dx, y + dy, red, green, + blue); } void -psplash_fb_draw_image (PSplashFB *fb, - int x, - int y, - int img_width, - int img_height, - int img_bytes_per_pixel, - int img_rowstride, - uint8 *rle_data) +psplash_fb_draw_image(PSplashFB * fb, + int x, + int y, + int img_width, + int img_height, + int img_bytes_per_pixel, + int img_rowstride, uint8 * rle_data) { - uint8 *p = rle_data; - int dx = 0, dy = 0, total_len; - unsigned int len; - - total_len = img_rowstride * img_height; - - /* FIXME: Optimise, check for over runs ... */ - while ((p - rle_data) < total_len) - { - len = *(p++); - - if (len & 128) - { - len -= 128; - - if (len == 0) break; - - do - { - if ((img_bytes_per_pixel < 4 || *(p+3)) && dx < img_width) - psplash_fb_plot_pixel (fb, x+dx, y+dy, *(p), *(p+1), *(p+2)); - if (++dx * img_bytes_per_pixel >= img_rowstride) { dx=0; dy++; } - } - while (--len); - - p += img_bytes_per_pixel; + uint8 *p = rle_data; + int dx = 0, dy = 0, total_len; + unsigned int len; + + total_len = img_rowstride * img_height; + + /* FIXME: Optimise, check for over runs ... */ + while ((p - rle_data) < total_len) { + len = *(p++); + + if (len & 128) { + len -= 128; + + if (len == 0) + break; + + do { + if ((img_bytes_per_pixel < 4 || *(p + 3)) + && dx < img_width) + psplash_fb_plot_pixel(fb, x + dx, + y + dy, *(p), + *(p + 1), + *(p + 2)); + if (++dx * img_bytes_per_pixel >= img_rowstride) { + dx = 0; + dy++; + } + } + while (--len); + + p += img_bytes_per_pixel; + } else { + if (len == 0) + break; + + do { + if ((img_bytes_per_pixel < 4 || *(p + 3)) + && dx < img_width) + psplash_fb_plot_pixel(fb, x + dx, + y + dy, *(p), + *(p + 1), + *(p + 2)); + if (++dx * img_bytes_per_pixel >= img_rowstride) { + dx = 0; + dy++; + } + p += img_bytes_per_pixel; + } + while (--len && (p - rle_data) < total_len); + } } - else - { - if (len == 0) break; - - do - { - if ((img_bytes_per_pixel < 4 || *(p+3)) && dx < img_width) - psplash_fb_plot_pixel (fb, x+dx, y+dy, *(p), *(p+1), *(p+2)); - if (++dx * img_bytes_per_pixel >= img_rowstride) { dx=0; dy++; } - p += img_bytes_per_pixel; - } - while (--len && (p - rle_data) < total_len); - } - } } /* Font rendering code based on BOGL by Ben Pfaff */ static int -psplash_font_glyph (const PSplashFont *font, wchar_t wc, u_int32_t **bitmap) +psplash_font_glyph(const PSplashFont * font, wchar_t wc, u_int32_t ** bitmap) { - int mask = font->index_mask; - int i; - - for (;;) - { - for (i = font->offset[wc & mask]; font->index[i]; i += 2) - { - if ((wchar_t)(font->index[i] & ~mask) == (wc & ~mask)) - { - if (bitmap != NULL) - *bitmap = &font->content[font->index[i+1]]; - return font->index[i] & mask; - } + int mask = font->index_mask; + int i; + + for (;;) { + for (i = font->offset[wc & mask]; font->index[i]; i += 2) { + if ((wchar_t) (font->index[i] & ~mask) == (wc & ~mask)) { + if (bitmap != NULL) + *bitmap = + &font->content[font->index[i + 1]]; + return font->index[i] & mask; + } + } } - } - return 0; + return 0; } void -psplash_fb_text_size (int *width, - int *height, - const PSplashFont *font, - const char *text) +psplash_fb_text_size(int *width, + int *height, const PSplashFont * font, const char *text) { - char *c = (char*)text; - wchar_t wc; - int k, n, w, h, mw; - - n = strlen (text); - mw = h = w = 0; - - mbtowc (0, 0, 0); - for (; (k = mbtowc (&wc, c, n)) > 0; c += k, n -= k) - { - if (*c == '\n') - { - if (w > mw) - mw = w; - w = 0; - h += font->height; - continue; + char *c = (char *)text; + wchar_t wc; + int k, n, w, h, mw; + + n = strlen(text); + mw = h = w = 0; + + mbtowc(0, 0, 0); + for (; (k = mbtowc(&wc, c, n)) > 0; c += k, n -= k) { + if (*c == '\n') { + if (w > mw) + mw = w; + w = 0; + h += font->height; + continue; + } + + w += psplash_font_glyph(font, wc, NULL); } - w += psplash_font_glyph (font, wc, NULL); - } - - *width = (w > mw) ? w : mw; - *height = (h == 0) ? font->height : h; + *width = (w > mw) ? w : mw; + *height = (h == 0) ? font->height : h; } void -psplash_fb_draw_text (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue, - const PSplashFont *font, - const char *text) +psplash_fb_draw_text(PSplashFB * fb, + int x, + int y, + uint8 red, + uint8 green, + uint8 blue, const PSplashFont * font, const char *text) { - int h, w, k, n, cx, cy, dx, dy; - char *c = (char*)text; - wchar_t wc; - - n = strlen (text); - h = font->height; - dx = dy = 0; - - mbtowc (0, 0, 0); - for (; (k = mbtowc (&wc, c, n)) > 0; c += k, n -= k) - { - u_int32_t *glyph = NULL; - - if (*c == '\n') - { - dy += h; - dx = 0; - continue; + int h, w, k, n, cx, cy, dx, dy; + char *c = (char *)text; + wchar_t wc; + + n = strlen(text); + h = font->height; + dx = dy = 0; + + mbtowc(0, 0, 0); + for (; (k = mbtowc(&wc, c, n)) > 0; c += k, n -= k) { + u_int32_t *glyph = NULL; + + if (*c == '\n') { + dy += h; + dx = 0; + continue; + } + + w = psplash_font_glyph(font, wc, &glyph); + + if (glyph == NULL) + continue; + + for (cy = 0; cy < h; cy++) { + u_int32_t g = *glyph++; + + for (cx = 0; cx < w; cx++) { + if (g & 0x80000000) + psplash_fb_plot_pixel(fb, x + dx + cx, + y + dy + cy, red, + green, blue); + g <<= 1; + } + } + + dx += w; } - - w = psplash_font_glyph (font, wc, &glyph); - - if (glyph == NULL) - continue; - - for (cy = 0; cy < h; cy++) - { - u_int32_t g = *glyph++; - - for (cx = 0; cx < w; cx++) - { - if (g & 0x80000000) - psplash_fb_plot_pixel (fb, x+dx+cx, y+dy+cy, - red, green, blue); - g <<= 1; - } - } - - dx += w; - } } - diff --git a/psplash-fb.h b/psplash-fb.h index 16e2b20..a52306b 100644 --- a/psplash-fb.h +++ b/psplash-fb.h @@ -11,87 +11,73 @@ #define _HAVE_PSPLASH_FB_H enum RGBMode { - RGB565, - BGR565, - RGB888, - BGR888, - GENERIC, + RGB565, + BGR565, + RGB888, + BGR888, + GENERIC, }; -typedef struct PSplashFB -{ - int fd; - struct fb_var_screeninfo fb_var; - struct termios save_termios; - int type; - int visual; - int width, height; - int bpp; - int stride; - char *data; - char *base; +typedef struct PSplashFB { + int fd; + struct fb_var_screeninfo fb_var; + struct termios save_termios; + int type; + int visual; + int width, height; + int bpp; + int stride; + char *data; + char *base; - /* Support for double buffering */ - int double_buffering; - char *bdata; - char *fdata; + /* Support for double buffering */ + int double_buffering; + char *bdata; + char *fdata; - int angle, fbdev_id; - int real_width, real_height; + int angle, fbdev_id; + int real_width, real_height; - enum RGBMode rgbmode; - int red_offset; - int red_length; - int green_offset; - int green_length; - int blue_offset; - int blue_length; -} -PSplashFB; + enum RGBMode rgbmode; + int red_offset; + int red_length; + int green_offset; + int green_length; + int blue_offset; + int blue_length; +} PSplashFB; -void -psplash_fb_destroy (PSplashFB *fb); +void psplash_fb_destroy(PSplashFB * fb); -PSplashFB* -psplash_fb_new (int angle, int fbdev_id); +PSplashFB *psplash_fb_new(int angle, int fbdev_id); void -psplash_fb_draw_rect (PSplashFB *fb, - int x, - int y, - int width, - int height, - uint8 red, - uint8 green, - uint8 blue); +psplash_fb_draw_rect(PSplashFB * fb, + int x, + int y, + int width, int height, uint8 red, uint8 green, uint8 blue); void -psplash_fb_draw_image (PSplashFB *fb, - int x, - int y, - int img_width, - int img_height, - int img_bytes_pre_pixel, - int img_rowstride, - uint8 *rle_data); +psplash_fb_draw_image(PSplashFB * fb, + int x, + int y, + int img_width, + int img_height, + int img_bytes_pre_pixel, + int img_rowstride, uint8 * rle_data); void -psplash_fb_text_size (int *width, - int *height, - const PSplashFont *font, - const char *text); +psplash_fb_text_size(int *width, + int *height, const PSplashFont * font, const char *text); void -psplash_fb_draw_text (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue, - const PSplashFont *font, - const char *text); +psplash_fb_draw_text(PSplashFB * fb, + int x, + int y, + uint8 red, + uint8 green, + uint8 blue, const PSplashFont * font, const char *text); -void -psplash_fb_flip(PSplashFB *fb, int sync); +void psplash_fb_flip(PSplashFB * fb, int sync); #endif diff --git a/psplash-systemd.c b/psplash-systemd.c index 840bd4e..87e0f4a 100644 --- a/psplash-systemd.c +++ b/psplash-systemd.c @@ -33,7 +33,7 @@ int get_progress(void) char buffer[20]; int len; - /* Connect to the system bus */ + /* Connect to the system bus */ r = sd_bus_new(&bus); if (r < 0) goto finish; @@ -44,19 +44,20 @@ int get_progress(void) r = sd_bus_start(bus); if (r < 0) { - fprintf(stderr, "Failed to connect to systemd private bus: %s\n", strerror(-r)); + fprintf(stderr, + "Failed to connect to systemd private bus: %s\n", + strerror(-r)); goto finish; - } - - /* Issue the method call and store the respons message in m */ - r = sd_bus_get_property_trivial(bus, - "org.freedesktop.systemd1", /* service to contact */ - "/org/freedesktop/systemd1", /* object path */ - "org.freedesktop.systemd1.Manager", /* interface name */ - "Progress", /* method name */ - &error, /* object to return error in */ - 'd', /* return message on success */ - &progress); /* value */ + } + + /* Issue the method call and store the respons message in m */ + r = sd_bus_get_property_trivial(bus, "org.freedesktop.systemd1", /* service to contact */ + "/org/freedesktop/systemd1", /* object path */ + "org.freedesktop.systemd1.Manager", /* interface name */ + "Progress", /* method name */ + &error, /* object to return error in */ + 'd', /* return message on success */ + &progress); /* value */ if (r < 0) { fprintf(stderr, "Failed to get progress: %s\n", error.message); goto finish; @@ -70,7 +71,8 @@ int get_progress(void) if (current_progress < progress) current_progress = progress; - len = snprintf(buffer, 20, "PROGRESS %d", (int)(current_progress * 100)); + len = + snprintf(buffer, 20, "PROGRESS %d", (int)(current_progress * 100)); write(pipe_fd, buffer, len + 1); if (progress == 1.0) { @@ -86,9 +88,7 @@ finish: return r; } -int psplash_handler(sd_event_source *s, - uint64_t usec, - void *userdata) +int psplash_handler(sd_event_source * s, uint64_t usec, void *userdata) { sd_event *event = userdata; int r; @@ -125,7 +125,7 @@ int main() chdir(rundir); - if ((pipe_fd = open (PSPLASH_FIFO,O_WRONLY|O_NONBLOCK)) == -1) { + if ((pipe_fd = open(PSPLASH_FIFO, O_WRONLY | O_NONBLOCK)) == -1) { fprintf(stderr, "Error unable to open fifo"); exit(EXIT_FAILURE); } @@ -135,8 +135,7 @@ int main() goto finish; if (sigemptyset(&ss) < 0 || - sigaddset(&ss, SIGTERM) < 0 || - sigaddset(&ss, SIGINT) < 0) { + sigaddset(&ss, SIGTERM) < 0 || sigaddset(&ss, SIGINT) < 0) { r = -errno; goto finish; } diff --git a/psplash-write.c b/psplash-write.c index a12467a..45aa9fc 100644 --- a/psplash-write.c +++ b/psplash-write.c @@ -19,34 +19,31 @@ #include <errno.h> #include "psplash.h" -int main(int argc, char **argv) +int main(int argc, char **argv) { - char *rundir; - int pipe_fd; - - rundir = getenv("PSPLASH_FIFO_DIR"); - - if (!rundir) - rundir = "/run"; - - if (argc!=2) - { - fprintf(stderr, "Wrong number of arguments\n"); - exit(-1); - } - - chdir(rundir); - - if ((pipe_fd = open (PSPLASH_FIFO,O_WRONLY|O_NONBLOCK)) == -1) - { - /* Silently error out instead of covering the boot process in - errors when psplash has exitted due to a VC switch */ - /* perror("Error unable to open fifo"); */ - exit (-1); - } - - write(pipe_fd, argv[1], strlen(argv[1])+1); - - return 0; -} + char *rundir; + int pipe_fd; + + rundir = getenv("PSPLASH_FIFO_DIR"); + + if (!rundir) + rundir = "/run"; + + if (argc != 2) { + fprintf(stderr, "Wrong number of arguments\n"); + exit(-1); + } + chdir(rundir); + + if ((pipe_fd = open(PSPLASH_FIFO, O_WRONLY | O_NONBLOCK)) == -1) { + /* Silently error out instead of covering the boot process in + errors when psplash has exitted due to a VC switch */ + /* perror("Error unable to open fifo"); */ + exit(-1); + } + + write(pipe_fd, argv[1], strlen(argv[1]) + 1); + + return 0; +} diff --git a/psplash.c b/psplash.c index ee1af6b..986670b 100644 --- a/psplash.c +++ b/psplash.c @@ -27,329 +27,302 @@ * (fb)->height / PSPLASH_IMG_SPLIT_DENOMINATOR) \ ) -void -psplash_exit (int UNUSED(signum)) +void psplash_exit(int UNUSED(signum)) { - DBG("mark"); + DBG("mark"); - psplash_console_reset (); + psplash_console_reset(); } -void -psplash_draw_msg (PSplashFB *fb, const char *msg) +void psplash_draw_msg(PSplashFB * fb, const char *msg) { - int w, h; + int w, h; - psplash_fb_text_size (&w, &h, &FONT_DEF, msg); + psplash_fb_text_size(&w, &h, &FONT_DEF, msg); - DBG("displaying '%s' %ix%i\n", msg, w, h); + DBG("displaying '%s' %ix%i\n", msg, w, h); - /* Clear */ + /* Clear */ - psplash_fb_draw_rect (fb, - 0, - SPLIT_LINE_POS(fb) - h, - fb->width, - h, - PSPLASH_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, + 0, + SPLIT_LINE_POS(fb) - h, + fb->width, h, PSPLASH_BACKGROUND_COLOR); - psplash_fb_draw_text (fb, - (fb->width-w)/2, - SPLIT_LINE_POS(fb) - h, - PSPLASH_TEXT_COLOR, - &FONT_DEF, - msg); + psplash_fb_draw_text(fb, + (fb->width - w) / 2, + SPLIT_LINE_POS(fb) - h, + PSPLASH_TEXT_COLOR, &FONT_DEF, msg); } #ifdef PSPLASH_SHOW_PROGRESS_BAR -void -psplash_draw_progress (PSplashFB *fb, int value) +void psplash_draw_progress(PSplashFB * fb, int value) { - int x, y, width, height, barwidth; - - /* 4 pix border */ - x = ((fb->width - BAR_IMG_WIDTH)/2) + 4 ; - y = SPLIT_LINE_POS(fb) + 4; - width = BAR_IMG_WIDTH - 8; - height = BAR_IMG_HEIGHT - 8; - - if (value > 0) - { - barwidth = (CLAMP(value,0,100) * width) / 100; - psplash_fb_draw_rect (fb, x + barwidth, y, - width - barwidth, height, - PSPLASH_BAR_BACKGROUND_COLOR); - psplash_fb_draw_rect (fb, x, y, barwidth, - height, PSPLASH_BAR_COLOR); - } - else - { - barwidth = (CLAMP(-value,0,100) * width) / 100; - psplash_fb_draw_rect (fb, x, y, - width - barwidth, height, - PSPLASH_BAR_BACKGROUND_COLOR); - psplash_fb_draw_rect (fb, x + width - barwidth, - y, barwidth, height, - PSPLASH_BAR_COLOR); - } - - DBG("value: %i, width: %i, barwidth :%i\n", value, - width, barwidth); + int x, y, width, height, barwidth; + + /* 4 pix border */ + x = ((fb->width - BAR_IMG_WIDTH) / 2) + 4; + y = SPLIT_LINE_POS(fb) + 4; + width = BAR_IMG_WIDTH - 8; + height = BAR_IMG_HEIGHT - 8; + + if (value > 0) { + barwidth = (CLAMP(value, 0, 100) * width) / 100; + psplash_fb_draw_rect(fb, x + barwidth, y, + width - barwidth, height, + PSPLASH_BAR_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, x, y, barwidth, + height, PSPLASH_BAR_COLOR); + } else { + barwidth = (CLAMP(-value, 0, 100) * width) / 100; + psplash_fb_draw_rect(fb, x, y, + width - barwidth, height, + PSPLASH_BAR_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, x + width - barwidth, + y, barwidth, height, PSPLASH_BAR_COLOR); + } + + DBG("value: %i, width: %i, barwidth :%i\n", value, width, barwidth); } #endif /* PSPLASH_SHOW_PROGRESS_BAR */ -static int -parse_command (PSplashFB *fb, char *string) +static int parse_command(PSplashFB * fb, char *string) { - char *command; - - DBG("got cmd %s", string); - - if (strcmp(string,"QUIT") == 0) - return 1; - - command = strtok(string," "); - - if (!strcmp(command,"MSG")) - { - char *arg = strtok(NULL, "\0"); - - if (arg) - psplash_draw_msg (fb, arg); - } - #ifdef PSPLASH_SHOW_PROGRESS_BAR - else if (!strcmp(command,"PROGRESS")) - { - char *arg = strtok(NULL, "\0"); - - if (arg) - psplash_draw_progress (fb, atoi(arg)); - } + char *command; + + DBG("got cmd %s", string); + + if (strcmp(string, "QUIT") == 0) + return 1; + + command = strtok(string, " "); + + if (!strcmp(command, "MSG")) { + char *arg = strtok(NULL, "\0"); + + if (arg) + psplash_draw_msg(fb, arg); + } +#ifdef PSPLASH_SHOW_PROGRESS_BAR + else if (!strcmp(command, "PROGRESS")) { + char *arg = strtok(NULL, "\0"); + + if (arg) + psplash_draw_progress(fb, atoi(arg)); + } #endif - else if (!strcmp(command,"QUIT")) - { - return 1; - } + else if (!strcmp(command, "QUIT")) { + return 1; + } - psplash_fb_flip(fb, 0); - return 0; + psplash_fb_flip(fb, 0); + return 0; } -void -psplash_main (PSplashFB *fb, int pipe_fd, int timeout) +void psplash_main(PSplashFB * fb, int pipe_fd, int timeout) { - int err; - ssize_t length = 0; - fd_set descriptors; - struct timeval tv; - char *end; - char *cmd; - char command[2048]; - - tv.tv_sec = timeout; - tv.tv_usec = 0; - - FD_ZERO(&descriptors); - FD_SET(pipe_fd, &descriptors); - - end = command; - - while (1) - { - if (timeout != 0) - err = select(pipe_fd+1, &descriptors, NULL, NULL, &tv); - else - err = select(pipe_fd+1, &descriptors, NULL, NULL, NULL); - - if (err <= 0) - { - /* - if (errno == EINTR) - continue; - */ - return; - } - - length += read (pipe_fd, end, sizeof(command) - (end - command)); - - if (length == 0) - { - /* Reopen to see if there's anything more for us */ - close(pipe_fd); - pipe_fd = open(PSPLASH_FIFO,O_RDONLY|O_NONBLOCK); - goto out; + int err; + ssize_t length = 0; + fd_set descriptors; + struct timeval tv; + char *end; + char *cmd; + char command[2048]; + + tv.tv_sec = timeout; + tv.tv_usec = 0; + + FD_ZERO(&descriptors); + FD_SET(pipe_fd, &descriptors); + + end = command; + + while (1) { + if (timeout != 0) + err = + select(pipe_fd + 1, &descriptors, NULL, NULL, &tv); + else + err = + select(pipe_fd + 1, &descriptors, NULL, NULL, NULL); + + if (err <= 0) { + /* + if (errno == EINTR) + continue; + */ + return; + } + + length += read(pipe_fd, end, sizeof(command) - (end - command)); + + if (length == 0) { + /* Reopen to see if there's anything more for us */ + close(pipe_fd); + pipe_fd = open(PSPLASH_FIFO, O_RDONLY | O_NONBLOCK); + goto out; + } + + cmd = command; + do { + int cmdlen; + char *cmdend = memchr(cmd, '\n', length); + + /* Replace newlines with string termination */ + if (cmdend) + *cmdend = '\0'; + + cmdlen = strnlen(cmd, length); + + /* Skip string terminations */ + if (!cmdlen && length) { + length--; + cmd++; + continue; + } + + if (parse_command(fb, cmd)) + return; + + length -= cmdlen; + cmd += cmdlen; + } while (length); + +out: + end = &command[length]; + + tv.tv_sec = timeout; + tv.tv_usec = 0; + + FD_ZERO(&descriptors); + FD_SET(pipe_fd, &descriptors); } - cmd = command; - do { - int cmdlen; - char *cmdend = memchr(cmd, '\n', length); - - /* Replace newlines with string termination */ - if (cmdend) - *cmdend = '\0'; - - cmdlen = strnlen(cmd, length); - - /* Skip string terminations */ - if (!cmdlen && length) - { - length--; - cmd++; - continue; - } - - if (parse_command(fb, cmd)) - return; - - length -= cmdlen; - cmd += cmdlen; - } while (length); - - out: - end = &command[length]; - - tv.tv_sec = timeout; - tv.tv_usec = 0; - - FD_ZERO(&descriptors); - FD_SET(pipe_fd,&descriptors); - } - - return; + return; } -int -main (int argc, char** argv) +int main(int argc, char **argv) { - char *rundir; - int pipe_fd, i = 0, angle = 0, fbdev_id = 0, ret = 0; - PSplashFB *fb; - bool disable_console_switch = FALSE; - - signal(SIGHUP, psplash_exit); - signal(SIGINT, psplash_exit); - signal(SIGQUIT, psplash_exit); - - while (++i < argc) { - if (!strcmp(argv[i],"-n") || !strcmp(argv[i],"--no-console-switch")) - { - disable_console_switch = TRUE; - continue; - } - - if (!strcmp(argv[i],"-a") || !strcmp(argv[i],"--angle")) - { - if (++i >= argc) goto fail; - angle = atoi(argv[i]); - continue; - } - - if (!strcmp(argv[i],"-f") || !strcmp(argv[i],"--fbdev")) - { - if (++i >= argc) goto fail; - fbdev_id = atoi(argv[i]); - continue; - } - - fail: - fprintf(stderr, - "Usage: %s [-n|--no-console-switch][-a|--angle <0|90|180|270>][-f|--fbdev <0..9>]\n", - argv[0]); - exit(-1); - } - - rundir = getenv("PSPLASH_FIFO_DIR"); - - if (!rundir) - rundir = "/run"; - - chdir(rundir); - - if (mkfifo(PSPLASH_FIFO, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP)) - { - if (errno!=EEXIST) - { - perror("mkfifo"); - exit(-1); - } - } - - pipe_fd = open (PSPLASH_FIFO,O_RDONLY|O_NONBLOCK); - - if (pipe_fd==-1) - { - perror("pipe open"); - exit(-2); - } - - if (!disable_console_switch) - psplash_console_switch (); - - if ((fb = psplash_fb_new(angle,fbdev_id)) == NULL) - { - ret = -1; - goto fb_fail; - } + char *rundir; + int pipe_fd, i = 0, angle = 0, fbdev_id = 0, ret = 0; + PSplashFB *fb; + bool disable_console_switch = FALSE; + + signal(SIGHUP, psplash_exit); + signal(SIGINT, psplash_exit); + signal(SIGQUIT, psplash_exit); + + while (++i < argc) { + if (!strcmp(argv[i], "-n") + || !strcmp(argv[i], "--no-console-switch")) { + disable_console_switch = TRUE; + continue; + } + + if (!strcmp(argv[i], "-a") || !strcmp(argv[i], "--angle")) { + if (++i >= argc) + goto fail; + angle = atoi(argv[i]); + continue; + } + + if (!strcmp(argv[i], "-f") || !strcmp(argv[i], "--fbdev")) { + if (++i >= argc) + goto fail; + fbdev_id = atoi(argv[i]); + continue; + } + +fail: + fprintf(stderr, + "Usage: %s [-n|--no-console-switch][-a|--angle <0|90|180|270>][-f|--fbdev <0..9>]\n", + argv[0]); + exit(-1); + } + + rundir = getenv("PSPLASH_FIFO_DIR"); + + if (!rundir) + rundir = "/run"; + + chdir(rundir); + + if (mkfifo(PSPLASH_FIFO, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP)) { + if (errno != EEXIST) { + perror("mkfifo"); + exit(-1); + } + } + + pipe_fd = open(PSPLASH_FIFO, O_RDONLY | O_NONBLOCK); + + if (pipe_fd == -1) { + perror("pipe open"); + exit(-2); + } + + if (!disable_console_switch) + psplash_console_switch(); + if ((fb = psplash_fb_new(angle, fbdev_id)) == NULL) { + ret = -1; + goto fb_fail; + } #ifdef HAVE_SYSTEMD - sd_notify(0, "READY=1"); + sd_notify(0, "READY=1"); #endif - /* Clear the background with #ecece1 */ - psplash_fb_draw_rect (fb, 0, 0, fb->width, fb->height, - PSPLASH_BACKGROUND_COLOR); + /* Clear the background with #ecece1 */ + psplash_fb_draw_rect(fb, 0, 0, fb->width, fb->height, + PSPLASH_BACKGROUND_COLOR); - /* Draw the Poky logo */ - psplash_fb_draw_image (fb, - (fb->width - POKY_IMG_WIDTH)/2, + /* Draw the Poky logo */ + psplash_fb_draw_image(fb, (fb->width - POKY_IMG_WIDTH) / 2, #if PSPLASH_IMG_FULLSCREEN - (fb->height - POKY_IMG_HEIGHT)/2, + (fb->height - POKY_IMG_HEIGHT) / 2, #else - (fb->height * PSPLASH_IMG_SPLIT_NUMERATOR - / PSPLASH_IMG_SPLIT_DENOMINATOR - POKY_IMG_HEIGHT)/2, + (fb->height * PSPLASH_IMG_SPLIT_NUMERATOR + / PSPLASH_IMG_SPLIT_DENOMINATOR - + POKY_IMG_HEIGHT) / 2, #endif - POKY_IMG_WIDTH, - POKY_IMG_HEIGHT, - POKY_IMG_BYTES_PER_PIXEL, - POKY_IMG_ROWSTRIDE, - POKY_IMG_RLE_PIXEL_DATA); + POKY_IMG_WIDTH, + POKY_IMG_HEIGHT, + POKY_IMG_BYTES_PER_PIXEL, + POKY_IMG_ROWSTRIDE, POKY_IMG_RLE_PIXEL_DATA); #ifdef PSPLASH_SHOW_PROGRESS_BAR - /* Draw progress bar border */ - psplash_fb_draw_image (fb, - (fb->width - BAR_IMG_WIDTH)/2, - SPLIT_LINE_POS(fb), - BAR_IMG_WIDTH, - BAR_IMG_HEIGHT, - BAR_IMG_BYTES_PER_PIXEL, - BAR_IMG_ROWSTRIDE, - BAR_IMG_RLE_PIXEL_DATA); - - psplash_draw_progress (fb, 0); + /* Draw progress bar border */ + psplash_fb_draw_image(fb, + (fb->width - BAR_IMG_WIDTH) / 2, + SPLIT_LINE_POS(fb), + BAR_IMG_WIDTH, + BAR_IMG_HEIGHT, + BAR_IMG_BYTES_PER_PIXEL, + BAR_IMG_ROWSTRIDE, BAR_IMG_RLE_PIXEL_DATA); + + psplash_draw_progress(fb, 0); #endif #ifdef PSPLASH_STARTUP_MSG - psplash_draw_msg (fb, PSPLASH_STARTUP_MSG); + psplash_draw_msg(fb, PSPLASH_STARTUP_MSG); #endif - /* Scene set so let's flip the buffers. */ - /* The first time we also synchronize the buffers so we can build on an - * existing scene. After the first scene is set in both buffers, only the - * text and progress bar change which overwrite the specific areas with every - * update. - */ - psplash_fb_flip(fb, 1); + /* Scene set so let's flip the buffers. */ + /* The first time we also synchronize the buffers so we can build on an + * existing scene. After the first scene is set in both buffers, only the + * text and progress bar change which overwrite the specific areas with every + * update. + */ + psplash_fb_flip(fb, 1); - psplash_main (fb, pipe_fd, 0); + psplash_main(fb, pipe_fd, 0); - psplash_fb_destroy (fb); + psplash_fb_destroy(fb); - fb_fail: - unlink(PSPLASH_FIFO); +fb_fail: + unlink(PSPLASH_FIFO); - if (!disable_console_switch) - psplash_console_reset (); + if (!disable_console_switch) + psplash_console_reset(); - return ret; + return ret; } diff --git a/psplash.h b/psplash.h index 1c42ec7..8d0e57f 100644 --- a/psplash.h +++ b/psplash.h @@ -35,9 +35,9 @@ #include <termios.h> #include <unistd.h> -typedef uint8_t uint8; +typedef uint8_t uint8; typedef uint16_t uint16; -typedef int bool; +typedef int bool; #ifndef FALSE #define FALSE 0 @@ -62,22 +62,19 @@ typedef int bool; #endif #ifdef __GNUC__ -# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) +#define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) #else -# define UNUSED(x) UNUSED_ ## x +#define UNUSED(x) UNUSED_ ## x #endif -typedef struct PSplashFont -{ - char *name; /* Font name. */ - int height; /* Height in pixels. */ - int index_mask; /* ((1 << N) - 1). */ - int *offset; /* (1 << N) offsets into index. */ - int *index; - u_int32_t *content; -} -PSplashFont; - +typedef struct PSplashFont { + char *name; /* Font name. */ + int height; /* Height in pixels. */ + int index_mask; /* ((1 << N) - 1). */ + int *offset; /* (1 << N) offsets into index. */ + int *index; + u_int32_t *content; +} PSplashFont; #include "psplash-fb.h" #include "psplash-console.h" diff --git a/radeon-font.h b/radeon-font.h index ca70cba..54f8e1b 100644 --- a/radeon-font.h +++ b/radeon-font.h @@ -6,646 +6,646 @@ /* Offsets into index. */ static int _radon_offset[256] = { - 569, /* (0x0) */ - 569, /* (0x1) */ - 569, /* (0x2) */ - 569, /* (0x3) */ - 569, /* (0x4) */ - 569, /* (0x5) */ - 569, /* (0x6) */ - 569, /* (0x7) */ - 569, /* (0x8) */ - 569, /* (0x9) */ - 569, /* (0xa) */ - 569, /* (0xb) */ - 569, /* (0xc) */ - 569, /* (0xd) */ - 569, /* (0xe) */ - 569, /* (0xf) */ - 569, /* (0x10) */ - 569, /* (0x11) */ - 569, /* (0x12) */ - 569, /* (0x13) */ - 569, /* (0x14) */ - 569, /* (0x15) */ - 569, /* (0x16) */ - 569, /* (0x17) */ - 569, /* (0x18) */ - 569, /* (0x19) */ - 569, /* (0x1a) */ - 569, /* (0x1b) */ - 569, /* (0x1c) */ - 569, /* (0x1d) */ - 569, /* (0x1e) */ - 569, /* (0x1f) */ - 0, /* (0x20) */ - 3, /* (0x21) */ - 6, /* (0x22) */ - 9, /* (0x23) */ - 12, /* (0x24) */ - 15, /* (0x25) */ - 18, /* (0x26) */ - 21, /* (0x27) */ - 24, /* (0x28) */ - 27, /* (0x29) */ - 30, /* (0x2a) */ - 33, /* (0x2b) */ - 36, /* (0x2c) */ - 39, /* (0x2d) */ - 42, /* (0x2e) */ - 45, /* (0x2f) */ - 48, /* (0x30) */ - 51, /* (0x31) */ - 54, /* (0x32) */ - 57, /* (0x33) */ - 60, /* (0x34) */ - 63, /* (0x35) */ - 66, /* (0x36) */ - 69, /* (0x37) */ - 72, /* (0x38) */ - 75, /* (0x39) */ - 78, /* (0x3a) */ - 81, /* (0x3b) */ - 84, /* (0x3c) */ - 87, /* (0x3d) */ - 90, /* (0x3e) */ - 93, /* (0x3f) */ - 96, /* (0x40) */ - 99, /* (0x41) */ - 102, /* (0x42) */ - 105, /* (0x43) */ - 108, /* (0x44) */ - 111, /* (0x45) */ - 114, /* (0x46) */ - 117, /* (0x47) */ - 120, /* (0x48) */ - 123, /* (0x49) */ - 126, /* (0x4a) */ - 129, /* (0x4b) */ - 132, /* (0x4c) */ - 135, /* (0x4d) */ - 138, /* (0x4e) */ - 141, /* (0x4f) */ - 144, /* (0x50) */ - 147, /* (0x51) */ - 150, /* (0x52) */ - 153, /* (0x53) */ - 156, /* (0x54) */ - 159, /* (0x55) */ - 162, /* (0x56) */ - 165, /* (0x57) */ - 168, /* (0x58) */ - 171, /* (0x59) */ - 174, /* (0x5a) */ - 177, /* (0x5b) */ - 180, /* (0x5c) */ - 183, /* (0x5d) */ - 186, /* (0x5e) */ - 189, /* (0x5f) */ - 192, /* (0x60) */ - 195, /* (0x61) */ - 198, /* (0x62) */ - 201, /* (0x63) */ - 204, /* (0x64) */ - 207, /* (0x65) */ - 210, /* (0x66) */ - 213, /* (0x67) */ - 216, /* (0x68) */ - 219, /* (0x69) */ - 222, /* (0x6a) */ - 225, /* (0x6b) */ - 228, /* (0x6c) */ - 231, /* (0x6d) */ - 234, /* (0x6e) */ - 237, /* (0x6f) */ - 240, /* (0x70) */ - 243, /* (0x71) */ - 246, /* (0x72) */ - 249, /* (0x73) */ - 252, /* (0x74) */ - 255, /* (0x75) */ - 258, /* (0x76) */ - 261, /* (0x77) */ - 264, /* (0x78) */ - 267, /* (0x79) */ - 270, /* (0x7a) */ - 273, /* (0x7b) */ - 276, /* (0x7c) */ - 279, /* (0x7d) */ - 282, /* (0x7e) */ - 569, /* (0x7f) */ - 569, /* (0x80) */ - 569, /* (0x81) */ - 569, /* (0x82) */ - 569, /* (0x83) */ - 569, /* (0x84) */ - 569, /* (0x85) */ - 569, /* (0x86) */ - 569, /* (0x87) */ - 569, /* (0x88) */ - 569, /* (0x89) */ - 569, /* (0x8a) */ - 569, /* (0x8b) */ - 569, /* (0x8c) */ - 569, /* (0x8d) */ - 569, /* (0x8e) */ - 569, /* (0x8f) */ - 569, /* (0x90) */ - 569, /* (0x91) */ - 569, /* (0x92) */ - 569, /* (0x93) */ - 569, /* (0x94) */ - 569, /* (0x95) */ - 569, /* (0x96) */ - 569, /* (0x97) */ - 569, /* (0x98) */ - 569, /* (0x99) */ - 569, /* (0x9a) */ - 569, /* (0x9b) */ - 569, /* (0x9c) */ - 569, /* (0x9d) */ - 569, /* (0x9e) */ - 569, /* (0x9f) */ - 285, /* (0xa0) */ - 288, /* (0xa1) */ - 291, /* (0xa2) */ - 294, /* (0xa3) */ - 297, /* (0xa4) */ - 300, /* (0xa5) */ - 303, /* (0xa6) */ - 306, /* (0xa7) */ - 309, /* (0xa8) */ - 312, /* (0xa9) */ - 315, /* (0xaa) */ - 318, /* (0xab) */ - 321, /* (0xac) */ - 324, /* (0xad) */ - 327, /* (0xae) */ - 330, /* (0xaf) */ - 333, /* (0xb0) */ - 336, /* (0xb1) */ - 339, /* (0xb2) */ - 342, /* (0xb3) */ - 345, /* (0xb4) */ - 348, /* (0xb5) */ - 351, /* (0xb6) */ - 354, /* (0xb7) */ - 357, /* (0xb8) */ - 360, /* (0xb9) */ - 363, /* (0xba) */ - 366, /* (0xbb) */ - 369, /* (0xbc) */ - 372, /* (0xbd) */ - 375, /* (0xbe) */ - 378, /* (0xbf) */ - 381, /* (0xc0) */ - 384, /* (0xc1) */ - 387, /* (0xc2) */ - 390, /* (0xc3) */ - 393, /* (0xc4) */ - 396, /* (0xc5) */ - 399, /* (0xc6) */ - 402, /* (0xc7) */ - 405, /* (0xc8) */ - 408, /* (0xc9) */ - 411, /* (0xca) */ - 414, /* (0xcb) */ - 417, /* (0xcc) */ - 420, /* (0xcd) */ - 423, /* (0xce) */ - 426, /* (0xcf) */ - 429, /* (0xd0) */ - 432, /* (0xd1) */ - 435, /* (0xd2) */ - 438, /* (0xd3) */ - 441, /* (0xd4) */ - 444, /* (0xd5) */ - 447, /* (0xd6) */ - 450, /* (0xd7) */ - 453, /* (0xd8) */ - 456, /* (0xd9) */ - 459, /* (0xda) */ - 462, /* (0xdb) */ - 465, /* (0xdc) */ - 468, /* (0xdd) */ - 471, /* (0xde) */ - 474, /* (0xdf) */ - 477, /* (0xe0) */ - 480, /* (0xe1) */ - 483, /* (0xe2) */ - 486, /* (0xe3) */ - 489, /* (0xe4) */ - 492, /* (0xe5) */ - 495, /* (0xe6) */ - 498, /* (0xe7) */ - 501, /* (0xe8) */ - 504, /* (0xe9) */ - 507, /* (0xea) */ - 510, /* (0xeb) */ - 513, /* (0xec) */ - 516, /* (0xed) */ - 519, /* (0xee) */ - 522, /* (0xef) */ - 525, /* (0xf0) */ - 528, /* (0xf1) */ - 531, /* (0xf2) */ - 534, /* (0xf3) */ - 537, /* (0xf4) */ - 540, /* (0xf5) */ - 543, /* (0xf6) */ - 546, /* (0xf7) */ - 549, /* (0xf8) */ - 552, /* (0xf9) */ - 555, /* (0xfa) */ - 558, /* (0xfb) */ - 561, /* (0xfc) */ - 564, /* (0xfd) */ - 567, /* (0xfe) */ - 569, /* (0xff) */ + 569, /* (0x0) */ + 569, /* (0x1) */ + 569, /* (0x2) */ + 569, /* (0x3) */ + 569, /* (0x4) */ + 569, /* (0x5) */ + 569, /* (0x6) */ + 569, /* (0x7) */ + 569, /* (0x8) */ + 569, /* (0x9) */ + 569, /* (0xa) */ + 569, /* (0xb) */ + 569, /* (0xc) */ + 569, /* (0xd) */ + 569, /* (0xe) */ + 569, /* (0xf) */ + 569, /* (0x10) */ + 569, /* (0x11) */ + 569, /* (0x12) */ + 569, /* (0x13) */ + 569, /* (0x14) */ + 569, /* (0x15) */ + 569, /* (0x16) */ + 569, /* (0x17) */ + 569, /* (0x18) */ + 569, /* (0x19) */ + 569, /* (0x1a) */ + 569, /* (0x1b) */ + 569, /* (0x1c) */ + 569, /* (0x1d) */ + 569, /* (0x1e) */ + 569, /* (0x1f) */ + 0, /* (0x20) */ + 3, /* (0x21) */ + 6, /* (0x22) */ + 9, /* (0x23) */ + 12, /* (0x24) */ + 15, /* (0x25) */ + 18, /* (0x26) */ + 21, /* (0x27) */ + 24, /* (0x28) */ + 27, /* (0x29) */ + 30, /* (0x2a) */ + 33, /* (0x2b) */ + 36, /* (0x2c) */ + 39, /* (0x2d) */ + 42, /* (0x2e) */ + 45, /* (0x2f) */ + 48, /* (0x30) */ + 51, /* (0x31) */ + 54, /* (0x32) */ + 57, /* (0x33) */ + 60, /* (0x34) */ + 63, /* (0x35) */ + 66, /* (0x36) */ + 69, /* (0x37) */ + 72, /* (0x38) */ + 75, /* (0x39) */ + 78, /* (0x3a) */ + 81, /* (0x3b) */ + 84, /* (0x3c) */ + 87, /* (0x3d) */ + 90, /* (0x3e) */ + 93, /* (0x3f) */ + 96, /* (0x40) */ + 99, /* (0x41) */ + 102, /* (0x42) */ + 105, /* (0x43) */ + 108, /* (0x44) */ + 111, /* (0x45) */ + 114, /* (0x46) */ + 117, /* (0x47) */ + 120, /* (0x48) */ + 123, /* (0x49) */ + 126, /* (0x4a) */ + 129, /* (0x4b) */ + 132, /* (0x4c) */ + 135, /* (0x4d) */ + 138, /* (0x4e) */ + 141, /* (0x4f) */ + 144, /* (0x50) */ + 147, /* (0x51) */ + 150, /* (0x52) */ + 153, /* (0x53) */ + 156, /* (0x54) */ + 159, /* (0x55) */ + 162, /* (0x56) */ + 165, /* (0x57) */ + 168, /* (0x58) */ + 171, /* (0x59) */ + 174, /* (0x5a) */ + 177, /* (0x5b) */ + 180, /* (0x5c) */ + 183, /* (0x5d) */ + 186, /* (0x5e) */ + 189, /* (0x5f) */ + 192, /* (0x60) */ + 195, /* (0x61) */ + 198, /* (0x62) */ + 201, /* (0x63) */ + 204, /* (0x64) */ + 207, /* (0x65) */ + 210, /* (0x66) */ + 213, /* (0x67) */ + 216, /* (0x68) */ + 219, /* (0x69) */ + 222, /* (0x6a) */ + 225, /* (0x6b) */ + 228, /* (0x6c) */ + 231, /* (0x6d) */ + 234, /* (0x6e) */ + 237, /* (0x6f) */ + 240, /* (0x70) */ + 243, /* (0x71) */ + 246, /* (0x72) */ + 249, /* (0x73) */ + 252, /* (0x74) */ + 255, /* (0x75) */ + 258, /* (0x76) */ + 261, /* (0x77) */ + 264, /* (0x78) */ + 267, /* (0x79) */ + 270, /* (0x7a) */ + 273, /* (0x7b) */ + 276, /* (0x7c) */ + 279, /* (0x7d) */ + 282, /* (0x7e) */ + 569, /* (0x7f) */ + 569, /* (0x80) */ + 569, /* (0x81) */ + 569, /* (0x82) */ + 569, /* (0x83) */ + 569, /* (0x84) */ + 569, /* (0x85) */ + 569, /* (0x86) */ + 569, /* (0x87) */ + 569, /* (0x88) */ + 569, /* (0x89) */ + 569, /* (0x8a) */ + 569, /* (0x8b) */ + 569, /* (0x8c) */ + 569, /* (0x8d) */ + 569, /* (0x8e) */ + 569, /* (0x8f) */ + 569, /* (0x90) */ + 569, /* (0x91) */ + 569, /* (0x92) */ + 569, /* (0x93) */ + 569, /* (0x94) */ + 569, /* (0x95) */ + 569, /* (0x96) */ + 569, /* (0x97) */ + 569, /* (0x98) */ + 569, /* (0x99) */ + 569, /* (0x9a) */ + 569, /* (0x9b) */ + 569, /* (0x9c) */ + 569, /* (0x9d) */ + 569, /* (0x9e) */ + 569, /* (0x9f) */ + 285, /* (0xa0) */ + 288, /* (0xa1) */ + 291, /* (0xa2) */ + 294, /* (0xa3) */ + 297, /* (0xa4) */ + 300, /* (0xa5) */ + 303, /* (0xa6) */ + 306, /* (0xa7) */ + 309, /* (0xa8) */ + 312, /* (0xa9) */ + 315, /* (0xaa) */ + 318, /* (0xab) */ + 321, /* (0xac) */ + 324, /* (0xad) */ + 327, /* (0xae) */ + 330, /* (0xaf) */ + 333, /* (0xb0) */ + 336, /* (0xb1) */ + 339, /* (0xb2) */ + 342, /* (0xb3) */ + 345, /* (0xb4) */ + 348, /* (0xb5) */ + 351, /* (0xb6) */ + 354, /* (0xb7) */ + 357, /* (0xb8) */ + 360, /* (0xb9) */ + 363, /* (0xba) */ + 366, /* (0xbb) */ + 369, /* (0xbc) */ + 372, /* (0xbd) */ + 375, /* (0xbe) */ + 378, /* (0xbf) */ + 381, /* (0xc0) */ + 384, /* (0xc1) */ + 387, /* (0xc2) */ + 390, /* (0xc3) */ + 393, /* (0xc4) */ + 396, /* (0xc5) */ + 399, /* (0xc6) */ + 402, /* (0xc7) */ + 405, /* (0xc8) */ + 408, /* (0xc9) */ + 411, /* (0xca) */ + 414, /* (0xcb) */ + 417, /* (0xcc) */ + 420, /* (0xcd) */ + 423, /* (0xce) */ + 426, /* (0xcf) */ + 429, /* (0xd0) */ + 432, /* (0xd1) */ + 435, /* (0xd2) */ + 438, /* (0xd3) */ + 441, /* (0xd4) */ + 444, /* (0xd5) */ + 447, /* (0xd6) */ + 450, /* (0xd7) */ + 453, /* (0xd8) */ + 456, /* (0xd9) */ + 459, /* (0xda) */ + 462, /* (0xdb) */ + 465, /* (0xdc) */ + 468, /* (0xdd) */ + 471, /* (0xde) */ + 474, /* (0xdf) */ + 477, /* (0xe0) */ + 480, /* (0xe1) */ + 483, /* (0xe2) */ + 486, /* (0xe3) */ + 489, /* (0xe4) */ + 492, /* (0xe5) */ + 495, /* (0xe6) */ + 498, /* (0xe7) */ + 501, /* (0xe8) */ + 504, /* (0xe9) */ + 507, /* (0xea) */ + 510, /* (0xeb) */ + 513, /* (0xec) */ + 516, /* (0xed) */ + 519, /* (0xee) */ + 522, /* (0xef) */ + 525, /* (0xf0) */ + 528, /* (0xf1) */ + 531, /* (0xf2) */ + 534, /* (0xf3) */ + 537, /* (0xf4) */ + 540, /* (0xf5) */ + 543, /* (0xf6) */ + 546, /* (0xf7) */ + 549, /* (0xf8) */ + 552, /* (0xf9) */ + 555, /* (0xfa) */ + 558, /* (0xfb) */ + 561, /* (0xfc) */ + 564, /* (0xfd) */ + 567, /* (0xfe) */ + 569, /* (0xff) */ }; /* Index into content data. */ static int _radon_index[570] = { - 0x8, 0, - 0, - 0x8, 12, - 0, - 0x8, 24, - 0, - 0x8, 36, - 0, - 0x8, 48, - 0, - 0x8, 60, - 0, - 0x8, 72, - 0, - 0x8, 84, - 0, - 0x8, 96, - 0, - 0x8, 108, - 0, - 0x8, 120, - 0, - 0x8, 132, - 0, - 0x8, 144, - 0, - 0x8, 156, - 0, - 0x8, 168, - 0, - 0x8, 180, - 0, - 0x8, 192, - 0, - 0x8, 204, - 0, - 0x8, 216, - 0, - 0x8, 228, - 0, - 0x8, 240, - 0, - 0x8, 252, - 0, - 0x8, 264, - 0, - 0x8, 276, - 0, - 0x8, 288, - 0, - 0x8, 300, - 0, - 0x8, 312, - 0, - 0x8, 324, - 0, - 0x8, 336, - 0, - 0x8, 348, - 0, - 0x8, 360, - 0, - 0x8, 372, - 0, - 0x8, 384, - 0, - 0x8, 396, - 0, - 0x8, 408, - 0, - 0x8, 420, - 0, - 0x8, 432, - 0, - 0x8, 444, - 0, - 0x8, 456, - 0, - 0x8, 468, - 0, - 0x8, 480, - 0, - 0x8, 492, - 0, - 0x8, 504, - 0, - 0x8, 516, - 0, - 0x8, 528, - 0, - 0x8, 540, - 0, - 0x8, 552, - 0, - 0x8, 564, - 0, - 0x8, 576, - 0, - 0x8, 588, - 0, - 0x8, 600, - 0, - 0x8, 612, - 0, - 0x8, 624, - 0, - 0x8, 636, - 0, - 0x8, 648, - 0, - 0x8, 660, - 0, - 0x8, 672, - 0, - 0x8, 684, - 0, - 0x8, 696, - 0, - 0x8, 708, - 0, - 0x8, 720, - 0, - 0x8, 732, - 0, - 0x8, 744, - 0, - 0x8, 756, - 0, - 0x8, 768, - 0, - 0x8, 780, - 0, - 0x8, 792, - 0, - 0x8, 804, - 0, - 0x8, 816, - 0, - 0x8, 828, - 0, - 0x8, 840, - 0, - 0x8, 852, - 0, - 0x8, 864, - 0, - 0x8, 876, - 0, - 0x8, 888, - 0, - 0x8, 900, - 0, - 0x8, 912, - 0, - 0x8, 924, - 0, - 0x8, 936, - 0, - 0x8, 948, - 0, - 0x8, 960, - 0, - 0x8, 972, - 0, - 0x8, 984, - 0, - 0x8, 996, - 0, - 0x8, 1008, - 0, - 0x8, 1020, - 0, - 0x8, 1032, - 0, - 0x8, 1044, - 0, - 0x8, 1056, - 0, - 0x8, 1068, - 0, - 0x8, 1080, - 0, - 0x8, 1092, - 0, - 0x8, 1104, - 0, - 0x8, 1116, - 0, - 0x8, 1128, - 0, - 0x8, 1140, - 0, - 0x8, 1152, - 0, - 0x8, 1164, - 0, - 0x8, 1176, - 0, - 0x8, 1188, - 0, - 0x8, 1200, - 0, - 0x8, 1212, - 0, - 0x8, 1224, - 0, - 0x8, 1236, - 0, - 0x8, 1248, - 0, - 0x8, 1260, - 0, - 0x8, 1272, - 0, - 0x8, 1284, - 0, - 0x8, 1296, - 0, - 0x8, 1308, - 0, - 0x8, 1320, - 0, - 0x8, 1332, - 0, - 0x8, 1344, - 0, - 0x8, 1356, - 0, - 0x8, 1368, - 0, - 0x8, 1380, - 0, - 0x8, 1392, - 0, - 0x8, 1404, - 0, - 0x8, 1416, - 0, - 0x8, 1428, - 0, - 0x8, 1440, - 0, - 0x8, 1452, - 0, - 0x8, 1464, - 0, - 0x8, 1476, - 0, - 0x8, 1488, - 0, - 0x8, 1500, - 0, - 0x8, 1512, - 0, - 0x8, 1524, - 0, - 0x8, 1536, - 0, - 0x8, 1548, - 0, - 0x8, 1560, - 0, - 0x8, 1572, - 0, - 0x8, 1584, - 0, - 0x8, 1596, - 0, - 0x8, 1608, - 0, - 0x8, 1620, - 0, - 0x8, 1632, - 0, - 0x8, 1644, - 0, - 0x8, 1656, - 0, - 0x8, 1668, - 0, - 0x8, 1680, - 0, - 0x8, 1692, - 0, - 0x8, 1704, - 0, - 0x8, 1716, - 0, - 0x8, 1728, - 0, - 0x8, 1740, - 0, - 0x8, 1752, - 0, - 0x8, 1764, - 0, - 0x8, 1776, - 0, - 0x8, 1788, - 0, - 0x8, 1800, - 0, - 0x8, 1812, - 0, - 0x8, 1824, - 0, - 0x8, 1836, - 0, - 0x8, 1848, - 0, - 0x8, 1860, - 0, - 0x8, 1872, - 0, - 0x8, 1884, - 0, - 0x8, 1896, - 0, - 0x8, 1908, - 0, - 0x8, 1920, - 0, - 0x8, 1932, - 0, - 0x8, 1944, - 0, - 0x8, 1956, - 0, - 0x8, 1968, - 0, - 0x8, 1980, - 0, - 0x8, 1992, - 0, - 0x8, 2004, - 0, - 0x8, 2016, - 0, - 0x8, 2028, - 0, - 0x8, 2040, - 0, - 0x8, 2052, - 0, - 0x8, 2064, - 0, - 0x8, 2076, - 0, - 0x8, 2088, - 0, - 0x8, 2100, - 0, - 0x8, 2112, - 0, - 0x8, 2124, - 0, - 0x8, 2136, - 0, - 0x8, 2148, - 0, - 0x8, 2160, - 0, - 0x8, 2172, - 0, - 0x8, 2184, - 0, - 0x8, 2196, - 0, - 0x8, 2208, - 0, - 0x8, 2220, - 0, - 0x8, 2232, - 0, - 0x8, 2244, - 0, - 0x8, 2256, - 0, - 0x8, 2268, - 0, + 0x8, 0, + 0, + 0x8, 12, + 0, + 0x8, 24, + 0, + 0x8, 36, + 0, + 0x8, 48, + 0, + 0x8, 60, + 0, + 0x8, 72, + 0, + 0x8, 84, + 0, + 0x8, 96, + 0, + 0x8, 108, + 0, + 0x8, 120, + 0, + 0x8, 132, + 0, + 0x8, 144, + 0, + 0x8, 156, + 0, + 0x8, 168, + 0, + 0x8, 180, + 0, + 0x8, 192, + 0, + 0x8, 204, + 0, + 0x8, 216, + 0, + 0x8, 228, + 0, + 0x8, 240, + 0, + 0x8, 252, + 0, + 0x8, 264, + 0, + 0x8, 276, + 0, + 0x8, 288, + 0, + 0x8, 300, + 0, + 0x8, 312, + 0, + 0x8, 324, + 0, + 0x8, 336, + 0, + 0x8, 348, + 0, + 0x8, 360, + 0, + 0x8, 372, + 0, + 0x8, 384, + 0, + 0x8, 396, + 0, + 0x8, 408, + 0, + 0x8, 420, + 0, + 0x8, 432, + 0, + 0x8, 444, + 0, + 0x8, 456, + 0, + 0x8, 468, + 0, + 0x8, 480, + 0, + 0x8, 492, + 0, + 0x8, 504, + 0, + 0x8, 516, + 0, + 0x8, 528, + 0, + 0x8, 540, + 0, + 0x8, 552, + 0, + 0x8, 564, + 0, + 0x8, 576, + 0, + 0x8, 588, + 0, + 0x8, 600, + 0, + 0x8, 612, + 0, + 0x8, 624, + 0, + 0x8, 636, + 0, + 0x8, 648, + 0, + 0x8, 660, + 0, + 0x8, 672, + 0, + 0x8, 684, + 0, + 0x8, 696, + 0, + 0x8, 708, + 0, + 0x8, 720, + 0, + 0x8, 732, + 0, + 0x8, 744, + 0, + 0x8, 756, + 0, + 0x8, 768, + 0, + 0x8, 780, + 0, + 0x8, 792, + 0, + 0x8, 804, + 0, + 0x8, 816, + 0, + 0x8, 828, + 0, + 0x8, 840, + 0, + 0x8, 852, + 0, + 0x8, 864, + 0, + 0x8, 876, + 0, + 0x8, 888, + 0, + 0x8, 900, + 0, + 0x8, 912, + 0, + 0x8, 924, + 0, + 0x8, 936, + 0, + 0x8, 948, + 0, + 0x8, 960, + 0, + 0x8, 972, + 0, + 0x8, 984, + 0, + 0x8, 996, + 0, + 0x8, 1008, + 0, + 0x8, 1020, + 0, + 0x8, 1032, + 0, + 0x8, 1044, + 0, + 0x8, 1056, + 0, + 0x8, 1068, + 0, + 0x8, 1080, + 0, + 0x8, 1092, + 0, + 0x8, 1104, + 0, + 0x8, 1116, + 0, + 0x8, 1128, + 0, + 0x8, 1140, + 0, + 0x8, 1152, + 0, + 0x8, 1164, + 0, + 0x8, 1176, + 0, + 0x8, 1188, + 0, + 0x8, 1200, + 0, + 0x8, 1212, + 0, + 0x8, 1224, + 0, + 0x8, 1236, + 0, + 0x8, 1248, + 0, + 0x8, 1260, + 0, + 0x8, 1272, + 0, + 0x8, 1284, + 0, + 0x8, 1296, + 0, + 0x8, 1308, + 0, + 0x8, 1320, + 0, + 0x8, 1332, + 0, + 0x8, 1344, + 0, + 0x8, 1356, + 0, + 0x8, 1368, + 0, + 0x8, 1380, + 0, + 0x8, 1392, + 0, + 0x8, 1404, + 0, + 0x8, 1416, + 0, + 0x8, 1428, + 0, + 0x8, 1440, + 0, + 0x8, 1452, + 0, + 0x8, 1464, + 0, + 0x8, 1476, + 0, + 0x8, 1488, + 0, + 0x8, 1500, + 0, + 0x8, 1512, + 0, + 0x8, 1524, + 0, + 0x8, 1536, + 0, + 0x8, 1548, + 0, + 0x8, 1560, + 0, + 0x8, 1572, + 0, + 0x8, 1584, + 0, + 0x8, 1596, + 0, + 0x8, 1608, + 0, + 0x8, 1620, + 0, + 0x8, 1632, + 0, + 0x8, 1644, + 0, + 0x8, 1656, + 0, + 0x8, 1668, + 0, + 0x8, 1680, + 0, + 0x8, 1692, + 0, + 0x8, 1704, + 0, + 0x8, 1716, + 0, + 0x8, 1728, + 0, + 0x8, 1740, + 0, + 0x8, 1752, + 0, + 0x8, 1764, + 0, + 0x8, 1776, + 0, + 0x8, 1788, + 0, + 0x8, 1800, + 0, + 0x8, 1812, + 0, + 0x8, 1824, + 0, + 0x8, 1836, + 0, + 0x8, 1848, + 0, + 0x8, 1860, + 0, + 0x8, 1872, + 0, + 0x8, 1884, + 0, + 0x8, 1896, + 0, + 0x8, 1908, + 0, + 0x8, 1920, + 0, + 0x8, 1932, + 0, + 0x8, 1944, + 0, + 0x8, 1956, + 0, + 0x8, 1968, + 0, + 0x8, 1980, + 0, + 0x8, 1992, + 0, + 0x8, 2004, + 0, + 0x8, 2016, + 0, + 0x8, 2028, + 0, + 0x8, 2040, + 0, + 0x8, 2052, + 0, + 0x8, 2064, + 0, + 0x8, 2076, + 0, + 0x8, 2088, + 0, + 0x8, 2100, + 0, + 0x8, 2112, + 0, + 0x8, 2124, + 0, + 0x8, 2136, + 0, + 0x8, 2148, + 0, + 0x8, 2160, + 0, + 0x8, 2172, + 0, + 0x8, 2184, + 0, + 0x8, 2196, + 0, + 0x8, 2208, + 0, + 0x8, 2220, + 0, + 0x8, 2232, + 0, + 0x8, 2244, + 0, + 0x8, 2256, + 0, + 0x8, 2268, + 0, }; /* Font character content data. */ @@ -666,18 +666,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 12: character ! (0x21), width 8 */ /* +--------+ @@ -694,18 +694,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 24: character " (0x22), width 8 */ /* +--------+ @@ -722,18 +722,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x28000000, -0x28000000, -0x28000000, -0x28000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x28000000, + 0x28000000, + 0x28000000, + 0x28000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 36: character # (0x23), width 8 */ /* +--------+ @@ -750,18 +750,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x44000000, -0x44000000, -0xba000000, -0x44000000, -0x44000000, -0x44000000, -0xba000000, -0x44000000, -0x44000000, -0x00000000, -0x00000000, + 0x00000000, + 0x44000000, + 0x44000000, + 0xba000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0xba000000, + 0x44000000, + 0x44000000, + 0x00000000, + 0x00000000, /* 48: character $ (0x24), width 8 */ /* +--------+ @@ -778,18 +778,18 @@ static u_int32_t _radon_content[] = { | * | | | +--------+ */ -0x10000000, -0x7e000000, -0x80000000, -0x90000000, -0x80000000, -0x7c000000, -0x02000000, -0x12000000, -0x02000000, -0xfc000000, -0x10000000, -0x00000000, + 0x10000000, + 0x7e000000, + 0x80000000, + 0x90000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x12000000, + 0x02000000, + 0xfc000000, + 0x10000000, + 0x00000000, /* 60: character % (0x25), width 8 */ /* +--------+ @@ -806,18 +806,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x62000000, -0x92000000, -0x94000000, -0x68000000, -0x10000000, -0x2c000000, -0x52000000, -0x92000000, -0x8c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x62000000, + 0x92000000, + 0x94000000, + 0x68000000, + 0x10000000, + 0x2c000000, + 0x52000000, + 0x92000000, + 0x8c000000, + 0x00000000, + 0x00000000, /* 72: character & (0x26), width 8 */ /* +--------+ @@ -834,18 +834,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x60000000, -0x90000000, -0x90000000, -0x40000000, -0x20000000, -0x90000000, -0x8a000000, -0x84000000, -0x7a000000, -0x00000000, -0x00000000, + 0x00000000, + 0x60000000, + 0x90000000, + 0x90000000, + 0x40000000, + 0x20000000, + 0x90000000, + 0x8a000000, + 0x84000000, + 0x7a000000, + 0x00000000, + 0x00000000, /* 84: character ' (0x27), width 8 */ /* +--------+ @@ -862,18 +862,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x60000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x60000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 96: character ( (0x28), width 8 */ /* +--------+ @@ -890,18 +890,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 108: character ) (0x29), width 8 */ /* +--------+ @@ -918,18 +918,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 120: character * (0x2a), width 8 */ /* +--------+ @@ -946,18 +946,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x92000000, -0x54000000, -0x10000000, -0x10000000, -0x54000000, -0x92000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x92000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x92000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 132: character + (0x2b), width 8 */ /* +--------+ @@ -974,18 +974,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0xd6000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0xd6000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 144: character , (0x2c), width 8 */ /* +--------+ @@ -1002,18 +1002,18 @@ static u_int32_t _radon_content[] = { | ** | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x08000000, -0x08000000, -0x30000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x30000000, + 0x00000000, /* 156: character - (0x2d), width 8 */ /* +--------+ @@ -1030,18 +1030,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 168: character . (0x2e), width 8 */ /* +--------+ @@ -1058,18 +1058,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 180: character / (0x2f), width 8 */ /* +--------+ @@ -1086,18 +1086,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x02000000, -0x02000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 192: character 0 (0x30), width 8 */ /* +--------+ @@ -1114,18 +1114,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 204: character 1 (0x31), width 8 */ /* +--------+ @@ -1142,18 +1142,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x28000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x28000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 216: character 2 (0x32), width 8 */ /* +--------+ @@ -1170,18 +1170,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x7c000000, -0x80000000, -0x80000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, /* 228: character 3 (0x33), width 8 */ /* +--------+ @@ -1198,18 +1198,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x3c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x3c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 240: character 4 (0x34), width 8 */ /* +--------+ @@ -1226,18 +1226,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7a000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7a000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 252: character 5 (0x35), width 8 */ /* +--------+ @@ -1254,18 +1254,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfe000000, -0x00000000, -0x80000000, -0x80000000, -0x7c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 264: character 6 (0x36), width 8 */ /* +--------+ @@ -1282,18 +1282,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 276: character 7 (0x37), width 8 */ /* +--------+ @@ -1310,18 +1310,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 288: character 8 (0x38), width 8 */ /* +--------+ @@ -1338,18 +1338,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 300: character 9 (0x39), width 8 */ /* +--------+ @@ -1366,18 +1366,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7a000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7a000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 312: character : (0x3a), width 8 */ /* +--------+ @@ -1394,18 +1394,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 324: character ; (0x3b), width 8 */ /* +--------+ @@ -1422,18 +1422,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x60000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x60000000, + 0x00000000, + 0x00000000, /* 336: character < (0x3c), width 8 */ /* +--------+ @@ -1450,18 +1450,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x20000000, -0x10000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x20000000, + 0x10000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 348: character = (0x3d), width 8 */ /* +--------+ @@ -1478,18 +1478,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfe000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 360: character > (0x3e), width 8 */ /* +--------+ @@ -1506,18 +1506,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x08000000, -0x04000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x08000000, + 0x04000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 372: character ? (0x3f), width 8 */ /* +--------+ @@ -1534,18 +1534,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x1c000000, -0x20000000, -0x20000000, -0x00000000, -0x20000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x00000000, + 0x20000000, + 0x00000000, + 0x00000000, /* 384: character @ (0x40), width 8 */ /* +--------+ @@ -1562,18 +1562,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x8a000000, -0x92000000, -0x92000000, -0x92000000, -0x8c000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x8a000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x8c000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 396: character A (0x41), width 8 */ /* +--------+ @@ -1590,18 +1590,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 408: character B (0x42), width 8 */ /* +--------+ @@ -1618,18 +1618,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 420: character C (0x43), width 8 */ /* +--------+ @@ -1646,18 +1646,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 432: character D (0x44), width 8 */ /* +--------+ @@ -1674,18 +1674,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 444: character E (0x45), width 8 */ /* +--------+ @@ -1702,18 +1702,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 456: character F (0x46), width 8 */ /* +--------+ @@ -1730,18 +1730,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 468: character G (0x47), width 8 */ /* +--------+ @@ -1758,18 +1758,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x9a000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x9a000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 480: character H (0x48), width 8 */ /* +--------+ @@ -1786,18 +1786,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 492: character I (0x49), width 8 */ /* +--------+ @@ -1814,18 +1814,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 504: character J (0x4a), width 8 */ /* +--------+ @@ -1842,18 +1842,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x84000000, -0x78000000, -0x00000000, -0x00000000, + 0x00000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x84000000, + 0x78000000, + 0x00000000, + 0x00000000, /* 516: character K (0x4b), width 8 */ /* +--------+ @@ -1870,18 +1870,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 528: character L (0x4c), width 8 */ /* +--------+ @@ -1898,18 +1898,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 540: character M (0x4d), width 8 */ /* +--------+ @@ -1926,18 +1926,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 552: character N (0x4e), width 8 */ /* +--------+ @@ -1954,18 +1954,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 564: character O (0x4f), width 8 */ /* +--------+ @@ -1982,18 +1982,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 576: character P (0x50), width 8 */ /* +--------+ @@ -2010,18 +2010,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 588: character Q (0x51), width 8 */ /* +--------+ @@ -2038,18 +2038,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x8a000000, -0x8a000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x8a000000, + 0x8a000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 600: character R (0x52), width 8 */ /* +--------+ @@ -2066,18 +2066,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 612: character S (0x53), width 8 */ /* +--------+ @@ -2094,18 +2094,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7e000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7e000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 624: character T (0x54), width 8 */ /* +--------+ @@ -2122,18 +2122,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfe000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 636: character U (0x55), width 8 */ /* +--------+ @@ -2150,18 +2150,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 648: character V (0x56), width 8 */ /* +--------+ @@ -2178,18 +2178,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x84000000, -0x88000000, -0x90000000, -0xa0000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x84000000, + 0x88000000, + 0x90000000, + 0xa0000000, + 0x00000000, + 0x00000000, /* 660: character W (0x57), width 8 */ /* +--------+ @@ -2206,18 +2206,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 672: character X (0x58), width 8 */ /* +--------+ @@ -2234,18 +2234,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 684: character Y (0x59), width 8 */ /* +--------+ @@ -2262,18 +2262,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 696: character Z (0x5a), width 8 */ /* +--------+ @@ -2290,18 +2290,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 708: character [ (0x5b), width 8 */ /* +--------+ @@ -2318,18 +2318,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x1c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x1c000000, + 0x00000000, + 0x00000000, /* 720: character \ (0x5c), width 8 */ /* +--------+ @@ -2346,18 +2346,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x80000000, -0x40000000, -0x20000000, -0x10000000, -0x08000000, -0x04000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x40000000, + 0x20000000, + 0x10000000, + 0x08000000, + 0x04000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 732: character ] (0x5d), width 8 */ /* +--------+ @@ -2374,18 +2374,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, /* 744: character ^ (0x5e), width 8 */ /* +--------+ @@ -2402,18 +2402,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x44000000, -0x44000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 756: character _ (0x5f), width 8 */ /* +--------+ @@ -2430,18 +2430,18 @@ static u_int32_t _radon_content[] = { |********| | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xff000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xff000000, + 0x00000000, /* 768: character ` (0x60), width 8 */ /* +--------+ @@ -2458,18 +2458,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x06000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x06000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 780: character a (0x61), width 8 */ /* +--------+ @@ -2486,18 +2486,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 792: character b (0x62), width 8 */ /* +--------+ @@ -2514,18 +2514,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 804: character c (0x63), width 8 */ /* +--------+ @@ -2542,18 +2542,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x40000000, -0x40000000, -0x40000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 816: character d (0x64), width 8 */ /* +--------+ @@ -2570,18 +2570,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x02000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x02000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 828: character e (0x65), width 8 */ /* +--------+ @@ -2598,18 +2598,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 840: character f (0x66), width 8 */ /* +--------+ @@ -2626,18 +2626,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x0c000000, -0x10000000, -0x10000000, -0x10000000, -0x54000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x0c000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 852: character g (0x67), width 8 */ /* +--------+ @@ -2654,18 +2654,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 864: character h (0x68), width 8 */ /* +--------+ @@ -2682,18 +2682,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 876: character i (0x69), width 8 */ /* +--------+ @@ -2710,18 +2710,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 888: character j (0x6a), width 8 */ /* +--------+ @@ -2738,18 +2738,18 @@ static u_int32_t _radon_content[] = { | * | | ** | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x30000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x30000000, /* 900: character k (0x6b), width 8 */ /* +--------+ @@ -2766,18 +2766,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x42000000, -0x42000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 912: character l (0x6c), width 8 */ /* +--------+ @@ -2794,18 +2794,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 924: character m (0x6d), width 8 */ /* +--------+ @@ -2822,18 +2822,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x00000000, + 0x00000000, /* 936: character n (0x6e), width 8 */ /* +--------+ @@ -2850,18 +2850,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 948: character o (0x6f), width 8 */ /* +--------+ @@ -2878,18 +2878,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 960: character p (0x70), width 8 */ /* +--------+ @@ -2906,18 +2906,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x40000000, /* 972: character q (0x71), width 8 */ /* +--------+ @@ -2934,18 +2934,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x02000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x02000000, /* 984: character r (0x72), width 8 */ /* +--------+ @@ -2962,18 +2962,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x0c000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0c000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 996: character s (0x73), width 8 */ /* +--------+ @@ -2990,18 +2990,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3e000000, -0x40000000, -0x3c000000, -0x02000000, -0x02000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3e000000, + 0x40000000, + 0x3c000000, + 0x02000000, + 0x02000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1008: character t (0x74), width 8 */ /* +--------+ @@ -3018,18 +3018,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x54000000, -0x10000000, -0x10000000, -0x10000000, -0x0c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x0c000000, + 0x00000000, + 0x00000000, /* 1020: character u (0x75), width 8 */ /* +--------+ @@ -3046,18 +3046,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1032: character v (0x76), width 8 */ /* +--------+ @@ -3074,18 +3074,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x44000000, -0x48000000, -0x50000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x44000000, + 0x48000000, + 0x50000000, + 0x00000000, + 0x00000000, /* 1044: character w (0x77), width 8 */ /* +--------+ @@ -3102,18 +3102,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1056: character x (0x78), width 8 */ /* +--------+ @@ -3130,18 +3130,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 1068: character y (0x79), width 8 */ /* +--------+ @@ -3158,18 +3158,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 1080: character z (0x7a), width 8 */ /* +--------+ @@ -3186,18 +3186,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x02000000, -0x0c000000, -0x30000000, -0x40000000, -0x3e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x02000000, + 0x0c000000, + 0x30000000, + 0x40000000, + 0x3e000000, + 0x00000000, + 0x00000000, /* 1092: character { (0x7b), width 8 */ /* +--------+ @@ -3214,18 +3214,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0x40000000, -0x20000000, -0x20000000, -0x20000000, -0x1c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x40000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x1c000000, + 0x00000000, + 0x00000000, /* 1104: character | (0x7c), width 8 */ /* +--------+ @@ -3242,18 +3242,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1116: character } (0x7d), width 8 */ /* +--------+ @@ -3270,18 +3270,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x04000000, -0x04000000, -0x04000000, -0x02000000, -0x04000000, -0x04000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x02000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, /* 1128: character ~ (0x7e), width 8 */ /* +--------+ @@ -3298,18 +3298,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x04000000, -0x38000000, -0x40000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x04000000, + 0x38000000, + 0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1140: character (0xa0), width 8 */ /* +--------+ @@ -3326,18 +3326,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1152: character ¡ (0xa1), width 8 */ /* +--------+ @@ -3354,18 +3354,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1164: character ¢ (0xa2), width 8 */ /* +--------+ @@ -3382,18 +3382,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x3e000000, -0x40000000, -0x48000000, -0x48000000, -0x40000000, -0x3e000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x3e000000, + 0x40000000, + 0x48000000, + 0x48000000, + 0x40000000, + 0x3e000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 1176: character £ (0xa3), width 8 */ /* +--------+ @@ -3410,18 +3410,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0xa8000000, -0x20000000, -0x20000000, -0x42000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0xa8000000, + 0x20000000, + 0x20000000, + 0x42000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1188: character ¤ (0xa4), width 8 */ /* +--------+ @@ -3438,18 +3438,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x82000000, -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x82000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x82000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x82000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1200: character ¥ (0xa5), width 8 */ /* +--------+ @@ -3466,18 +3466,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x54000000, -0x10000000, -0x54000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x54000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1212: character ¦ (0xa6), width 8 */ /* +--------+ @@ -3494,18 +3494,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1224: character § (0xa7), width 8 */ /* +--------+ @@ -3522,18 +3522,18 @@ static u_int32_t _radon_content[] = { | *** | | | +--------+ */ -0x00000000, -0x38000000, -0x40000000, -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x04000000, -0x38000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x40000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x00000000, /* 1236: character ¨ (0xa8), width 8 */ /* +--------+ @@ -3550,18 +3550,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1248: character © (0xa9), width 8 */ /* +--------+ @@ -3578,18 +3578,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x9a000000, -0xa2000000, -0xa2000000, -0xa2000000, -0x9a000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x9a000000, + 0xa2000000, + 0xa2000000, + 0xa2000000, + 0x9a000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1260: character ª (0xaa), width 8 */ /* +--------+ @@ -3606,18 +3606,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x34000000, -0x44000000, -0x38000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x34000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1272: character « (0xab), width 8 */ /* +--------+ @@ -3634,18 +3634,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x24000000, -0x48000000, -0x00000000, -0x48000000, -0x24000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x24000000, + 0x48000000, + 0x00000000, + 0x48000000, + 0x24000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1284: character ¬ (0xac), width 8 */ /* +--------+ @@ -3662,18 +3662,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1296: character (0xad), width 8 */ /* +--------+ @@ -3690,18 +3690,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1308: character ® (0xae), width 8 */ /* +--------+ @@ -3718,18 +3718,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0xaa000000, -0xb2000000, -0xaa000000, -0xaa000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0xaa000000, + 0xb2000000, + 0xaa000000, + 0xaa000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1320: character ¯ (0xaf), width 8 */ /* +--------+ @@ -3746,18 +3746,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1332: character ° (0xb0), width 8 */ /* +--------+ @@ -3774,18 +3774,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1344: character ± (0xb1), width 8 */ /* +--------+ @@ -3802,18 +3802,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0xd6000000, -0x10000000, -0x10000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0xd6000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1356: character ² (0xb2), width 8 */ /* +--------+ @@ -3830,18 +3830,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x18000000, -0x20000000, -0x3c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x18000000, + 0x20000000, + 0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1368: character ³ (0xb3), width 8 */ /* +--------+ @@ -3858,18 +3858,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x38000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1380: character ´ (0xb4), width 8 */ /* +--------+ @@ -3886,18 +3886,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x18000000, -0x20000000, -0x20000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x18000000, + 0x20000000, + 0x20000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1392: character µ (0xb5), width 8 */ /* +--------+ @@ -3914,18 +3914,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x58000000, -0x40000000, -0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x58000000, + 0x40000000, + 0x40000000, /* 1404: character ¶ (0xb6), width 8 */ /* +--------+ @@ -3942,18 +3942,18 @@ static u_int32_t _radon_content[] = { | * * | | | +--------+ */ -0x00000000, -0x79000000, -0xfa000000, -0xfa000000, -0xfa000000, -0x7a000000, -0x02000000, -0x0a000000, -0x0a000000, -0x0a000000, -0x0a000000, -0x00000000, + 0x00000000, + 0x79000000, + 0xfa000000, + 0xfa000000, + 0xfa000000, + 0x7a000000, + 0x02000000, + 0x0a000000, + 0x0a000000, + 0x0a000000, + 0x0a000000, + 0x00000000, /* 1416: character · (0xb7), width 8 */ /* +--------+ @@ -3970,18 +3970,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1428: character ¸ (0xb8), width 8 */ /* +--------+ @@ -3998,18 +3998,18 @@ static u_int32_t _radon_content[] = { | * | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x08000000, -0x10000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x10000000, + 0x00000000, /* 1440: character ¹ (0xb9), width 8 */ /* +--------+ @@ -4026,18 +4026,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x18000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x08000000, + 0x18000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1452: character º (0xba), width 8 */ /* +--------+ @@ -4054,18 +4054,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x44000000, -0x38000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1464: character » (0xbb), width 8 */ /* +--------+ @@ -4082,18 +4082,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x48000000, -0x24000000, -0x00000000, -0x24000000, -0x48000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x48000000, + 0x24000000, + 0x00000000, + 0x24000000, + 0x48000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1476: character ¼ (0xbc), width 8 */ /* +--------+ @@ -4110,18 +4110,18 @@ static u_int32_t _radon_content[] = { | *| | *| +--------+ */ -0x20000000, -0xa2000000, -0x22000000, -0x22000000, -0x24000000, -0x08000000, -0x10000000, -0x29000000, -0x49000000, -0x85000000, -0x01000000, -0x01000000, + 0x20000000, + 0xa2000000, + 0x22000000, + 0x22000000, + 0x24000000, + 0x08000000, + 0x10000000, + 0x29000000, + 0x49000000, + 0x85000000, + 0x01000000, + 0x01000000, /* 1488: character ½ (0xbd), width 8 */ /* +--------+ @@ -4138,18 +4138,18 @@ static u_int32_t _radon_content[] = { | * | | ****| +--------+ */ -0x20000000, -0xa2000000, -0x22000000, -0x22000000, -0x24000000, -0x08000000, -0x10000000, -0x2e000000, -0x41000000, -0x86000000, -0x08000000, -0x0f000000, + 0x20000000, + 0xa2000000, + 0x22000000, + 0x22000000, + 0x24000000, + 0x08000000, + 0x10000000, + 0x2e000000, + 0x41000000, + 0x86000000, + 0x08000000, + 0x0f000000, /* 1500: character ¾ (0xbe), width 8 */ /* +--------+ @@ -4166,18 +4166,18 @@ static u_int32_t _radon_content[] = { | *| | *| +--------+ */ -0xe0000000, -0x12000000, -0xe2000000, -0x12000000, -0xe4000000, -0x08000000, -0x10000000, -0x29000000, -0x49000000, -0x85000000, -0x01000000, -0x01000000, + 0xe0000000, + 0x12000000, + 0xe2000000, + 0x12000000, + 0xe4000000, + 0x08000000, + 0x10000000, + 0x29000000, + 0x49000000, + 0x85000000, + 0x01000000, + 0x01000000, /* 1512: character ¿ (0xbf), width 8 */ /* +--------+ @@ -4194,18 +4194,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x70000000, -0x80000000, -0x80000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x70000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 1524: character À (0xc0), width 8 */ /* +--------+ @@ -4222,18 +4222,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1536: character Á (0xc1), width 8 */ /* +--------+ @@ -4250,18 +4250,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1548: character  (0xc2), width 8 */ /* +--------+ @@ -4278,18 +4278,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1560: character à (0xc3), width 8 */ /* +--------+ @@ -4306,18 +4306,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1572: character Ä (0xc4), width 8 */ /* +--------+ @@ -4334,18 +4334,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1584: character Å (0xc5), width 8 */ /* +--------+ @@ -4362,18 +4362,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x38000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x38000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1596: character Æ (0xc6), width 8 */ /* +--------+ @@ -4390,18 +4390,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x77000000, -0x88000000, -0x88000000, -0x88000000, -0x8b000000, -0xa8000000, -0x88000000, -0x88000000, -0x8b000000, -0x00000000, -0x00000000, + 0x00000000, + 0x77000000, + 0x88000000, + 0x88000000, + 0x88000000, + 0x8b000000, + 0xa8000000, + 0x88000000, + 0x88000000, + 0x8b000000, + 0x00000000, + 0x00000000, /* 1608: character Ç (0xc7), width 8 */ /* +--------+ @@ -4418,18 +4418,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x6c000000, -0x10000000, -0x20000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x6c000000, + 0x10000000, + 0x20000000, /* 1620: character È (0xc8), width 8 */ /* +--------+ @@ -4446,18 +4446,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1632: character É (0xc9), width 8 */ /* +--------+ @@ -4474,18 +4474,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1644: character Ê (0xca), width 8 */ /* +--------+ @@ -4502,18 +4502,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1656: character Ë (0xcb), width 8 */ /* +--------+ @@ -4530,18 +4530,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1668: character Ì (0xcc), width 8 */ /* +--------+ @@ -4558,18 +4558,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1680: character Í (0xcd), width 8 */ /* +--------+ @@ -4586,18 +4586,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1692: character Î (0xce), width 8 */ /* +--------+ @@ -4614,18 +4614,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1704: character Ï (0xcf), width 8 */ /* +--------+ @@ -4642,18 +4642,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1716: character Ð (0xd0), width 8 */ /* +--------+ @@ -4670,18 +4670,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xb2000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xb2000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1728: character Ñ (0xd1), width 8 */ /* +--------+ @@ -4698,18 +4698,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1740: character Ò (0xd2), width 8 */ /* +--------+ @@ -4726,18 +4726,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1752: character Ó (0xd3), width 8 */ /* +--------+ @@ -4754,18 +4754,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1764: character Ô (0xd4), width 8 */ /* +--------+ @@ -4782,18 +4782,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1776: character Õ (0xd5), width 8 */ /* +--------+ @@ -4810,18 +4810,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1788: character Ö (0xd6), width 8 */ /* +--------+ @@ -4838,18 +4838,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1800: character × (0xd7), width 8 */ /* +--------+ @@ -4866,18 +4866,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x44000000, -0x28000000, -0x00000000, -0x28000000, -0x44000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x44000000, + 0x28000000, + 0x00000000, + 0x28000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1812: character Ø (0xd8), width 8 */ /* +--------+ @@ -4894,18 +4894,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7a000000, -0x84000000, -0x82000000, -0x8a000000, -0x92000000, -0xa2000000, -0x82000000, -0x42000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7a000000, + 0x84000000, + 0x82000000, + 0x8a000000, + 0x92000000, + 0xa2000000, + 0x82000000, + 0x42000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1824: character Ù (0xd9), width 8 */ /* +--------+ @@ -4922,18 +4922,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1836: character Ú (0xda), width 8 */ /* +--------+ @@ -4950,18 +4950,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1848: character Û (0xdb), width 8 */ /* +--------+ @@ -4978,18 +4978,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1860: character Ü (0xdc), width 8 */ /* +--------+ @@ -5006,18 +5006,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1872: character Ý (0xdd), width 8 */ /* +--------+ @@ -5034,18 +5034,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0xb2000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0xb2000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1884: character Þ (0xde), width 8 */ /* +--------+ @@ -5062,18 +5062,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 1896: character ß (0xdf), width 8 */ /* +--------+ @@ -5090,18 +5090,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x9c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x9c000000, + 0x00000000, + 0x00000000, /* 1908: character à (0xe0), width 8 */ /* +--------+ @@ -5118,18 +5118,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1920: character á (0xe1), width 8 */ /* +--------+ @@ -5146,18 +5146,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1932: character â (0xe2), width 8 */ /* +--------+ @@ -5174,18 +5174,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1944: character ã (0xe3), width 8 */ /* +--------+ @@ -5202,18 +5202,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1956: character ä (0xe4), width 8 */ /* +--------+ @@ -5230,18 +5230,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1968: character å (0xe5), width 8 */ /* +--------+ @@ -5258,18 +5258,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x18000000, -0x24000000, -0x18000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x18000000, + 0x24000000, + 0x18000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1980: character æ (0xe6), width 8 */ /* +--------+ @@ -5286,18 +5286,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x6c000000, -0x12000000, -0x52000000, -0x94000000, -0x90000000, -0x6e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x6c000000, + 0x12000000, + 0x52000000, + 0x94000000, + 0x90000000, + 0x6e000000, + 0x00000000, + 0x00000000, /* 1992: character ç (0xe7), width 8 */ /* +--------+ @@ -5314,18 +5314,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x40000000, -0x40000000, -0x40000000, -0x40000000, -0x34000000, -0x08000000, -0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x34000000, + 0x08000000, + 0x10000000, /* 2004: character è (0xe8), width 8 */ /* +--------+ @@ -5342,18 +5342,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2016: character é (0xe9), width 8 */ /* +--------+ @@ -5370,18 +5370,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2028: character ê (0xea), width 8 */ /* +--------+ @@ -5398,18 +5398,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2040: character ë (0xeb), width 8 */ /* +--------+ @@ -5426,18 +5426,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2052: character ì (0xec), width 8 */ /* +--------+ @@ -5454,18 +5454,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2064: character í (0xed), width 8 */ /* +--------+ @@ -5482,18 +5482,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2076: character î (0xee), width 8 */ /* +--------+ @@ -5510,18 +5510,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2088: character ï (0xef), width 8 */ /* +--------+ @@ -5538,18 +5538,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2100: character ð (0xf0), width 8 */ /* +--------+ @@ -5566,18 +5566,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x14000000, -0x08000000, -0x14000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x14000000, + 0x08000000, + 0x14000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2112: character ñ (0xf1), width 8 */ /* +--------+ @@ -5594,18 +5594,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x32000000, -0x4c000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 2124: character ò (0xf2), width 8 */ /* +--------+ @@ -5622,18 +5622,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2136: character ó (0xf3), width 8 */ /* +--------+ @@ -5650,18 +5650,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2148: character ô (0xf4), width 8 */ /* +--------+ @@ -5678,18 +5678,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2160: character õ (0xf5), width 8 */ /* +--------+ @@ -5706,18 +5706,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2172: character ö (0xf6), width 8 */ /* +--------+ @@ -5734,18 +5734,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2184: character ÷ (0xf7), width 8 */ /* +--------+ @@ -5762,18 +5762,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x38000000, -0x00000000, -0xfe000000, -0x00000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x38000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 2196: character ø (0xf8), width 8 */ /* +--------+ @@ -5790,18 +5790,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3a000000, -0x44000000, -0x4a000000, -0x52000000, -0x22000000, -0x5c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3a000000, + 0x44000000, + 0x4a000000, + 0x52000000, + 0x22000000, + 0x5c000000, + 0x00000000, + 0x00000000, /* 2208: character ù (0xf9), width 8 */ /* +--------+ @@ -5818,18 +5818,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2220: character ú (0xfa), width 8 */ /* +--------+ @@ -5846,18 +5846,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2232: character û (0xfb), width 8 */ /* +--------+ @@ -5874,18 +5874,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2244: character ü (0xfc), width 8 */ /* +--------+ @@ -5902,18 +5902,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2256: character ý (0xfd), width 8 */ /* +--------+ @@ -5930,18 +5930,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x04000000, -0x18000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x04000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 2268: character þ (0xfe), width 8 */ /* +--------+ @@ -5958,27 +5958,27 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x9c000000, -0xa2000000, -0x82000000, -0xa2000000, -0x9c000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x9c000000, + 0xa2000000, + 0x82000000, + 0xa2000000, + 0x9c000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, }; /* Exported structure definition. */ const PSplashFont radeon_font = { - "radon", - 12, - 0xff, - _radon_offset, - _radon_index, - _radon_content, + "radon", + 12, + 0xff, + _radon_offset, + _radon_index, + _radon_content, }; -- 2.17.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[PATCH 2/2] Add CMakeLists.txt to build project with cmake
Example:
mkdir build && cd build cmake ../ -DHAVE_SYSTEMD=ON make Signed-off-by: LM.H <hyyoxhk@...> --- CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1a7e6f1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.1.0) + +project(psplash LANGUAGES C) + +option(HAVE_SYSTEMD "Build with systemd support" OFF) +option(DISABLE_STARTUP_MSG "Disable text banner output on startup" OFF) +option(DISABLE_PROGRESS_BAR "Disable progress bar" OFF) +option(IMG_FULLSCREEN "Enable the logo image in fullscreen mode" OFF) + +set(PSPLASH_SRCS psplash-console.c + psplash-fb.c + psplash.c) + +add_executable(psplash ${PSPLASH_SRCS}) +add_executable(psplash-write psplash-write.c) + +if (HAVE_SYSTEMD) + find_package(PkgConfig REQUIRED) + pkg_check_modules(SYSTEMD REQUIRED libsystemd>=221) + add_executable(psplash-systemd psplash-systemd.c) + target_link_libraries(psplash-systemd systemd) +endif() + +if (NOT FONT_NAME) + set(FONT_NAME radeon) +endif() + +add_definitions(-DFONT_HEADER=\"${FONT_NAME}-font.h\") +add_definitions(-DFONT_DEF=${FONT_NAME}_font) + +if(DISABLE_STARTUP_MSG) + add_definitions(-DPSPLASH_DISABLE_STARTUP_MSG) +endif() + +if(DISABLE_PROGRESS_BAR) + add_definitions(-DPSPLASH_DISABLE_PROGRESS_BAR) +endif() + +if(IMG_FULLSCREEN) + add_definitions(-DPSPLASH_IMG_FULLSCREEN=1) +endif() -- 2.17.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[PATCH 1/2] Change the coding style to be the same as the linux kernel
The original coding style is not conducive to reading, I find
that the coding style of the linux kernel makes reading more enjoyable Signed-off-by: LM.H <hyyoxhk@...> --- psplash-console.c | 287 ++- psplash-console.h | 6 +- psplash-fb.c | 1071 ++++----- psplash-fb.h | 118 +- psplash-systemd.c | 39 +- psplash-write.c | 55 +- psplash.c | 527 ++-- psplash.h | 27 +- radeon-font.h | 5844 ++++++++++++++++++++++----------------------- 9 files changed, 3941 insertions(+), 4033 deletions(-) diff --git a/psplash-console.c b/psplash-console.c index 3a40620..ecff91f 100644 --- a/psplash-console.c +++ b/psplash-console.c @@ -10,178 +10,163 @@ #include "psplash.h" /* Globals, needed for signal handling */ -static int ConsoleFd = -1; -static int VTNum = -1; -static int VTNumInitial = -1; -static int Visible = 1; +static int ConsoleFd = -1; +static int VTNum = -1; +static int VTNumInitial = -1; +static int Visible = 1; -static void -vt_request (int UNUSED(sig)) +static void vt_request(int UNUSED(sig)) { - DBG("mark, visible:%i", Visible); - - if (Visible) - { - /* Allow Switch Away */ - if (ioctl (ConsoleFd, VT_RELDISP, 1) < 0) - perror("Error cannot switch away from console"); - Visible = 0; - - /* FIXME: - * We likely now want to signal the main loop as to exit - * and we've now likely switched to the X tty. Note, this - * seems to happen anyway atm due to select() call getting - * a signal interuption error - not sure if this is really - * reliable however. - */ - } - else - { - if (ioctl (ConsoleFd, VT_RELDISP, VT_ACKACQ)) - perror ("Error can't acknowledge VT switch"); - Visible = 1; - /* FIXME: need to schedule repaint some how ? */ - } + DBG("mark, visible:%i", Visible); + + if (Visible) { + /* Allow Switch Away */ + if (ioctl(ConsoleFd, VT_RELDISP, 1) < 0) + perror("Error cannot switch away from console"); + Visible = 0; + + /* FIXME: + * We likely now want to signal the main loop as to exit + * and we've now likely switched to the X tty. Note, this + * seems to happen anyway atm due to select() call getting + * a signal interuption error - not sure if this is really + * reliable however. + */ + } else { + if (ioctl(ConsoleFd, VT_RELDISP, VT_ACKACQ)) + perror("Error can't acknowledge VT switch"); + Visible = 1; + /* FIXME: need to schedule repaint some how ? */ + } } -static void -psplash_console_ignore_switches (void) +static void psplash_console_ignore_switches(void) { - struct sigaction act; - struct vt_mode vt_mode; - - if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) - { - perror("Error VT_SETMODE failed"); - return; - } - - act.sa_handler = SIG_IGN; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - sigaction (SIGUSR1, &act, 0); - - vt_mode.mode = VT_AUTO; - vt_mode.relsig = 0; - vt_mode.acqsig = 0; - - if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) - perror("Error VT_SETMODE failed"); + struct sigaction act; + struct vt_mode vt_mode; + + if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) { + perror("Error VT_SETMODE failed"); + return; + } + + act.sa_handler = SIG_IGN; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + sigaction(SIGUSR1, &act, 0); + + vt_mode.mode = VT_AUTO; + vt_mode.relsig = 0; + vt_mode.acqsig = 0; + + if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) + perror("Error VT_SETMODE failed"); } -static void -psplash_console_handle_switches (void) +static void psplash_console_handle_switches(void) { - struct sigaction act; - struct vt_mode vt_mode; - - if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) - { - perror("Error VT_SETMODE failed"); - return; - } - - act.sa_handler = vt_request; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - sigaction (SIGUSR1, &act, 0); - - vt_mode.mode = VT_PROCESS; - vt_mode.relsig = SIGUSR1; - vt_mode.acqsig = SIGUSR1; - - if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) - perror("Error VT_SETMODE failed"); + struct sigaction act; + struct vt_mode vt_mode; + + if (ioctl(ConsoleFd, VT_GETMODE, &vt_mode) < 0) { + perror("Error VT_SETMODE failed"); + return; + } + + act.sa_handler = vt_request; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + sigaction(SIGUSR1, &act, 0); + + vt_mode.mode = VT_PROCESS; + vt_mode.relsig = SIGUSR1; + vt_mode.acqsig = SIGUSR1; + + if (ioctl(ConsoleFd, VT_SETMODE, &vt_mode) < 0) + perror("Error VT_SETMODE failed"); } -void -psplash_console_switch (void) +void psplash_console_switch(void) { - char vtname[10]; - int fd; - struct vt_stat vt_state; - - if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) - { - perror("Error Cannot open /dev/tty0"); - return; - } - - /* Find next free terminal */ - if ((ioctl(fd, VT_OPENQRY, &VTNum) < 0)) - { - perror("Error unable to find a free virtual terminal"); - close(fd); - return; - } - - close(fd); - - sprintf(vtname,"/dev/tty%d", VTNum); - - if ((ConsoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0) - { - fprintf(stderr, "Error cannot open %s: %s\n", vtname, strerror(errno)); - return; - } - - if (ioctl(ConsoleFd, VT_GETSTATE, &vt_state) == 0) - VTNumInitial = vt_state.v_active; - - /* Switch to new free terminal */ - - psplash_console_ignore_switches (); - - if (ioctl(ConsoleFd, VT_ACTIVATE, VTNum) != 0) - perror("Error VT_ACTIVATE failed"); - - if (ioctl(ConsoleFd, VT_WAITACTIVE, VTNum) != 0) - perror("Error VT_WAITACTIVE failed\n"); - - psplash_console_handle_switches (); - - if (ioctl(ConsoleFd, KDSETMODE, KD_GRAPHICS) < 0) - perror("Error KDSETMODE KD_GRAPHICS failed\n"); - - return; + char vtname[10]; + int fd; + struct vt_stat vt_state; + + if ((fd = open("/dev/tty0", O_WRONLY, 0)) < 0) { + perror("Error Cannot open /dev/tty0"); + return; + } + + /* Find next free terminal */ + if ((ioctl(fd, VT_OPENQRY, &VTNum) < 0)) { + perror("Error unable to find a free virtual terminal"); + close(fd); + return; + } + + close(fd); + + sprintf(vtname, "/dev/tty%d", VTNum); + + if ((ConsoleFd = open(vtname, O_RDWR | O_NDELAY, 0)) < 0) { + fprintf(stderr, "Error cannot open %s: %s\n", vtname, + strerror(errno)); + return; + } + + if (ioctl(ConsoleFd, VT_GETSTATE, &vt_state) == 0) + VTNumInitial = vt_state.v_active; + + /* Switch to new free terminal */ + + psplash_console_ignore_switches(); + + if (ioctl(ConsoleFd, VT_ACTIVATE, VTNum) != 0) + perror("Error VT_ACTIVATE failed"); + + if (ioctl(ConsoleFd, VT_WAITACTIVE, VTNum) != 0) + perror("Error VT_WAITACTIVE failed\n"); + + psplash_console_handle_switches(); + + if (ioctl(ConsoleFd, KDSETMODE, KD_GRAPHICS) < 0) + perror("Error KDSETMODE KD_GRAPHICS failed\n"); + + return; } -void -psplash_console_reset (void) +void psplash_console_reset(void) { - int fd; - struct vt_stat vt_state; + int fd; + struct vt_stat vt_state; - if (ConsoleFd < 0) - return; + if (ConsoleFd < 0) + return; - /* Back to text mode */ - ioctl(ConsoleFd, KDSETMODE, KD_TEXT); + /* Back to text mode */ + ioctl(ConsoleFd, KDSETMODE, KD_TEXT); - psplash_console_ignore_switches (); + psplash_console_ignore_switches(); - /* Attempt to switch back to initial console if were still active */ - ioctl (ConsoleFd, VT_GETSTATE, &vt_state); + /* Attempt to switch back to initial console if were still active */ + ioctl(ConsoleFd, VT_GETSTATE, &vt_state); - if (VTNum == vt_state.v_active) - { - if (VTNumInitial > -1) - { - ioctl (ConsoleFd, VT_ACTIVATE, VTNumInitial); - ioctl (ConsoleFd, VT_WAITACTIVE, VTNumInitial); - VTNumInitial = -1; - } - } + if (VTNum == vt_state.v_active) { + if (VTNumInitial > -1) { + ioctl(ConsoleFd, VT_ACTIVATE, VTNumInitial); + ioctl(ConsoleFd, VT_WAITACTIVE, VTNumInitial); + VTNumInitial = -1; + } + } - /* Cleanup */ + /* Cleanup */ - close(ConsoleFd); + close(ConsoleFd); - if ((fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0)) >= 0) - { - ioctl (fd, VT_DISALLOCATE, VTNum); - close (fd); - } + if ((fd = open("/dev/tty0", O_RDWR | O_NDELAY, 0)) >= 0) { + ioctl(fd, VT_DISALLOCATE, VTNum); + close(fd); + } - return; + return; } diff --git a/psplash-console.h b/psplash-console.h index c893bf2..ffc1a0e 100644 --- a/psplash-console.h +++ b/psplash-console.h @@ -10,10 +10,8 @@ #ifndef _HAVE_PSPLASH_CONSOLE_H #define _HAVE_PSPLASH_CONSOLE_H -void -psplash_console_switch (void); +void psplash_console_switch(void); -void -psplash_console_reset (void); +void psplash_console_reset(void); #endif diff --git a/psplash-fb.c b/psplash-fb.c index 2babb5f..08bb2ad 100644 --- a/psplash-fb.c +++ b/psplash-fb.c @@ -10,616 +10,589 @@ #include <endian.h> #include "psplash.h" -static void -psplash_wait_for_vsync(PSplashFB *fb) +static void psplash_wait_for_vsync(PSplashFB * fb) { - int err = ioctl(fb->fd, FBIO_WAITFORVSYNC, 0); - if (err != 0) - fprintf(stderr, "Error, FB vsync ioctl [%d]\n", err); + int err = ioctl(fb->fd, FBIO_WAITFORVSYNC, 0); + if (err != 0) + fprintf(stderr, "Error, FB vsync ioctl [%d]\n", err); } -void -psplash_fb_flip(PSplashFB *fb, int sync) +void psplash_fb_flip(PSplashFB * fb, int sync) { - char *tmp; - - if (fb->double_buffering) { - - /* Carry out the flip after a vsync */ - psplash_wait_for_vsync(fb); - - /* Switch the current activate area in fb */ - if (fb->fb_var.yoffset == 0 ) { - fb->fb_var.yoffset = fb->real_height; - } else { - fb->fb_var.yoffset = 0; - } - if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb->fb_var) == -1 ) { - fprintf(stderr, "psplash_fb_flip: FBIOPAN_DISPLAY failed\n"); - } - - /* Switch the front and back data pointers */ - tmp = fb->fdata; - fb->fdata = fb->bdata; - fb->bdata = tmp; - - /* Sync new front to new back when requested */ - if (sync) { - memcpy(fb->bdata, fb->fdata, fb->stride * fb->real_height); - } - } + char *tmp; + + if (fb->double_buffering) { + + /* Carry out the flip after a vsync */ + psplash_wait_for_vsync(fb); + + /* Switch the current activate area in fb */ + if (fb->fb_var.yoffset == 0) { + fb->fb_var.yoffset = fb->real_height; + } else { + fb->fb_var.yoffset = 0; + } + if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb->fb_var) == -1) { + fprintf(stderr, + "psplash_fb_flip: FBIOPAN_DISPLAY failed\n"); + } + + /* Switch the front and back data pointers */ + tmp = fb->fdata; + fb->fdata = fb->bdata; + fb->bdata = tmp; + + /* Sync new front to new back when requested */ + if (sync) { + memcpy(fb->bdata, fb->fdata, + fb->stride * fb->real_height); + } + } } -void -psplash_fb_destroy (PSplashFB *fb) +void psplash_fb_destroy(PSplashFB * fb) { - if (fb->fd >= 0) - close (fb->fd); + if (fb->fd >= 0) + close(fb->fd); - free(fb); + free(fb); } static int -attempt_to_change_pixel_format (PSplashFB *fb, - struct fb_var_screeninfo *fb_var) +attempt_to_change_pixel_format(PSplashFB * fb, struct fb_var_screeninfo *fb_var) { - /* By default the framebuffer driver may have set an oversized - * yres_virtual to support VT scrolling via the panning interface. - * - * We don't try and maintain this since it's more likely that we - * will fail to increase the bpp if the driver's pre allocated - * framebuffer isn't large enough. - */ - fb_var->yres_virtual = fb_var->yres; - - /* First try setting an 8,8,8,0 pixel format so we don't have to do - * any conversions while drawing. */ - - fb_var->bits_per_pixel = 32; - - fb_var->red.offset = 0; - fb_var->red.length = 8; - - fb_var->green.offset = 8; - fb_var->green.length = 8; - - fb_var->blue.offset = 16; - fb_var->blue.length = 8; - - fb_var->transp.offset = 0; - fb_var->transp.length = 0; - - if (ioctl (fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) - { - fprintf(stdout, "Switched to a 32 bpp 8,8,8 frame buffer\n"); - return 1; - } - else - { - fprintf(stderr, - "Error, failed to switch to a 32 bpp 8,8,8 frame buffer\n"); - } - - /* Otherwise try a 16bpp 5,6,5 format */ - - fb_var->bits_per_pixel = 16; - - fb_var->red.offset = 11; - fb_var->red.length = 5; - - fb_var->green.offset = 5; - fb_var->green.length = 6; - - fb_var->blue.offset = 0; - fb_var->blue.length = 5; - - fb_var->transp.offset = 0; - fb_var->transp.length = 0; - - if (ioctl (fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) - { - fprintf(stdout, "Switched to a 16 bpp 5,6,5 frame buffer\n"); - return 1; - } - else - { - fprintf(stderr, - "Error, failed to switch to a 16 bpp 5,6,5 frame buffer\n"); - } - - return 0; + /* By default the framebuffer driver may have set an oversized + * yres_virtual to support VT scrolling via the panning interface. + * + * We don't try and maintain this since it's more likely that we + * will fail to increase the bpp if the driver's pre allocated + * framebuffer isn't large enough. + */ + fb_var->yres_virtual = fb_var->yres; + + /* First try setting an 8,8,8,0 pixel format so we don't have to do + * any conversions while drawing. */ + + fb_var->bits_per_pixel = 32; + + fb_var->red.offset = 0; + fb_var->red.length = 8; + + fb_var->green.offset = 8; + fb_var->green.length = 8; + + fb_var->blue.offset = 16; + fb_var->blue.length = 8; + + fb_var->transp.offset = 0; + fb_var->transp.length = 0; + + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) { + fprintf(stdout, "Switched to a 32 bpp 8,8,8 frame buffer\n"); + return 1; + } else { + fprintf(stderr, + "Error, failed to switch to a 32 bpp 8,8,8 frame buffer\n"); + } + + /* Otherwise try a 16bpp 5,6,5 format */ + + fb_var->bits_per_pixel = 16; + + fb_var->red.offset = 11; + fb_var->red.length = 5; + + fb_var->green.offset = 5; + fb_var->green.length = 6; + + fb_var->blue.offset = 0; + fb_var->blue.length = 5; + + fb_var->transp.offset = 0; + fb_var->transp.length = 0; + + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, fb_var) == 0) { + fprintf(stdout, "Switched to a 16 bpp 5,6,5 frame buffer\n"); + return 1; + } else { + fprintf(stderr, + "Error, failed to switch to a 16 bpp 5,6,5 frame buffer\n"); + } + + return 0; } -PSplashFB* -psplash_fb_new (int angle, int fbdev_id) +PSplashFB *psplash_fb_new(int angle, int fbdev_id) { - struct fb_var_screeninfo fb_var; - struct fb_fix_screeninfo fb_fix; - int off; - char fbdev[9] = "/dev/fb0"; - - PSplashFB *fb = NULL; - - if (fbdev_id > 0 && fbdev_id < 10) - { - // Conversion from integer to ascii. - fbdev[7] = fbdev_id + 48; - } - - if ((fb = malloc (sizeof(PSplashFB))) == NULL) - { - perror ("Error no memory"); - goto fail; - } - - memset (fb, 0, sizeof(PSplashFB)); - - fb->fd = -1; - - if ((fb->fd = open (fbdev, O_RDWR)) < 0) - { - fprintf(stderr, - "Error opening %s\n", - fbdev); - goto fail; - } - - if (ioctl (fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) - { - perror ("Error getting variable framebuffer info"); - goto fail; - } - - if (fb_var.bits_per_pixel < 16) - { - fprintf(stderr, - "Error, no support currently for %i bpp frame buffers\n" - "Trying to change pixel format...\n", - fb_var.bits_per_pixel); - if (!attempt_to_change_pixel_format (fb, &fb_var)) - goto fail; - } - - if (ioctl (fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) - { - perror ("Error getting variable framebuffer info (2)"); - goto fail; - } - - /* NB: It looks like the fbdev concept of fixed vs variable screen info is - * broken. The line_length is part of the fixed info but it can be changed - * if you set a new pixel format. */ - if (ioctl (fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) - { - perror ("Error getting fixed framebuffer info"); - goto fail; - } - - /* Setup double virtual resolution for double buffering */ - if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb_var) == -1) { - fprintf(stderr, "warning: FBIOPAN_DISPLAY not supported, " - "double buffering disabled\n"); - } else { - if (fb_var.yres_virtual == fb_var.yres * 2) { - DBG("Virtual resolution already double"); - fb->double_buffering = 1; - } else { - fb_var.yres_virtual = fb_var.yres * 2; - if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, &fb_var) == -1) { - fprintf(stderr, "warning: FBIOPUT_VSCREENINFO failed, " - "double buffering disabled\n"); - } else { - if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) { - perror(" Error getting the fixed framebuffer info"); - goto fail; - } else { - DBG("Virtual resolution set to double"); - fb->double_buffering = 1; - } - } - } - } - - fb->real_width = fb->width = fb_var.xres; - fb->real_height = fb->height = fb_var.yres; - fb->bpp = fb_var.bits_per_pixel; - fb->stride = fb_fix.line_length; - fb->type = fb_fix.type; - fb->visual = fb_fix.visual; - - fb->red_offset = fb_var.red.offset; - fb->red_length = fb_var.red.length; - fb->green_offset = fb_var.green.offset; - fb->green_length = fb_var.green.length; - fb->blue_offset = fb_var.blue.offset; - fb->blue_length = fb_var.blue.length; - - if (fb->red_offset == 11 && fb->red_length == 5 && - fb->green_offset == 5 && fb->green_length == 6 && - fb->blue_offset == 0 && fb->blue_length == 5) { - fb->rgbmode = RGB565; - } else if (fb->red_offset == 0 && fb->red_length == 5 && - fb->green_offset == 5 && fb->green_length == 6 && - fb->blue_offset == 11 && fb->blue_length == 5) { - fb->rgbmode = BGR565; - } else if (fb->red_offset == 16 && fb->red_length == 8 && - fb->green_offset == 8 && fb->green_length == 8 && - fb->blue_offset == 0 && fb->blue_length == 8) { - fb->rgbmode = RGB888; - } else if (fb->red_offset == 0 && fb->red_length == 8 && - fb->green_offset == 8 && fb->green_length == 8 && - fb->blue_offset == 16 && fb->blue_length == 8) { - fb->rgbmode = BGR888; - } else { - fb->rgbmode = GENERIC; - } - - DBG("width: %i, height: %i, bpp: %i, stride: %i", - fb->width, fb->height, fb->bpp, fb->stride); - - fb->base = (char *) mmap ((caddr_t) NULL, - fb_fix.smem_len, - PROT_READ|PROT_WRITE, - MAP_SHARED, - fb->fd, 0); - - if (fb->base == (char *)-1) - { - perror("Error cannot mmap framebuffer "); - goto fail; - } - - off = (unsigned long) fb_fix.smem_start % (unsigned long) getpagesize(); - - fb->data = fb->base + off; - - if (fb->double_buffering) { - /* fb_var is needed when flipping the buffers */ - memcpy(&fb->fb_var, &fb_var, sizeof(struct fb_var_screeninfo)); - if (fb->fb_var.yoffset == 0) { - printf("to back\n"); - fb->fdata = fb->data; - fb->bdata = fb->data + fb->stride * fb->height; - } else { - printf("to front\n"); - fb->fdata = fb->data + fb->stride * fb->height; - fb->bdata = fb->data; - } - } else { - fb->fdata = fb->data; - fb->bdata = fb->data; - } + struct fb_var_screeninfo fb_var; + struct fb_fix_screeninfo fb_fix; + int off; + char fbdev[9] = "/dev/fb0"; + + PSplashFB *fb = NULL; + + if (fbdev_id > 0 && fbdev_id < 10) { + // Conversion from integer to ascii. + fbdev[7] = fbdev_id + 48; + } + + if ((fb = malloc(sizeof(PSplashFB))) == NULL) { + perror("Error no memory"); + goto fail; + } + + memset(fb, 0, sizeof(PSplashFB)); + + fb->fd = -1; + + if ((fb->fd = open(fbdev, O_RDWR)) < 0) { + fprintf(stderr, "Error opening %s\n", fbdev); + goto fail; + } + + if (ioctl(fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) { + perror("Error getting variable framebuffer info"); + goto fail; + } + + if (fb_var.bits_per_pixel < 16) { + fprintf(stderr, + "Error, no support currently for %i bpp frame buffers\n" + "Trying to change pixel format...\n", + fb_var.bits_per_pixel); + if (!attempt_to_change_pixel_format(fb, &fb_var)) + goto fail; + } + + if (ioctl(fb->fd, FBIOGET_VSCREENINFO, &fb_var) == -1) { + perror("Error getting variable framebuffer info (2)"); + goto fail; + } + + /* NB: It looks like the fbdev concept of fixed vs variable screen info is + * broken. The line_length is part of the fixed info but it can be changed + * if you set a new pixel format. */ + if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) == -1) { + perror("Error getting fixed framebuffer info"); + goto fail; + } + + /* Setup double virtual resolution for double buffering */ + if (ioctl(fb->fd, FBIOPAN_DISPLAY, &fb_var) == -1) { + fprintf(stderr, "warning: FBIOPAN_DISPLAY not supported, " + "double buffering disabled\n"); + } else { + if (fb_var.yres_virtual == fb_var.yres * 2) { + DBG("Virtual resolution already double"); + fb->double_buffering = 1; + } else { + fb_var.yres_virtual = fb_var.yres * 2; + if (ioctl(fb->fd, FBIOPUT_VSCREENINFO, &fb_var) == -1) { + fprintf(stderr, + "warning: FBIOPUT_VSCREENINFO failed, " + "double buffering disabled\n"); + } else { + if (ioctl(fb->fd, FBIOGET_FSCREENINFO, &fb_fix) + == -1) { + perror + (" Error getting the fixed framebuffer info"); + goto fail; + } else { + DBG("Virtual resolution set to double"); + fb->double_buffering = 1; + } + } + } + } + + fb->real_width = fb->width = fb_var.xres; + fb->real_height = fb->height = fb_var.yres; + fb->bpp = fb_var.bits_per_pixel; + fb->stride = fb_fix.line_length; + fb->type = fb_fix.type; + fb->visual = fb_fix.visual; + + fb->red_offset = fb_var.red.offset; + fb->red_length = fb_var.red.length; + fb->green_offset = fb_var.green.offset; + fb->green_length = fb_var.green.length; + fb->blue_offset = fb_var.blue.offset; + fb->blue_length = fb_var.blue.length; + + if (fb->red_offset == 11 && fb->red_length == 5 && + fb->green_offset == 5 && fb->green_length == 6 && + fb->blue_offset == 0 && fb->blue_length == 5) { + fb->rgbmode = RGB565; + } else if (fb->red_offset == 0 && fb->red_length == 5 && + fb->green_offset == 5 && fb->green_length == 6 && + fb->blue_offset == 11 && fb->blue_length == 5) { + fb->rgbmode = BGR565; + } else if (fb->red_offset == 16 && fb->red_length == 8 && + fb->green_offset == 8 && fb->green_length == 8 && + fb->blue_offset == 0 && fb->blue_length == 8) { + fb->rgbmode = RGB888; + } else if (fb->red_offset == 0 && fb->red_length == 8 && + fb->green_offset == 8 && fb->green_length == 8 && + fb->blue_offset == 16 && fb->blue_length == 8) { + fb->rgbmode = BGR888; + } else { + fb->rgbmode = GENERIC; + } + + DBG("width: %i, height: %i, bpp: %i, stride: %i", + fb->width, fb->height, fb->bpp, fb->stride); + + fb->base = (char *)mmap((caddr_t) NULL, + fb_fix.smem_len, + PROT_READ | PROT_WRITE, MAP_SHARED, fb->fd, 0); + + if (fb->base == (char *)-1) { + perror("Error cannot mmap framebuffer "); + goto fail; + } + + off = (unsigned long)fb_fix.smem_start % (unsigned long)getpagesize(); + + fb->data = fb->base + off; + + if (fb->double_buffering) { + /* fb_var is needed when flipping the buffers */ + memcpy(&fb->fb_var, &fb_var, sizeof(struct fb_var_screeninfo)); + if (fb->fb_var.yoffset == 0) { + printf("to back\n"); + fb->fdata = fb->data; + fb->bdata = fb->data + fb->stride * fb->height; + } else { + printf("to front\n"); + fb->fdata = fb->data + fb->stride * fb->height; + fb->bdata = fb->data; + } + } else { + fb->fdata = fb->data; + fb->bdata = fb->data; + } #if 0 - /* FIXME: No support for 8pp as yet */ - if (visual == FB_VISUAL_PSEUDOCOLOR - || visual == FB_VISUAL_STATIC_PSEUDOCOLOR) - { - static struct fb_cmap cmap; - - cmap.start = 0; - cmap.len = 16; - cmap.red = saved_red; - cmap.green = saved_green; - cmap.blue = saved_blue; - cmap.transp = NULL; - - ioctl (fb, FBIOGETCMAP, &cmap); - } - - if (!status) - atexit (bogl_done); - status = 2; -#endif + /* FIXME: No support for 8pp as yet */ + if (visual == FB_VISUAL_PSEUDOCOLOR + || visual == FB_VISUAL_STATIC_PSEUDOCOLOR) { + static struct fb_cmap cmap; + + cmap.start = 0; + cmap.len = 16; + cmap.red = saved_red; + cmap.green = saved_green; + cmap.blue = saved_blue; + cmap.transp = NULL; + + ioctl(fb, FBIOGETCMAP, &cmap); + } - fb->angle = angle; + if (!status) + atexit(bogl_done); + status = 2; +#endif - switch (fb->angle) - { - case 270: - case 90: - fb->width = fb->real_height; - fb->height = fb->real_width; - break; - case 180: - case 0: - default: - break; - } + fb->angle = angle; + + switch (fb->angle) { + case 270: + case 90: + fb->width = fb->real_height; + fb->height = fb->real_width; + break; + case 180: + case 0: + default: + break; + } - return fb; + return fb; - fail: +fail: - if (fb) - psplash_fb_destroy (fb); + if (fb) + psplash_fb_destroy(fb); - return NULL; + return NULL; } #define OFFSET(fb,x,y) (((y) * (fb)->stride) + ((x) * ((fb)->bpp >> 3))) static inline void -psplash_fb_plot_pixel (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue) +psplash_fb_plot_pixel(PSplashFB * fb, + int x, int y, uint8 red, uint8 green, uint8 blue) { - /* Always write to back data (bdata) which points to the right data with or - * without double buffering support */ - int off; - - if (x < 0 || x > fb->width-1 || y < 0 || y > fb->height-1) - return; - - switch (fb->angle) - { - case 270: - off = OFFSET (fb, fb->height - y - 1, x); - break; - case 180: - off = OFFSET (fb, fb->width - x - 1, fb->height - y - 1); - break; - case 90: - off = OFFSET (fb, y, fb->width - x - 1); - break; - case 0: - default: - off = OFFSET (fb, x, y); - break; - } - - if (fb->rgbmode == RGB565 || fb->rgbmode == RGB888) { - switch (fb->bpp) - { - case 24: + /* Always write to back data (bdata) which points to the right data with or + * without double buffering support */ + int off; + + if (x < 0 || x > fb->width - 1 || y < 0 || y > fb->height - 1) + return; + + switch (fb->angle) { + case 270: + off = OFFSET(fb, fb->height - y - 1, x); + break; + case 180: + off = OFFSET(fb, fb->width - x - 1, fb->height - y - 1); + break; + case 90: + off = OFFSET(fb, y, fb->width - x - 1); + break; + case 0: + default: + off = OFFSET(fb, x, y); + break; + } + + if (fb->rgbmode == RGB565 || fb->rgbmode == RGB888) { + switch (fb->bpp) { + case 24: #if __BYTE_ORDER == __BIG_ENDIAN - *(fb->bdata + off + 0) = red; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = blue; + *(fb->bdata + off + 0) = red; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = blue; #else - *(fb->bdata + off + 0) = blue; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = red; + *(fb->bdata + off + 0) = blue; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = red; #endif - break; - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = (red << 16) | (green << 8) | (blue); - break; - - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((red >> 3) << 11) | ((green >> 2) << 5) | (blue >> 3); - break; - default: - /* depth not supported yet */ - break; - } - } else if (fb->rgbmode == BGR565 || fb->rgbmode == BGR888) { - switch (fb->bpp) - { - case 24: + break; + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = (red << 16) | (green << 8) | (blue); + break; + + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((red >> 3) << 11) | ((green >> 2) << 5) | (blue + >> 3); + break; + default: + /* depth not supported yet */ + break; + } + } else if (fb->rgbmode == BGR565 || fb->rgbmode == BGR888) { + switch (fb->bpp) { + case 24: #if __BYTE_ORDER == __BIG_ENDIAN - *(fb->bdata + off + 0) = blue; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = red; + *(fb->bdata + off + 0) = blue; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = red; #else - *(fb->bdata + off + 0) = red; - *(fb->bdata + off + 1) = green; - *(fb->bdata + off + 2) = blue; + *(fb->bdata + off + 0) = red; + *(fb->bdata + off + 1) = green; + *(fb->bdata + off + 2) = blue; #endif - break; - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = (blue << 16) | (green << 8) | (red); - break; - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((blue >> 3) << 11) | ((green >> 2) << 5) | (red >> 3); - break; - default: - /* depth not supported yet */ - break; - } - } else { - switch (fb->bpp) - { - case 32: - *(volatile uint32_t *) (fb->bdata + off) - = ((red >> (8 - fb->red_length)) << fb->red_offset) - | ((green >> (8 - fb->green_length)) << fb->green_offset) - | ((blue >> (8 - fb->blue_length)) << fb->blue_offset); - break; - case 16: - *(volatile uint16_t *) (fb->bdata + off) - = ((red >> (8 - fb->red_length)) << fb->red_offset) - | ((green >> (8 - fb->green_length)) << fb->green_offset) - | ((blue >> (8 - fb->blue_length)) << fb->blue_offset); - break; - default: - /* depth not supported yet */ - break; - } - } + break; + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = (blue << 16) | (green << 8) | (red); + break; + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((blue >> 3) << 11) | ((green >> 2) << 5) | (red + >> + 3); + break; + default: + /* depth not supported yet */ + break; + } + } else { + switch (fb->bpp) { + case 32: + *(volatile uint32_t *)(fb->bdata + off) + = ((red >> (8 - fb->red_length)) << fb->red_offset) + | ((green >> (8 - fb->green_length)) << fb-> + green_offset) + | ((blue >> (8 - fb->blue_length)) << fb-> + blue_offset); + break; + case 16: + *(volatile uint16_t *)(fb->bdata + off) + = ((red >> (8 - fb->red_length)) << fb->red_offset) + | ((green >> (8 - fb->green_length)) << fb-> + green_offset) + | ((blue >> (8 - fb->blue_length)) << fb-> + blue_offset); + break; + default: + /* depth not supported yet */ + break; + } + } } void -psplash_fb_draw_rect (PSplashFB *fb, - int x, - int y, - int width, - int height, - uint8 red, - uint8 green, - uint8 blue) +psplash_fb_draw_rect(PSplashFB * fb, + int x, + int y, + int width, int height, uint8 red, uint8 green, uint8 blue) { - int dx, dy; + int dx, dy; - for (dy=0; dy < height; dy++) - for (dx=0; dx < width; dx++) - psplash_fb_plot_pixel (fb, x+dx, y+dy, red, green, blue); + for (dy = 0; dy < height; dy++) + for (dx = 0; dx < width; dx++) + psplash_fb_plot_pixel(fb, x + dx, y + dy, red, green, + blue); } void -psplash_fb_draw_image (PSplashFB *fb, - int x, - int y, - int img_width, - int img_height, - int img_bytes_per_pixel, - int img_rowstride, - uint8 *rle_data) +psplash_fb_draw_image(PSplashFB * fb, + int x, + int y, + int img_width, + int img_height, + int img_bytes_per_pixel, + int img_rowstride, uint8 * rle_data) { - uint8 *p = rle_data; - int dx = 0, dy = 0, total_len; - unsigned int len; - - total_len = img_rowstride * img_height; - - /* FIXME: Optimise, check for over runs ... */ - while ((p - rle_data) < total_len) - { - len = *(p++); - - if (len & 128) - { - len -= 128; - - if (len == 0) break; - - do - { - if ((img_bytes_per_pixel < 4 || *(p+3)) && dx < img_width) - psplash_fb_plot_pixel (fb, x+dx, y+dy, *(p), *(p+1), *(p+2)); - if (++dx * img_bytes_per_pixel >= img_rowstride) { dx=0; dy++; } - } - while (--len); - - p += img_bytes_per_pixel; + uint8 *p = rle_data; + int dx = 0, dy = 0, total_len; + unsigned int len; + + total_len = img_rowstride * img_height; + + /* FIXME: Optimise, check for over runs ... */ + while ((p - rle_data) < total_len) { + len = *(p++); + + if (len & 128) { + len -= 128; + + if (len == 0) + break; + + do { + if ((img_bytes_per_pixel < 4 || *(p + 3)) + && dx < img_width) + psplash_fb_plot_pixel(fb, x + dx, + y + dy, *(p), + *(p + 1), + *(p + 2)); + if (++dx * img_bytes_per_pixel >= img_rowstride) { + dx = 0; + dy++; + } + } + while (--len); + + p += img_bytes_per_pixel; + } else { + if (len == 0) + break; + + do { + if ((img_bytes_per_pixel < 4 || *(p + 3)) + && dx < img_width) + psplash_fb_plot_pixel(fb, x + dx, + y + dy, *(p), + *(p + 1), + *(p + 2)); + if (++dx * img_bytes_per_pixel >= img_rowstride) { + dx = 0; + dy++; + } + p += img_bytes_per_pixel; + } + while (--len && (p - rle_data) < total_len); + } } - else - { - if (len == 0) break; - - do - { - if ((img_bytes_per_pixel < 4 || *(p+3)) && dx < img_width) - psplash_fb_plot_pixel (fb, x+dx, y+dy, *(p), *(p+1), *(p+2)); - if (++dx * img_bytes_per_pixel >= img_rowstride) { dx=0; dy++; } - p += img_bytes_per_pixel; - } - while (--len && (p - rle_data) < total_len); - } - } } /* Font rendering code based on BOGL by Ben Pfaff */ static int -psplash_font_glyph (const PSplashFont *font, wchar_t wc, u_int32_t **bitmap) +psplash_font_glyph(const PSplashFont * font, wchar_t wc, u_int32_t ** bitmap) { - int mask = font->index_mask; - int i; - - for (;;) - { - for (i = font->offset[wc & mask]; font->index[i]; i += 2) - { - if ((wchar_t)(font->index[i] & ~mask) == (wc & ~mask)) - { - if (bitmap != NULL) - *bitmap = &font->content[font->index[i+1]]; - return font->index[i] & mask; - } + int mask = font->index_mask; + int i; + + for (;;) { + for (i = font->offset[wc & mask]; font->index[i]; i += 2) { + if ((wchar_t) (font->index[i] & ~mask) == (wc & ~mask)) { + if (bitmap != NULL) + *bitmap = + &font->content[font->index[i + 1]]; + return font->index[i] & mask; + } + } } - } - return 0; + return 0; } void -psplash_fb_text_size (int *width, - int *height, - const PSplashFont *font, - const char *text) +psplash_fb_text_size(int *width, + int *height, const PSplashFont * font, const char *text) { - char *c = (char*)text; - wchar_t wc; - int k, n, w, h, mw; - - n = strlen (text); - mw = h = w = 0; - - mbtowc (0, 0, 0); - for (; (k = mbtowc (&wc, c, n)) > 0; c += k, n -= k) - { - if (*c == '\n') - { - if (w > mw) - mw = w; - w = 0; - h += font->height; - continue; + char *c = (char *)text; + wchar_t wc; + int k, n, w, h, mw; + + n = strlen(text); + mw = h = w = 0; + + mbtowc(0, 0, 0); + for (; (k = mbtowc(&wc, c, n)) > 0; c += k, n -= k) { + if (*c == '\n') { + if (w > mw) + mw = w; + w = 0; + h += font->height; + continue; + } + + w += psplash_font_glyph(font, wc, NULL); } - w += psplash_font_glyph (font, wc, NULL); - } - - *width = (w > mw) ? w : mw; - *height = (h == 0) ? font->height : h; + *width = (w > mw) ? w : mw; + *height = (h == 0) ? font->height : h; } void -psplash_fb_draw_text (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue, - const PSplashFont *font, - const char *text) +psplash_fb_draw_text(PSplashFB * fb, + int x, + int y, + uint8 red, + uint8 green, + uint8 blue, const PSplashFont * font, const char *text) { - int h, w, k, n, cx, cy, dx, dy; - char *c = (char*)text; - wchar_t wc; - - n = strlen (text); - h = font->height; - dx = dy = 0; - - mbtowc (0, 0, 0); - for (; (k = mbtowc (&wc, c, n)) > 0; c += k, n -= k) - { - u_int32_t *glyph = NULL; - - if (*c == '\n') - { - dy += h; - dx = 0; - continue; + int h, w, k, n, cx, cy, dx, dy; + char *c = (char *)text; + wchar_t wc; + + n = strlen(text); + h = font->height; + dx = dy = 0; + + mbtowc(0, 0, 0); + for (; (k = mbtowc(&wc, c, n)) > 0; c += k, n -= k) { + u_int32_t *glyph = NULL; + + if (*c == '\n') { + dy += h; + dx = 0; + continue; + } + + w = psplash_font_glyph(font, wc, &glyph); + + if (glyph == NULL) + continue; + + for (cy = 0; cy < h; cy++) { + u_int32_t g = *glyph++; + + for (cx = 0; cx < w; cx++) { + if (g & 0x80000000) + psplash_fb_plot_pixel(fb, x + dx + cx, + y + dy + cy, red, + green, blue); + g <<= 1; + } + } + + dx += w; } - - w = psplash_font_glyph (font, wc, &glyph); - - if (glyph == NULL) - continue; - - for (cy = 0; cy < h; cy++) - { - u_int32_t g = *glyph++; - - for (cx = 0; cx < w; cx++) - { - if (g & 0x80000000) - psplash_fb_plot_pixel (fb, x+dx+cx, y+dy+cy, - red, green, blue); - g <<= 1; - } - } - - dx += w; - } } - diff --git a/psplash-fb.h b/psplash-fb.h index 16e2b20..a52306b 100644 --- a/psplash-fb.h +++ b/psplash-fb.h @@ -11,87 +11,73 @@ #define _HAVE_PSPLASH_FB_H enum RGBMode { - RGB565, - BGR565, - RGB888, - BGR888, - GENERIC, + RGB565, + BGR565, + RGB888, + BGR888, + GENERIC, }; -typedef struct PSplashFB -{ - int fd; - struct fb_var_screeninfo fb_var; - struct termios save_termios; - int type; - int visual; - int width, height; - int bpp; - int stride; - char *data; - char *base; +typedef struct PSplashFB { + int fd; + struct fb_var_screeninfo fb_var; + struct termios save_termios; + int type; + int visual; + int width, height; + int bpp; + int stride; + char *data; + char *base; - /* Support for double buffering */ - int double_buffering; - char *bdata; - char *fdata; + /* Support for double buffering */ + int double_buffering; + char *bdata; + char *fdata; - int angle, fbdev_id; - int real_width, real_height; + int angle, fbdev_id; + int real_width, real_height; - enum RGBMode rgbmode; - int red_offset; - int red_length; - int green_offset; - int green_length; - int blue_offset; - int blue_length; -} -PSplashFB; + enum RGBMode rgbmode; + int red_offset; + int red_length; + int green_offset; + int green_length; + int blue_offset; + int blue_length; +} PSplashFB; -void -psplash_fb_destroy (PSplashFB *fb); +void psplash_fb_destroy(PSplashFB * fb); -PSplashFB* -psplash_fb_new (int angle, int fbdev_id); +PSplashFB *psplash_fb_new(int angle, int fbdev_id); void -psplash_fb_draw_rect (PSplashFB *fb, - int x, - int y, - int width, - int height, - uint8 red, - uint8 green, - uint8 blue); +psplash_fb_draw_rect(PSplashFB * fb, + int x, + int y, + int width, int height, uint8 red, uint8 green, uint8 blue); void -psplash_fb_draw_image (PSplashFB *fb, - int x, - int y, - int img_width, - int img_height, - int img_bytes_pre_pixel, - int img_rowstride, - uint8 *rle_data); +psplash_fb_draw_image(PSplashFB * fb, + int x, + int y, + int img_width, + int img_height, + int img_bytes_pre_pixel, + int img_rowstride, uint8 * rle_data); void -psplash_fb_text_size (int *width, - int *height, - const PSplashFont *font, - const char *text); +psplash_fb_text_size(int *width, + int *height, const PSplashFont * font, const char *text); void -psplash_fb_draw_text (PSplashFB *fb, - int x, - int y, - uint8 red, - uint8 green, - uint8 blue, - const PSplashFont *font, - const char *text); +psplash_fb_draw_text(PSplashFB * fb, + int x, + int y, + uint8 red, + uint8 green, + uint8 blue, const PSplashFont * font, const char *text); -void -psplash_fb_flip(PSplashFB *fb, int sync); +void psplash_fb_flip(PSplashFB * fb, int sync); #endif diff --git a/psplash-systemd.c b/psplash-systemd.c index 840bd4e..87e0f4a 100644 --- a/psplash-systemd.c +++ b/psplash-systemd.c @@ -33,7 +33,7 @@ int get_progress(void) char buffer[20]; int len; - /* Connect to the system bus */ + /* Connect to the system bus */ r = sd_bus_new(&bus); if (r < 0) goto finish; @@ -44,19 +44,20 @@ int get_progress(void) r = sd_bus_start(bus); if (r < 0) { - fprintf(stderr, "Failed to connect to systemd private bus: %s\n", strerror(-r)); + fprintf(stderr, + "Failed to connect to systemd private bus: %s\n", + strerror(-r)); goto finish; - } - - /* Issue the method call and store the respons message in m */ - r = sd_bus_get_property_trivial(bus, - "org.freedesktop.systemd1", /* service to contact */ - "/org/freedesktop/systemd1", /* object path */ - "org.freedesktop.systemd1.Manager", /* interface name */ - "Progress", /* method name */ - &error, /* object to return error in */ - 'd', /* return message on success */ - &progress); /* value */ + } + + /* Issue the method call and store the respons message in m */ + r = sd_bus_get_property_trivial(bus, "org.freedesktop.systemd1", /* service to contact */ + "/org/freedesktop/systemd1", /* object path */ + "org.freedesktop.systemd1.Manager", /* interface name */ + "Progress", /* method name */ + &error, /* object to return error in */ + 'd', /* return message on success */ + &progress); /* value */ if (r < 0) { fprintf(stderr, "Failed to get progress: %s\n", error.message); goto finish; @@ -70,7 +71,8 @@ int get_progress(void) if (current_progress < progress) current_progress = progress; - len = snprintf(buffer, 20, "PROGRESS %d", (int)(current_progress * 100)); + len = + snprintf(buffer, 20, "PROGRESS %d", (int)(current_progress * 100)); write(pipe_fd, buffer, len + 1); if (progress == 1.0) { @@ -86,9 +88,7 @@ finish: return r; } -int psplash_handler(sd_event_source *s, - uint64_t usec, - void *userdata) +int psplash_handler(sd_event_source * s, uint64_t usec, void *userdata) { sd_event *event = userdata; int r; @@ -125,7 +125,7 @@ int main() chdir(rundir); - if ((pipe_fd = open (PSPLASH_FIFO,O_WRONLY|O_NONBLOCK)) == -1) { + if ((pipe_fd = open(PSPLASH_FIFO, O_WRONLY | O_NONBLOCK)) == -1) { fprintf(stderr, "Error unable to open fifo"); exit(EXIT_FAILURE); } @@ -135,8 +135,7 @@ int main() goto finish; if (sigemptyset(&ss) < 0 || - sigaddset(&ss, SIGTERM) < 0 || - sigaddset(&ss, SIGINT) < 0) { + sigaddset(&ss, SIGTERM) < 0 || sigaddset(&ss, SIGINT) < 0) { r = -errno; goto finish; } diff --git a/psplash-write.c b/psplash-write.c index a12467a..45aa9fc 100644 --- a/psplash-write.c +++ b/psplash-write.c @@ -19,34 +19,31 @@ #include <errno.h> #include "psplash.h" -int main(int argc, char **argv) +int main(int argc, char **argv) { - char *rundir; - int pipe_fd; - - rundir = getenv("PSPLASH_FIFO_DIR"); - - if (!rundir) - rundir = "/run"; - - if (argc!=2) - { - fprintf(stderr, "Wrong number of arguments\n"); - exit(-1); - } - - chdir(rundir); - - if ((pipe_fd = open (PSPLASH_FIFO,O_WRONLY|O_NONBLOCK)) == -1) - { - /* Silently error out instead of covering the boot process in - errors when psplash has exitted due to a VC switch */ - /* perror("Error unable to open fifo"); */ - exit (-1); - } - - write(pipe_fd, argv[1], strlen(argv[1])+1); - - return 0; -} + char *rundir; + int pipe_fd; + + rundir = getenv("PSPLASH_FIFO_DIR"); + + if (!rundir) + rundir = "/run"; + + if (argc != 2) { + fprintf(stderr, "Wrong number of arguments\n"); + exit(-1); + } + chdir(rundir); + + if ((pipe_fd = open(PSPLASH_FIFO, O_WRONLY | O_NONBLOCK)) == -1) { + /* Silently error out instead of covering the boot process in + errors when psplash has exitted due to a VC switch */ + /* perror("Error unable to open fifo"); */ + exit(-1); + } + + write(pipe_fd, argv[1], strlen(argv[1]) + 1); + + return 0; +} diff --git a/psplash.c b/psplash.c index ee1af6b..986670b 100644 --- a/psplash.c +++ b/psplash.c @@ -27,329 +27,302 @@ * (fb)->height / PSPLASH_IMG_SPLIT_DENOMINATOR) \ ) -void -psplash_exit (int UNUSED(signum)) +void psplash_exit(int UNUSED(signum)) { - DBG("mark"); + DBG("mark"); - psplash_console_reset (); + psplash_console_reset(); } -void -psplash_draw_msg (PSplashFB *fb, const char *msg) +void psplash_draw_msg(PSplashFB * fb, const char *msg) { - int w, h; + int w, h; - psplash_fb_text_size (&w, &h, &FONT_DEF, msg); + psplash_fb_text_size(&w, &h, &FONT_DEF, msg); - DBG("displaying '%s' %ix%i\n", msg, w, h); + DBG("displaying '%s' %ix%i\n", msg, w, h); - /* Clear */ + /* Clear */ - psplash_fb_draw_rect (fb, - 0, - SPLIT_LINE_POS(fb) - h, - fb->width, - h, - PSPLASH_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, + 0, + SPLIT_LINE_POS(fb) - h, + fb->width, h, PSPLASH_BACKGROUND_COLOR); - psplash_fb_draw_text (fb, - (fb->width-w)/2, - SPLIT_LINE_POS(fb) - h, - PSPLASH_TEXT_COLOR, - &FONT_DEF, - msg); + psplash_fb_draw_text(fb, + (fb->width - w) / 2, + SPLIT_LINE_POS(fb) - h, + PSPLASH_TEXT_COLOR, &FONT_DEF, msg); } #ifdef PSPLASH_SHOW_PROGRESS_BAR -void -psplash_draw_progress (PSplashFB *fb, int value) +void psplash_draw_progress(PSplashFB * fb, int value) { - int x, y, width, height, barwidth; - - /* 4 pix border */ - x = ((fb->width - BAR_IMG_WIDTH)/2) + 4 ; - y = SPLIT_LINE_POS(fb) + 4; - width = BAR_IMG_WIDTH - 8; - height = BAR_IMG_HEIGHT - 8; - - if (value > 0) - { - barwidth = (CLAMP(value,0,100) * width) / 100; - psplash_fb_draw_rect (fb, x + barwidth, y, - width - barwidth, height, - PSPLASH_BAR_BACKGROUND_COLOR); - psplash_fb_draw_rect (fb, x, y, barwidth, - height, PSPLASH_BAR_COLOR); - } - else - { - barwidth = (CLAMP(-value,0,100) * width) / 100; - psplash_fb_draw_rect (fb, x, y, - width - barwidth, height, - PSPLASH_BAR_BACKGROUND_COLOR); - psplash_fb_draw_rect (fb, x + width - barwidth, - y, barwidth, height, - PSPLASH_BAR_COLOR); - } - - DBG("value: %i, width: %i, barwidth :%i\n", value, - width, barwidth); + int x, y, width, height, barwidth; + + /* 4 pix border */ + x = ((fb->width - BAR_IMG_WIDTH) / 2) + 4; + y = SPLIT_LINE_POS(fb) + 4; + width = BAR_IMG_WIDTH - 8; + height = BAR_IMG_HEIGHT - 8; + + if (value > 0) { + barwidth = (CLAMP(value, 0, 100) * width) / 100; + psplash_fb_draw_rect(fb, x + barwidth, y, + width - barwidth, height, + PSPLASH_BAR_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, x, y, barwidth, + height, PSPLASH_BAR_COLOR); + } else { + barwidth = (CLAMP(-value, 0, 100) * width) / 100; + psplash_fb_draw_rect(fb, x, y, + width - barwidth, height, + PSPLASH_BAR_BACKGROUND_COLOR); + psplash_fb_draw_rect(fb, x + width - barwidth, + y, barwidth, height, PSPLASH_BAR_COLOR); + } + + DBG("value: %i, width: %i, barwidth :%i\n", value, width, barwidth); } #endif /* PSPLASH_SHOW_PROGRESS_BAR */ -static int -parse_command (PSplashFB *fb, char *string) +static int parse_command(PSplashFB * fb, char *string) { - char *command; - - DBG("got cmd %s", string); - - if (strcmp(string,"QUIT") == 0) - return 1; - - command = strtok(string," "); - - if (!strcmp(command,"MSG")) - { - char *arg = strtok(NULL, "\0"); - - if (arg) - psplash_draw_msg (fb, arg); - } - #ifdef PSPLASH_SHOW_PROGRESS_BAR - else if (!strcmp(command,"PROGRESS")) - { - char *arg = strtok(NULL, "\0"); - - if (arg) - psplash_draw_progress (fb, atoi(arg)); - } + char *command; + + DBG("got cmd %s", string); + + if (strcmp(string, "QUIT") == 0) + return 1; + + command = strtok(string, " "); + + if (!strcmp(command, "MSG")) { + char *arg = strtok(NULL, "\0"); + + if (arg) + psplash_draw_msg(fb, arg); + } +#ifdef PSPLASH_SHOW_PROGRESS_BAR + else if (!strcmp(command, "PROGRESS")) { + char *arg = strtok(NULL, "\0"); + + if (arg) + psplash_draw_progress(fb, atoi(arg)); + } #endif - else if (!strcmp(command,"QUIT")) - { - return 1; - } + else if (!strcmp(command, "QUIT")) { + return 1; + } - psplash_fb_flip(fb, 0); - return 0; + psplash_fb_flip(fb, 0); + return 0; } -void -psplash_main (PSplashFB *fb, int pipe_fd, int timeout) +void psplash_main(PSplashFB * fb, int pipe_fd, int timeout) { - int err; - ssize_t length = 0; - fd_set descriptors; - struct timeval tv; - char *end; - char *cmd; - char command[2048]; - - tv.tv_sec = timeout; - tv.tv_usec = 0; - - FD_ZERO(&descriptors); - FD_SET(pipe_fd, &descriptors); - - end = command; - - while (1) - { - if (timeout != 0) - err = select(pipe_fd+1, &descriptors, NULL, NULL, &tv); - else - err = select(pipe_fd+1, &descriptors, NULL, NULL, NULL); - - if (err <= 0) - { - /* - if (errno == EINTR) - continue; - */ - return; - } - - length += read (pipe_fd, end, sizeof(command) - (end - command)); - - if (length == 0) - { - /* Reopen to see if there's anything more for us */ - close(pipe_fd); - pipe_fd = open(PSPLASH_FIFO,O_RDONLY|O_NONBLOCK); - goto out; + int err; + ssize_t length = 0; + fd_set descriptors; + struct timeval tv; + char *end; + char *cmd; + char command[2048]; + + tv.tv_sec = timeout; + tv.tv_usec = 0; + + FD_ZERO(&descriptors); + FD_SET(pipe_fd, &descriptors); + + end = command; + + while (1) { + if (timeout != 0) + err = + select(pipe_fd + 1, &descriptors, NULL, NULL, &tv); + else + err = + select(pipe_fd + 1, &descriptors, NULL, NULL, NULL); + + if (err <= 0) { + /* + if (errno == EINTR) + continue; + */ + return; + } + + length += read(pipe_fd, end, sizeof(command) - (end - command)); + + if (length == 0) { + /* Reopen to see if there's anything more for us */ + close(pipe_fd); + pipe_fd = open(PSPLASH_FIFO, O_RDONLY | O_NONBLOCK); + goto out; + } + + cmd = command; + do { + int cmdlen; + char *cmdend = memchr(cmd, '\n', length); + + /* Replace newlines with string termination */ + if (cmdend) + *cmdend = '\0'; + + cmdlen = strnlen(cmd, length); + + /* Skip string terminations */ + if (!cmdlen && length) { + length--; + cmd++; + continue; + } + + if (parse_command(fb, cmd)) + return; + + length -= cmdlen; + cmd += cmdlen; + } while (length); + +out: + end = &command[length]; + + tv.tv_sec = timeout; + tv.tv_usec = 0; + + FD_ZERO(&descriptors); + FD_SET(pipe_fd, &descriptors); } - cmd = command; - do { - int cmdlen; - char *cmdend = memchr(cmd, '\n', length); - - /* Replace newlines with string termination */ - if (cmdend) - *cmdend = '\0'; - - cmdlen = strnlen(cmd, length); - - /* Skip string terminations */ - if (!cmdlen && length) - { - length--; - cmd++; - continue; - } - - if (parse_command(fb, cmd)) - return; - - length -= cmdlen; - cmd += cmdlen; - } while (length); - - out: - end = &command[length]; - - tv.tv_sec = timeout; - tv.tv_usec = 0; - - FD_ZERO(&descriptors); - FD_SET(pipe_fd,&descriptors); - } - - return; + return; } -int -main (int argc, char** argv) +int main(int argc, char **argv) { - char *rundir; - int pipe_fd, i = 0, angle = 0, fbdev_id = 0, ret = 0; - PSplashFB *fb; - bool disable_console_switch = FALSE; - - signal(SIGHUP, psplash_exit); - signal(SIGINT, psplash_exit); - signal(SIGQUIT, psplash_exit); - - while (++i < argc) { - if (!strcmp(argv[i],"-n") || !strcmp(argv[i],"--no-console-switch")) - { - disable_console_switch = TRUE; - continue; - } - - if (!strcmp(argv[i],"-a") || !strcmp(argv[i],"--angle")) - { - if (++i >= argc) goto fail; - angle = atoi(argv[i]); - continue; - } - - if (!strcmp(argv[i],"-f") || !strcmp(argv[i],"--fbdev")) - { - if (++i >= argc) goto fail; - fbdev_id = atoi(argv[i]); - continue; - } - - fail: - fprintf(stderr, - "Usage: %s [-n|--no-console-switch][-a|--angle <0|90|180|270>][-f|--fbdev <0..9>]\n", - argv[0]); - exit(-1); - } - - rundir = getenv("PSPLASH_FIFO_DIR"); - - if (!rundir) - rundir = "/run"; - - chdir(rundir); - - if (mkfifo(PSPLASH_FIFO, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP)) - { - if (errno!=EEXIST) - { - perror("mkfifo"); - exit(-1); - } - } - - pipe_fd = open (PSPLASH_FIFO,O_RDONLY|O_NONBLOCK); - - if (pipe_fd==-1) - { - perror("pipe open"); - exit(-2); - } - - if (!disable_console_switch) - psplash_console_switch (); - - if ((fb = psplash_fb_new(angle,fbdev_id)) == NULL) - { - ret = -1; - goto fb_fail; - } + char *rundir; + int pipe_fd, i = 0, angle = 0, fbdev_id = 0, ret = 0; + PSplashFB *fb; + bool disable_console_switch = FALSE; + + signal(SIGHUP, psplash_exit); + signal(SIGINT, psplash_exit); + signal(SIGQUIT, psplash_exit); + + while (++i < argc) { + if (!strcmp(argv[i], "-n") + || !strcmp(argv[i], "--no-console-switch")) { + disable_console_switch = TRUE; + continue; + } + + if (!strcmp(argv[i], "-a") || !strcmp(argv[i], "--angle")) { + if (++i >= argc) + goto fail; + angle = atoi(argv[i]); + continue; + } + + if (!strcmp(argv[i], "-f") || !strcmp(argv[i], "--fbdev")) { + if (++i >= argc) + goto fail; + fbdev_id = atoi(argv[i]); + continue; + } + +fail: + fprintf(stderr, + "Usage: %s [-n|--no-console-switch][-a|--angle <0|90|180|270>][-f|--fbdev <0..9>]\n", + argv[0]); + exit(-1); + } + + rundir = getenv("PSPLASH_FIFO_DIR"); + + if (!rundir) + rundir = "/run"; + + chdir(rundir); + + if (mkfifo(PSPLASH_FIFO, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP)) { + if (errno != EEXIST) { + perror("mkfifo"); + exit(-1); + } + } + + pipe_fd = open(PSPLASH_FIFO, O_RDONLY | O_NONBLOCK); + + if (pipe_fd == -1) { + perror("pipe open"); + exit(-2); + } + + if (!disable_console_switch) + psplash_console_switch(); + if ((fb = psplash_fb_new(angle, fbdev_id)) == NULL) { + ret = -1; + goto fb_fail; + } #ifdef HAVE_SYSTEMD - sd_notify(0, "READY=1"); + sd_notify(0, "READY=1"); #endif - /* Clear the background with #ecece1 */ - psplash_fb_draw_rect (fb, 0, 0, fb->width, fb->height, - PSPLASH_BACKGROUND_COLOR); + /* Clear the background with #ecece1 */ + psplash_fb_draw_rect(fb, 0, 0, fb->width, fb->height, + PSPLASH_BACKGROUND_COLOR); - /* Draw the Poky logo */ - psplash_fb_draw_image (fb, - (fb->width - POKY_IMG_WIDTH)/2, + /* Draw the Poky logo */ + psplash_fb_draw_image(fb, (fb->width - POKY_IMG_WIDTH) / 2, #if PSPLASH_IMG_FULLSCREEN - (fb->height - POKY_IMG_HEIGHT)/2, + (fb->height - POKY_IMG_HEIGHT) / 2, #else - (fb->height * PSPLASH_IMG_SPLIT_NUMERATOR - / PSPLASH_IMG_SPLIT_DENOMINATOR - POKY_IMG_HEIGHT)/2, + (fb->height * PSPLASH_IMG_SPLIT_NUMERATOR + / PSPLASH_IMG_SPLIT_DENOMINATOR - + POKY_IMG_HEIGHT) / 2, #endif - POKY_IMG_WIDTH, - POKY_IMG_HEIGHT, - POKY_IMG_BYTES_PER_PIXEL, - POKY_IMG_ROWSTRIDE, - POKY_IMG_RLE_PIXEL_DATA); + POKY_IMG_WIDTH, + POKY_IMG_HEIGHT, + POKY_IMG_BYTES_PER_PIXEL, + POKY_IMG_ROWSTRIDE, POKY_IMG_RLE_PIXEL_DATA); #ifdef PSPLASH_SHOW_PROGRESS_BAR - /* Draw progress bar border */ - psplash_fb_draw_image (fb, - (fb->width - BAR_IMG_WIDTH)/2, - SPLIT_LINE_POS(fb), - BAR_IMG_WIDTH, - BAR_IMG_HEIGHT, - BAR_IMG_BYTES_PER_PIXEL, - BAR_IMG_ROWSTRIDE, - BAR_IMG_RLE_PIXEL_DATA); - - psplash_draw_progress (fb, 0); + /* Draw progress bar border */ + psplash_fb_draw_image(fb, + (fb->width - BAR_IMG_WIDTH) / 2, + SPLIT_LINE_POS(fb), + BAR_IMG_WIDTH, + BAR_IMG_HEIGHT, + BAR_IMG_BYTES_PER_PIXEL, + BAR_IMG_ROWSTRIDE, BAR_IMG_RLE_PIXEL_DATA); + + psplash_draw_progress(fb, 0); #endif #ifdef PSPLASH_STARTUP_MSG - psplash_draw_msg (fb, PSPLASH_STARTUP_MSG); + psplash_draw_msg(fb, PSPLASH_STARTUP_MSG); #endif - /* Scene set so let's flip the buffers. */ - /* The first time we also synchronize the buffers so we can build on an - * existing scene. After the first scene is set in both buffers, only the - * text and progress bar change which overwrite the specific areas with every - * update. - */ - psplash_fb_flip(fb, 1); + /* Scene set so let's flip the buffers. */ + /* The first time we also synchronize the buffers so we can build on an + * existing scene. After the first scene is set in both buffers, only the + * text and progress bar change which overwrite the specific areas with every + * update. + */ + psplash_fb_flip(fb, 1); - psplash_main (fb, pipe_fd, 0); + psplash_main(fb, pipe_fd, 0); - psplash_fb_destroy (fb); + psplash_fb_destroy(fb); - fb_fail: - unlink(PSPLASH_FIFO); +fb_fail: + unlink(PSPLASH_FIFO); - if (!disable_console_switch) - psplash_console_reset (); + if (!disable_console_switch) + psplash_console_reset(); - return ret; + return ret; } diff --git a/psplash.h b/psplash.h index 1c42ec7..8d0e57f 100644 --- a/psplash.h +++ b/psplash.h @@ -35,9 +35,9 @@ #include <termios.h> #include <unistd.h> -typedef uint8_t uint8; +typedef uint8_t uint8; typedef uint16_t uint16; -typedef int bool; +typedef int bool; #ifndef FALSE #define FALSE 0 @@ -62,22 +62,19 @@ typedef int bool; #endif #ifdef __GNUC__ -# define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) +#define UNUSED(x) UNUSED_ ## x __attribute__((__unused__)) #else -# define UNUSED(x) UNUSED_ ## x +#define UNUSED(x) UNUSED_ ## x #endif -typedef struct PSplashFont -{ - char *name; /* Font name. */ - int height; /* Height in pixels. */ - int index_mask; /* ((1 << N) - 1). */ - int *offset; /* (1 << N) offsets into index. */ - int *index; - u_int32_t *content; -} -PSplashFont; - +typedef struct PSplashFont { + char *name; /* Font name. */ + int height; /* Height in pixels. */ + int index_mask; /* ((1 << N) - 1). */ + int *offset; /* (1 << N) offsets into index. */ + int *index; + u_int32_t *content; +} PSplashFont; #include "psplash-fb.h" #include "psplash-console.h" diff --git a/radeon-font.h b/radeon-font.h index ca70cba..54f8e1b 100644 --- a/radeon-font.h +++ b/radeon-font.h @@ -6,646 +6,646 @@ /* Offsets into index. */ static int _radon_offset[256] = { - 569, /* (0x0) */ - 569, /* (0x1) */ - 569, /* (0x2) */ - 569, /* (0x3) */ - 569, /* (0x4) */ - 569, /* (0x5) */ - 569, /* (0x6) */ - 569, /* (0x7) */ - 569, /* (0x8) */ - 569, /* (0x9) */ - 569, /* (0xa) */ - 569, /* (0xb) */ - 569, /* (0xc) */ - 569, /* (0xd) */ - 569, /* (0xe) */ - 569, /* (0xf) */ - 569, /* (0x10) */ - 569, /* (0x11) */ - 569, /* (0x12) */ - 569, /* (0x13) */ - 569, /* (0x14) */ - 569, /* (0x15) */ - 569, /* (0x16) */ - 569, /* (0x17) */ - 569, /* (0x18) */ - 569, /* (0x19) */ - 569, /* (0x1a) */ - 569, /* (0x1b) */ - 569, /* (0x1c) */ - 569, /* (0x1d) */ - 569, /* (0x1e) */ - 569, /* (0x1f) */ - 0, /* (0x20) */ - 3, /* (0x21) */ - 6, /* (0x22) */ - 9, /* (0x23) */ - 12, /* (0x24) */ - 15, /* (0x25) */ - 18, /* (0x26) */ - 21, /* (0x27) */ - 24, /* (0x28) */ - 27, /* (0x29) */ - 30, /* (0x2a) */ - 33, /* (0x2b) */ - 36, /* (0x2c) */ - 39, /* (0x2d) */ - 42, /* (0x2e) */ - 45, /* (0x2f) */ - 48, /* (0x30) */ - 51, /* (0x31) */ - 54, /* (0x32) */ - 57, /* (0x33) */ - 60, /* (0x34) */ - 63, /* (0x35) */ - 66, /* (0x36) */ - 69, /* (0x37) */ - 72, /* (0x38) */ - 75, /* (0x39) */ - 78, /* (0x3a) */ - 81, /* (0x3b) */ - 84, /* (0x3c) */ - 87, /* (0x3d) */ - 90, /* (0x3e) */ - 93, /* (0x3f) */ - 96, /* (0x40) */ - 99, /* (0x41) */ - 102, /* (0x42) */ - 105, /* (0x43) */ - 108, /* (0x44) */ - 111, /* (0x45) */ - 114, /* (0x46) */ - 117, /* (0x47) */ - 120, /* (0x48) */ - 123, /* (0x49) */ - 126, /* (0x4a) */ - 129, /* (0x4b) */ - 132, /* (0x4c) */ - 135, /* (0x4d) */ - 138, /* (0x4e) */ - 141, /* (0x4f) */ - 144, /* (0x50) */ - 147, /* (0x51) */ - 150, /* (0x52) */ - 153, /* (0x53) */ - 156, /* (0x54) */ - 159, /* (0x55) */ - 162, /* (0x56) */ - 165, /* (0x57) */ - 168, /* (0x58) */ - 171, /* (0x59) */ - 174, /* (0x5a) */ - 177, /* (0x5b) */ - 180, /* (0x5c) */ - 183, /* (0x5d) */ - 186, /* (0x5e) */ - 189, /* (0x5f) */ - 192, /* (0x60) */ - 195, /* (0x61) */ - 198, /* (0x62) */ - 201, /* (0x63) */ - 204, /* (0x64) */ - 207, /* (0x65) */ - 210, /* (0x66) */ - 213, /* (0x67) */ - 216, /* (0x68) */ - 219, /* (0x69) */ - 222, /* (0x6a) */ - 225, /* (0x6b) */ - 228, /* (0x6c) */ - 231, /* (0x6d) */ - 234, /* (0x6e) */ - 237, /* (0x6f) */ - 240, /* (0x70) */ - 243, /* (0x71) */ - 246, /* (0x72) */ - 249, /* (0x73) */ - 252, /* (0x74) */ - 255, /* (0x75) */ - 258, /* (0x76) */ - 261, /* (0x77) */ - 264, /* (0x78) */ - 267, /* (0x79) */ - 270, /* (0x7a) */ - 273, /* (0x7b) */ - 276, /* (0x7c) */ - 279, /* (0x7d) */ - 282, /* (0x7e) */ - 569, /* (0x7f) */ - 569, /* (0x80) */ - 569, /* (0x81) */ - 569, /* (0x82) */ - 569, /* (0x83) */ - 569, /* (0x84) */ - 569, /* (0x85) */ - 569, /* (0x86) */ - 569, /* (0x87) */ - 569, /* (0x88) */ - 569, /* (0x89) */ - 569, /* (0x8a) */ - 569, /* (0x8b) */ - 569, /* (0x8c) */ - 569, /* (0x8d) */ - 569, /* (0x8e) */ - 569, /* (0x8f) */ - 569, /* (0x90) */ - 569, /* (0x91) */ - 569, /* (0x92) */ - 569, /* (0x93) */ - 569, /* (0x94) */ - 569, /* (0x95) */ - 569, /* (0x96) */ - 569, /* (0x97) */ - 569, /* (0x98) */ - 569, /* (0x99) */ - 569, /* (0x9a) */ - 569, /* (0x9b) */ - 569, /* (0x9c) */ - 569, /* (0x9d) */ - 569, /* (0x9e) */ - 569, /* (0x9f) */ - 285, /* (0xa0) */ - 288, /* (0xa1) */ - 291, /* (0xa2) */ - 294, /* (0xa3) */ - 297, /* (0xa4) */ - 300, /* (0xa5) */ - 303, /* (0xa6) */ - 306, /* (0xa7) */ - 309, /* (0xa8) */ - 312, /* (0xa9) */ - 315, /* (0xaa) */ - 318, /* (0xab) */ - 321, /* (0xac) */ - 324, /* (0xad) */ - 327, /* (0xae) */ - 330, /* (0xaf) */ - 333, /* (0xb0) */ - 336, /* (0xb1) */ - 339, /* (0xb2) */ - 342, /* (0xb3) */ - 345, /* (0xb4) */ - 348, /* (0xb5) */ - 351, /* (0xb6) */ - 354, /* (0xb7) */ - 357, /* (0xb8) */ - 360, /* (0xb9) */ - 363, /* (0xba) */ - 366, /* (0xbb) */ - 369, /* (0xbc) */ - 372, /* (0xbd) */ - 375, /* (0xbe) */ - 378, /* (0xbf) */ - 381, /* (0xc0) */ - 384, /* (0xc1) */ - 387, /* (0xc2) */ - 390, /* (0xc3) */ - 393, /* (0xc4) */ - 396, /* (0xc5) */ - 399, /* (0xc6) */ - 402, /* (0xc7) */ - 405, /* (0xc8) */ - 408, /* (0xc9) */ - 411, /* (0xca) */ - 414, /* (0xcb) */ - 417, /* (0xcc) */ - 420, /* (0xcd) */ - 423, /* (0xce) */ - 426, /* (0xcf) */ - 429, /* (0xd0) */ - 432, /* (0xd1) */ - 435, /* (0xd2) */ - 438, /* (0xd3) */ - 441, /* (0xd4) */ - 444, /* (0xd5) */ - 447, /* (0xd6) */ - 450, /* (0xd7) */ - 453, /* (0xd8) */ - 456, /* (0xd9) */ - 459, /* (0xda) */ - 462, /* (0xdb) */ - 465, /* (0xdc) */ - 468, /* (0xdd) */ - 471, /* (0xde) */ - 474, /* (0xdf) */ - 477, /* (0xe0) */ - 480, /* (0xe1) */ - 483, /* (0xe2) */ - 486, /* (0xe3) */ - 489, /* (0xe4) */ - 492, /* (0xe5) */ - 495, /* (0xe6) */ - 498, /* (0xe7) */ - 501, /* (0xe8) */ - 504, /* (0xe9) */ - 507, /* (0xea) */ - 510, /* (0xeb) */ - 513, /* (0xec) */ - 516, /* (0xed) */ - 519, /* (0xee) */ - 522, /* (0xef) */ - 525, /* (0xf0) */ - 528, /* (0xf1) */ - 531, /* (0xf2) */ - 534, /* (0xf3) */ - 537, /* (0xf4) */ - 540, /* (0xf5) */ - 543, /* (0xf6) */ - 546, /* (0xf7) */ - 549, /* (0xf8) */ - 552, /* (0xf9) */ - 555, /* (0xfa) */ - 558, /* (0xfb) */ - 561, /* (0xfc) */ - 564, /* (0xfd) */ - 567, /* (0xfe) */ - 569, /* (0xff) */ + 569, /* (0x0) */ + 569, /* (0x1) */ + 569, /* (0x2) */ + 569, /* (0x3) */ + 569, /* (0x4) */ + 569, /* (0x5) */ + 569, /* (0x6) */ + 569, /* (0x7) */ + 569, /* (0x8) */ + 569, /* (0x9) */ + 569, /* (0xa) */ + 569, /* (0xb) */ + 569, /* (0xc) */ + 569, /* (0xd) */ + 569, /* (0xe) */ + 569, /* (0xf) */ + 569, /* (0x10) */ + 569, /* (0x11) */ + 569, /* (0x12) */ + 569, /* (0x13) */ + 569, /* (0x14) */ + 569, /* (0x15) */ + 569, /* (0x16) */ + 569, /* (0x17) */ + 569, /* (0x18) */ + 569, /* (0x19) */ + 569, /* (0x1a) */ + 569, /* (0x1b) */ + 569, /* (0x1c) */ + 569, /* (0x1d) */ + 569, /* (0x1e) */ + 569, /* (0x1f) */ + 0, /* (0x20) */ + 3, /* (0x21) */ + 6, /* (0x22) */ + 9, /* (0x23) */ + 12, /* (0x24) */ + 15, /* (0x25) */ + 18, /* (0x26) */ + 21, /* (0x27) */ + 24, /* (0x28) */ + 27, /* (0x29) */ + 30, /* (0x2a) */ + 33, /* (0x2b) */ + 36, /* (0x2c) */ + 39, /* (0x2d) */ + 42, /* (0x2e) */ + 45, /* (0x2f) */ + 48, /* (0x30) */ + 51, /* (0x31) */ + 54, /* (0x32) */ + 57, /* (0x33) */ + 60, /* (0x34) */ + 63, /* (0x35) */ + 66, /* (0x36) */ + 69, /* (0x37) */ + 72, /* (0x38) */ + 75, /* (0x39) */ + 78, /* (0x3a) */ + 81, /* (0x3b) */ + 84, /* (0x3c) */ + 87, /* (0x3d) */ + 90, /* (0x3e) */ + 93, /* (0x3f) */ + 96, /* (0x40) */ + 99, /* (0x41) */ + 102, /* (0x42) */ + 105, /* (0x43) */ + 108, /* (0x44) */ + 111, /* (0x45) */ + 114, /* (0x46) */ + 117, /* (0x47) */ + 120, /* (0x48) */ + 123, /* (0x49) */ + 126, /* (0x4a) */ + 129, /* (0x4b) */ + 132, /* (0x4c) */ + 135, /* (0x4d) */ + 138, /* (0x4e) */ + 141, /* (0x4f) */ + 144, /* (0x50) */ + 147, /* (0x51) */ + 150, /* (0x52) */ + 153, /* (0x53) */ + 156, /* (0x54) */ + 159, /* (0x55) */ + 162, /* (0x56) */ + 165, /* (0x57) */ + 168, /* (0x58) */ + 171, /* (0x59) */ + 174, /* (0x5a) */ + 177, /* (0x5b) */ + 180, /* (0x5c) */ + 183, /* (0x5d) */ + 186, /* (0x5e) */ + 189, /* (0x5f) */ + 192, /* (0x60) */ + 195, /* (0x61) */ + 198, /* (0x62) */ + 201, /* (0x63) */ + 204, /* (0x64) */ + 207, /* (0x65) */ + 210, /* (0x66) */ + 213, /* (0x67) */ + 216, /* (0x68) */ + 219, /* (0x69) */ + 222, /* (0x6a) */ + 225, /* (0x6b) */ + 228, /* (0x6c) */ + 231, /* (0x6d) */ + 234, /* (0x6e) */ + 237, /* (0x6f) */ + 240, /* (0x70) */ + 243, /* (0x71) */ + 246, /* (0x72) */ + 249, /* (0x73) */ + 252, /* (0x74) */ + 255, /* (0x75) */ + 258, /* (0x76) */ + 261, /* (0x77) */ + 264, /* (0x78) */ + 267, /* (0x79) */ + 270, /* (0x7a) */ + 273, /* (0x7b) */ + 276, /* (0x7c) */ + 279, /* (0x7d) */ + 282, /* (0x7e) */ + 569, /* (0x7f) */ + 569, /* (0x80) */ + 569, /* (0x81) */ + 569, /* (0x82) */ + 569, /* (0x83) */ + 569, /* (0x84) */ + 569, /* (0x85) */ + 569, /* (0x86) */ + 569, /* (0x87) */ + 569, /* (0x88) */ + 569, /* (0x89) */ + 569, /* (0x8a) */ + 569, /* (0x8b) */ + 569, /* (0x8c) */ + 569, /* (0x8d) */ + 569, /* (0x8e) */ + 569, /* (0x8f) */ + 569, /* (0x90) */ + 569, /* (0x91) */ + 569, /* (0x92) */ + 569, /* (0x93) */ + 569, /* (0x94) */ + 569, /* (0x95) */ + 569, /* (0x96) */ + 569, /* (0x97) */ + 569, /* (0x98) */ + 569, /* (0x99) */ + 569, /* (0x9a) */ + 569, /* (0x9b) */ + 569, /* (0x9c) */ + 569, /* (0x9d) */ + 569, /* (0x9e) */ + 569, /* (0x9f) */ + 285, /* (0xa0) */ + 288, /* (0xa1) */ + 291, /* (0xa2) */ + 294, /* (0xa3) */ + 297, /* (0xa4) */ + 300, /* (0xa5) */ + 303, /* (0xa6) */ + 306, /* (0xa7) */ + 309, /* (0xa8) */ + 312, /* (0xa9) */ + 315, /* (0xaa) */ + 318, /* (0xab) */ + 321, /* (0xac) */ + 324, /* (0xad) */ + 327, /* (0xae) */ + 330, /* (0xaf) */ + 333, /* (0xb0) */ + 336, /* (0xb1) */ + 339, /* (0xb2) */ + 342, /* (0xb3) */ + 345, /* (0xb4) */ + 348, /* (0xb5) */ + 351, /* (0xb6) */ + 354, /* (0xb7) */ + 357, /* (0xb8) */ + 360, /* (0xb9) */ + 363, /* (0xba) */ + 366, /* (0xbb) */ + 369, /* (0xbc) */ + 372, /* (0xbd) */ + 375, /* (0xbe) */ + 378, /* (0xbf) */ + 381, /* (0xc0) */ + 384, /* (0xc1) */ + 387, /* (0xc2) */ + 390, /* (0xc3) */ + 393, /* (0xc4) */ + 396, /* (0xc5) */ + 399, /* (0xc6) */ + 402, /* (0xc7) */ + 405, /* (0xc8) */ + 408, /* (0xc9) */ + 411, /* (0xca) */ + 414, /* (0xcb) */ + 417, /* (0xcc) */ + 420, /* (0xcd) */ + 423, /* (0xce) */ + 426, /* (0xcf) */ + 429, /* (0xd0) */ + 432, /* (0xd1) */ + 435, /* (0xd2) */ + 438, /* (0xd3) */ + 441, /* (0xd4) */ + 444, /* (0xd5) */ + 447, /* (0xd6) */ + 450, /* (0xd7) */ + 453, /* (0xd8) */ + 456, /* (0xd9) */ + 459, /* (0xda) */ + 462, /* (0xdb) */ + 465, /* (0xdc) */ + 468, /* (0xdd) */ + 471, /* (0xde) */ + 474, /* (0xdf) */ + 477, /* (0xe0) */ + 480, /* (0xe1) */ + 483, /* (0xe2) */ + 486, /* (0xe3) */ + 489, /* (0xe4) */ + 492, /* (0xe5) */ + 495, /* (0xe6) */ + 498, /* (0xe7) */ + 501, /* (0xe8) */ + 504, /* (0xe9) */ + 507, /* (0xea) */ + 510, /* (0xeb) */ + 513, /* (0xec) */ + 516, /* (0xed) */ + 519, /* (0xee) */ + 522, /* (0xef) */ + 525, /* (0xf0) */ + 528, /* (0xf1) */ + 531, /* (0xf2) */ + 534, /* (0xf3) */ + 537, /* (0xf4) */ + 540, /* (0xf5) */ + 543, /* (0xf6) */ + 546, /* (0xf7) */ + 549, /* (0xf8) */ + 552, /* (0xf9) */ + 555, /* (0xfa) */ + 558, /* (0xfb) */ + 561, /* (0xfc) */ + 564, /* (0xfd) */ + 567, /* (0xfe) */ + 569, /* (0xff) */ }; /* Index into content data. */ static int _radon_index[570] = { - 0x8, 0, - 0, - 0x8, 12, - 0, - 0x8, 24, - 0, - 0x8, 36, - 0, - 0x8, 48, - 0, - 0x8, 60, - 0, - 0x8, 72, - 0, - 0x8, 84, - 0, - 0x8, 96, - 0, - 0x8, 108, - 0, - 0x8, 120, - 0, - 0x8, 132, - 0, - 0x8, 144, - 0, - 0x8, 156, - 0, - 0x8, 168, - 0, - 0x8, 180, - 0, - 0x8, 192, - 0, - 0x8, 204, - 0, - 0x8, 216, - 0, - 0x8, 228, - 0, - 0x8, 240, - 0, - 0x8, 252, - 0, - 0x8, 264, - 0, - 0x8, 276, - 0, - 0x8, 288, - 0, - 0x8, 300, - 0, - 0x8, 312, - 0, - 0x8, 324, - 0, - 0x8, 336, - 0, - 0x8, 348, - 0, - 0x8, 360, - 0, - 0x8, 372, - 0, - 0x8, 384, - 0, - 0x8, 396, - 0, - 0x8, 408, - 0, - 0x8, 420, - 0, - 0x8, 432, - 0, - 0x8, 444, - 0, - 0x8, 456, - 0, - 0x8, 468, - 0, - 0x8, 480, - 0, - 0x8, 492, - 0, - 0x8, 504, - 0, - 0x8, 516, - 0, - 0x8, 528, - 0, - 0x8, 540, - 0, - 0x8, 552, - 0, - 0x8, 564, - 0, - 0x8, 576, - 0, - 0x8, 588, - 0, - 0x8, 600, - 0, - 0x8, 612, - 0, - 0x8, 624, - 0, - 0x8, 636, - 0, - 0x8, 648, - 0, - 0x8, 660, - 0, - 0x8, 672, - 0, - 0x8, 684, - 0, - 0x8, 696, - 0, - 0x8, 708, - 0, - 0x8, 720, - 0, - 0x8, 732, - 0, - 0x8, 744, - 0, - 0x8, 756, - 0, - 0x8, 768, - 0, - 0x8, 780, - 0, - 0x8, 792, - 0, - 0x8, 804, - 0, - 0x8, 816, - 0, - 0x8, 828, - 0, - 0x8, 840, - 0, - 0x8, 852, - 0, - 0x8, 864, - 0, - 0x8, 876, - 0, - 0x8, 888, - 0, - 0x8, 900, - 0, - 0x8, 912, - 0, - 0x8, 924, - 0, - 0x8, 936, - 0, - 0x8, 948, - 0, - 0x8, 960, - 0, - 0x8, 972, - 0, - 0x8, 984, - 0, - 0x8, 996, - 0, - 0x8, 1008, - 0, - 0x8, 1020, - 0, - 0x8, 1032, - 0, - 0x8, 1044, - 0, - 0x8, 1056, - 0, - 0x8, 1068, - 0, - 0x8, 1080, - 0, - 0x8, 1092, - 0, - 0x8, 1104, - 0, - 0x8, 1116, - 0, - 0x8, 1128, - 0, - 0x8, 1140, - 0, - 0x8, 1152, - 0, - 0x8, 1164, - 0, - 0x8, 1176, - 0, - 0x8, 1188, - 0, - 0x8, 1200, - 0, - 0x8, 1212, - 0, - 0x8, 1224, - 0, - 0x8, 1236, - 0, - 0x8, 1248, - 0, - 0x8, 1260, - 0, - 0x8, 1272, - 0, - 0x8, 1284, - 0, - 0x8, 1296, - 0, - 0x8, 1308, - 0, - 0x8, 1320, - 0, - 0x8, 1332, - 0, - 0x8, 1344, - 0, - 0x8, 1356, - 0, - 0x8, 1368, - 0, - 0x8, 1380, - 0, - 0x8, 1392, - 0, - 0x8, 1404, - 0, - 0x8, 1416, - 0, - 0x8, 1428, - 0, - 0x8, 1440, - 0, - 0x8, 1452, - 0, - 0x8, 1464, - 0, - 0x8, 1476, - 0, - 0x8, 1488, - 0, - 0x8, 1500, - 0, - 0x8, 1512, - 0, - 0x8, 1524, - 0, - 0x8, 1536, - 0, - 0x8, 1548, - 0, - 0x8, 1560, - 0, - 0x8, 1572, - 0, - 0x8, 1584, - 0, - 0x8, 1596, - 0, - 0x8, 1608, - 0, - 0x8, 1620, - 0, - 0x8, 1632, - 0, - 0x8, 1644, - 0, - 0x8, 1656, - 0, - 0x8, 1668, - 0, - 0x8, 1680, - 0, - 0x8, 1692, - 0, - 0x8, 1704, - 0, - 0x8, 1716, - 0, - 0x8, 1728, - 0, - 0x8, 1740, - 0, - 0x8, 1752, - 0, - 0x8, 1764, - 0, - 0x8, 1776, - 0, - 0x8, 1788, - 0, - 0x8, 1800, - 0, - 0x8, 1812, - 0, - 0x8, 1824, - 0, - 0x8, 1836, - 0, - 0x8, 1848, - 0, - 0x8, 1860, - 0, - 0x8, 1872, - 0, - 0x8, 1884, - 0, - 0x8, 1896, - 0, - 0x8, 1908, - 0, - 0x8, 1920, - 0, - 0x8, 1932, - 0, - 0x8, 1944, - 0, - 0x8, 1956, - 0, - 0x8, 1968, - 0, - 0x8, 1980, - 0, - 0x8, 1992, - 0, - 0x8, 2004, - 0, - 0x8, 2016, - 0, - 0x8, 2028, - 0, - 0x8, 2040, - 0, - 0x8, 2052, - 0, - 0x8, 2064, - 0, - 0x8, 2076, - 0, - 0x8, 2088, - 0, - 0x8, 2100, - 0, - 0x8, 2112, - 0, - 0x8, 2124, - 0, - 0x8, 2136, - 0, - 0x8, 2148, - 0, - 0x8, 2160, - 0, - 0x8, 2172, - 0, - 0x8, 2184, - 0, - 0x8, 2196, - 0, - 0x8, 2208, - 0, - 0x8, 2220, - 0, - 0x8, 2232, - 0, - 0x8, 2244, - 0, - 0x8, 2256, - 0, - 0x8, 2268, - 0, + 0x8, 0, + 0, + 0x8, 12, + 0, + 0x8, 24, + 0, + 0x8, 36, + 0, + 0x8, 48, + 0, + 0x8, 60, + 0, + 0x8, 72, + 0, + 0x8, 84, + 0, + 0x8, 96, + 0, + 0x8, 108, + 0, + 0x8, 120, + 0, + 0x8, 132, + 0, + 0x8, 144, + 0, + 0x8, 156, + 0, + 0x8, 168, + 0, + 0x8, 180, + 0, + 0x8, 192, + 0, + 0x8, 204, + 0, + 0x8, 216, + 0, + 0x8, 228, + 0, + 0x8, 240, + 0, + 0x8, 252, + 0, + 0x8, 264, + 0, + 0x8, 276, + 0, + 0x8, 288, + 0, + 0x8, 300, + 0, + 0x8, 312, + 0, + 0x8, 324, + 0, + 0x8, 336, + 0, + 0x8, 348, + 0, + 0x8, 360, + 0, + 0x8, 372, + 0, + 0x8, 384, + 0, + 0x8, 396, + 0, + 0x8, 408, + 0, + 0x8, 420, + 0, + 0x8, 432, + 0, + 0x8, 444, + 0, + 0x8, 456, + 0, + 0x8, 468, + 0, + 0x8, 480, + 0, + 0x8, 492, + 0, + 0x8, 504, + 0, + 0x8, 516, + 0, + 0x8, 528, + 0, + 0x8, 540, + 0, + 0x8, 552, + 0, + 0x8, 564, + 0, + 0x8, 576, + 0, + 0x8, 588, + 0, + 0x8, 600, + 0, + 0x8, 612, + 0, + 0x8, 624, + 0, + 0x8, 636, + 0, + 0x8, 648, + 0, + 0x8, 660, + 0, + 0x8, 672, + 0, + 0x8, 684, + 0, + 0x8, 696, + 0, + 0x8, 708, + 0, + 0x8, 720, + 0, + 0x8, 732, + 0, + 0x8, 744, + 0, + 0x8, 756, + 0, + 0x8, 768, + 0, + 0x8, 780, + 0, + 0x8, 792, + 0, + 0x8, 804, + 0, + 0x8, 816, + 0, + 0x8, 828, + 0, + 0x8, 840, + 0, + 0x8, 852, + 0, + 0x8, 864, + 0, + 0x8, 876, + 0, + 0x8, 888, + 0, + 0x8, 900, + 0, + 0x8, 912, + 0, + 0x8, 924, + 0, + 0x8, 936, + 0, + 0x8, 948, + 0, + 0x8, 960, + 0, + 0x8, 972, + 0, + 0x8, 984, + 0, + 0x8, 996, + 0, + 0x8, 1008, + 0, + 0x8, 1020, + 0, + 0x8, 1032, + 0, + 0x8, 1044, + 0, + 0x8, 1056, + 0, + 0x8, 1068, + 0, + 0x8, 1080, + 0, + 0x8, 1092, + 0, + 0x8, 1104, + 0, + 0x8, 1116, + 0, + 0x8, 1128, + 0, + 0x8, 1140, + 0, + 0x8, 1152, + 0, + 0x8, 1164, + 0, + 0x8, 1176, + 0, + 0x8, 1188, + 0, + 0x8, 1200, + 0, + 0x8, 1212, + 0, + 0x8, 1224, + 0, + 0x8, 1236, + 0, + 0x8, 1248, + 0, + 0x8, 1260, + 0, + 0x8, 1272, + 0, + 0x8, 1284, + 0, + 0x8, 1296, + 0, + 0x8, 1308, + 0, + 0x8, 1320, + 0, + 0x8, 1332, + 0, + 0x8, 1344, + 0, + 0x8, 1356, + 0, + 0x8, 1368, + 0, + 0x8, 1380, + 0, + 0x8, 1392, + 0, + 0x8, 1404, + 0, + 0x8, 1416, + 0, + 0x8, 1428, + 0, + 0x8, 1440, + 0, + 0x8, 1452, + 0, + 0x8, 1464, + 0, + 0x8, 1476, + 0, + 0x8, 1488, + 0, + 0x8, 1500, + 0, + 0x8, 1512, + 0, + 0x8, 1524, + 0, + 0x8, 1536, + 0, + 0x8, 1548, + 0, + 0x8, 1560, + 0, + 0x8, 1572, + 0, + 0x8, 1584, + 0, + 0x8, 1596, + 0, + 0x8, 1608, + 0, + 0x8, 1620, + 0, + 0x8, 1632, + 0, + 0x8, 1644, + 0, + 0x8, 1656, + 0, + 0x8, 1668, + 0, + 0x8, 1680, + 0, + 0x8, 1692, + 0, + 0x8, 1704, + 0, + 0x8, 1716, + 0, + 0x8, 1728, + 0, + 0x8, 1740, + 0, + 0x8, 1752, + 0, + 0x8, 1764, + 0, + 0x8, 1776, + 0, + 0x8, 1788, + 0, + 0x8, 1800, + 0, + 0x8, 1812, + 0, + 0x8, 1824, + 0, + 0x8, 1836, + 0, + 0x8, 1848, + 0, + 0x8, 1860, + 0, + 0x8, 1872, + 0, + 0x8, 1884, + 0, + 0x8, 1896, + 0, + 0x8, 1908, + 0, + 0x8, 1920, + 0, + 0x8, 1932, + 0, + 0x8, 1944, + 0, + 0x8, 1956, + 0, + 0x8, 1968, + 0, + 0x8, 1980, + 0, + 0x8, 1992, + 0, + 0x8, 2004, + 0, + 0x8, 2016, + 0, + 0x8, 2028, + 0, + 0x8, 2040, + 0, + 0x8, 2052, + 0, + 0x8, 2064, + 0, + 0x8, 2076, + 0, + 0x8, 2088, + 0, + 0x8, 2100, + 0, + 0x8, 2112, + 0, + 0x8, 2124, + 0, + 0x8, 2136, + 0, + 0x8, 2148, + 0, + 0x8, 2160, + 0, + 0x8, 2172, + 0, + 0x8, 2184, + 0, + 0x8, 2196, + 0, + 0x8, 2208, + 0, + 0x8, 2220, + 0, + 0x8, 2232, + 0, + 0x8, 2244, + 0, + 0x8, 2256, + 0, + 0x8, 2268, + 0, }; /* Font character content data. */ @@ -666,18 +666,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 12: character ! (0x21), width 8 */ /* +--------+ @@ -694,18 +694,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 24: character " (0x22), width 8 */ /* +--------+ @@ -722,18 +722,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x28000000, -0x28000000, -0x28000000, -0x28000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x28000000, + 0x28000000, + 0x28000000, + 0x28000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 36: character # (0x23), width 8 */ /* +--------+ @@ -750,18 +750,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x44000000, -0x44000000, -0xba000000, -0x44000000, -0x44000000, -0x44000000, -0xba000000, -0x44000000, -0x44000000, -0x00000000, -0x00000000, + 0x00000000, + 0x44000000, + 0x44000000, + 0xba000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0xba000000, + 0x44000000, + 0x44000000, + 0x00000000, + 0x00000000, /* 48: character $ (0x24), width 8 */ /* +--------+ @@ -778,18 +778,18 @@ static u_int32_t _radon_content[] = { | * | | | +--------+ */ -0x10000000, -0x7e000000, -0x80000000, -0x90000000, -0x80000000, -0x7c000000, -0x02000000, -0x12000000, -0x02000000, -0xfc000000, -0x10000000, -0x00000000, + 0x10000000, + 0x7e000000, + 0x80000000, + 0x90000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x12000000, + 0x02000000, + 0xfc000000, + 0x10000000, + 0x00000000, /* 60: character % (0x25), width 8 */ /* +--------+ @@ -806,18 +806,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x62000000, -0x92000000, -0x94000000, -0x68000000, -0x10000000, -0x2c000000, -0x52000000, -0x92000000, -0x8c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x62000000, + 0x92000000, + 0x94000000, + 0x68000000, + 0x10000000, + 0x2c000000, + 0x52000000, + 0x92000000, + 0x8c000000, + 0x00000000, + 0x00000000, /* 72: character & (0x26), width 8 */ /* +--------+ @@ -834,18 +834,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x60000000, -0x90000000, -0x90000000, -0x40000000, -0x20000000, -0x90000000, -0x8a000000, -0x84000000, -0x7a000000, -0x00000000, -0x00000000, + 0x00000000, + 0x60000000, + 0x90000000, + 0x90000000, + 0x40000000, + 0x20000000, + 0x90000000, + 0x8a000000, + 0x84000000, + 0x7a000000, + 0x00000000, + 0x00000000, /* 84: character ' (0x27), width 8 */ /* +--------+ @@ -862,18 +862,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x60000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x60000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 96: character ( (0x28), width 8 */ /* +--------+ @@ -890,18 +890,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 108: character ) (0x29), width 8 */ /* +--------+ @@ -918,18 +918,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 120: character * (0x2a), width 8 */ /* +--------+ @@ -946,18 +946,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x92000000, -0x54000000, -0x10000000, -0x10000000, -0x54000000, -0x92000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x92000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x92000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 132: character + (0x2b), width 8 */ /* +--------+ @@ -974,18 +974,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0xd6000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0xd6000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 144: character , (0x2c), width 8 */ /* +--------+ @@ -1002,18 +1002,18 @@ static u_int32_t _radon_content[] = { | ** | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x08000000, -0x08000000, -0x30000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x30000000, + 0x00000000, /* 156: character - (0x2d), width 8 */ /* +--------+ @@ -1030,18 +1030,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 168: character . (0x2e), width 8 */ /* +--------+ @@ -1058,18 +1058,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 180: character / (0x2f), width 8 */ /* +--------+ @@ -1086,18 +1086,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x02000000, -0x02000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 192: character 0 (0x30), width 8 */ /* +--------+ @@ -1114,18 +1114,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 204: character 1 (0x31), width 8 */ /* +--------+ @@ -1142,18 +1142,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x28000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x28000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 216: character 2 (0x32), width 8 */ /* +--------+ @@ -1170,18 +1170,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x7c000000, -0x80000000, -0x80000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, /* 228: character 3 (0x33), width 8 */ /* +--------+ @@ -1198,18 +1198,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x3c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x3c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 240: character 4 (0x34), width 8 */ /* +--------+ @@ -1226,18 +1226,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7a000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7a000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 252: character 5 (0x35), width 8 */ /* +--------+ @@ -1254,18 +1254,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfe000000, -0x00000000, -0x80000000, -0x80000000, -0x7c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 264: character 6 (0x36), width 8 */ /* +--------+ @@ -1282,18 +1282,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 276: character 7 (0x37), width 8 */ /* +--------+ @@ -1310,18 +1310,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 288: character 8 (0x38), width 8 */ /* +--------+ @@ -1338,18 +1338,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 300: character 9 (0x39), width 8 */ /* +--------+ @@ -1366,18 +1366,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7a000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7a000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 312: character : (0x3a), width 8 */ /* +--------+ @@ -1394,18 +1394,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 324: character ; (0x3b), width 8 */ /* +--------+ @@ -1422,18 +1422,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x60000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x60000000, + 0x00000000, + 0x00000000, /* 336: character < (0x3c), width 8 */ /* +--------+ @@ -1450,18 +1450,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x20000000, -0x10000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x20000000, + 0x10000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 348: character = (0x3d), width 8 */ /* +--------+ @@ -1478,18 +1478,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfe000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 360: character > (0x3e), width 8 */ /* +--------+ @@ -1506,18 +1506,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x08000000, -0x04000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x08000000, + 0x04000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 372: character ? (0x3f), width 8 */ /* +--------+ @@ -1534,18 +1534,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x1c000000, -0x20000000, -0x20000000, -0x00000000, -0x20000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x00000000, + 0x20000000, + 0x00000000, + 0x00000000, /* 384: character @ (0x40), width 8 */ /* +--------+ @@ -1562,18 +1562,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x8a000000, -0x92000000, -0x92000000, -0x92000000, -0x8c000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x8a000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x8c000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 396: character A (0x41), width 8 */ /* +--------+ @@ -1590,18 +1590,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 408: character B (0x42), width 8 */ /* +--------+ @@ -1618,18 +1618,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 420: character C (0x43), width 8 */ /* +--------+ @@ -1646,18 +1646,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 432: character D (0x44), width 8 */ /* +--------+ @@ -1674,18 +1674,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 444: character E (0x45), width 8 */ /* +--------+ @@ -1702,18 +1702,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 456: character F (0x46), width 8 */ /* +--------+ @@ -1730,18 +1730,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 468: character G (0x47), width 8 */ /* +--------+ @@ -1758,18 +1758,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x9a000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x9a000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 480: character H (0x48), width 8 */ /* +--------+ @@ -1786,18 +1786,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 492: character I (0x49), width 8 */ /* +--------+ @@ -1814,18 +1814,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 504: character J (0x4a), width 8 */ /* +--------+ @@ -1842,18 +1842,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x84000000, -0x78000000, -0x00000000, -0x00000000, + 0x00000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x84000000, + 0x78000000, + 0x00000000, + 0x00000000, /* 516: character K (0x4b), width 8 */ /* +--------+ @@ -1870,18 +1870,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 528: character L (0x4c), width 8 */ /* +--------+ @@ -1898,18 +1898,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 540: character M (0x4d), width 8 */ /* +--------+ @@ -1926,18 +1926,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 552: character N (0x4e), width 8 */ /* +--------+ @@ -1954,18 +1954,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 564: character O (0x4f), width 8 */ /* +--------+ @@ -1982,18 +1982,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 576: character P (0x50), width 8 */ /* +--------+ @@ -2010,18 +2010,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 588: character Q (0x51), width 8 */ /* +--------+ @@ -2038,18 +2038,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x8a000000, -0x8a000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x8a000000, + 0x8a000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 600: character R (0x52), width 8 */ /* +--------+ @@ -2066,18 +2066,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 612: character S (0x53), width 8 */ /* +--------+ @@ -2094,18 +2094,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7e000000, -0x80000000, -0x80000000, -0x80000000, -0x7c000000, -0x02000000, -0x02000000, -0x02000000, -0xfc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7e000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0xfc000000, + 0x00000000, + 0x00000000, /* 624: character T (0x54), width 8 */ /* +--------+ @@ -2122,18 +2122,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfe000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 636: character U (0x55), width 8 */ /* +--------+ @@ -2150,18 +2150,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 648: character V (0x56), width 8 */ /* +--------+ @@ -2178,18 +2178,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x84000000, -0x88000000, -0x90000000, -0xa0000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x84000000, + 0x88000000, + 0x90000000, + 0xa0000000, + 0x00000000, + 0x00000000, /* 660: character W (0x57), width 8 */ /* +--------+ @@ -2206,18 +2206,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 672: character X (0x58), width 8 */ /* +--------+ @@ -2234,18 +2234,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 684: character Y (0x59), width 8 */ /* +--------+ @@ -2262,18 +2262,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 696: character Z (0x5a), width 8 */ /* +--------+ @@ -2290,18 +2290,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xfc000000, -0x02000000, -0x04000000, -0x08000000, -0x10000000, -0x20000000, -0x40000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x04000000, + 0x08000000, + 0x10000000, + 0x20000000, + 0x40000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 708: character [ (0x5b), width 8 */ /* +--------+ @@ -2318,18 +2318,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x20000000, -0x1c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x1c000000, + 0x00000000, + 0x00000000, /* 720: character \ (0x5c), width 8 */ /* +--------+ @@ -2346,18 +2346,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x80000000, -0x40000000, -0x20000000, -0x10000000, -0x08000000, -0x04000000, -0x02000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x40000000, + 0x20000000, + 0x10000000, + 0x08000000, + 0x04000000, + 0x02000000, + 0x00000000, + 0x00000000, /* 732: character ] (0x5d), width 8 */ /* +--------+ @@ -2374,18 +2374,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, /* 744: character ^ (0x5e), width 8 */ /* +--------+ @@ -2402,18 +2402,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x44000000, -0x44000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 756: character _ (0x5f), width 8 */ /* +--------+ @@ -2430,18 +2430,18 @@ static u_int32_t _radon_content[] = { |********| | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xff000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xff000000, + 0x00000000, /* 768: character ` (0x60), width 8 */ /* +--------+ @@ -2458,18 +2458,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x06000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x06000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 780: character a (0x61), width 8 */ /* +--------+ @@ -2486,18 +2486,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 792: character b (0x62), width 8 */ /* +--------+ @@ -2514,18 +2514,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 804: character c (0x63), width 8 */ /* +--------+ @@ -2542,18 +2542,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x40000000, -0x40000000, -0x40000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 816: character d (0x64), width 8 */ /* +--------+ @@ -2570,18 +2570,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x02000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x02000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 828: character e (0x65), width 8 */ /* +--------+ @@ -2598,18 +2598,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 840: character f (0x66), width 8 */ /* +--------+ @@ -2626,18 +2626,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x0c000000, -0x10000000, -0x10000000, -0x10000000, -0x54000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x0c000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 852: character g (0x67), width 8 */ /* +--------+ @@ -2654,18 +2654,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 864: character h (0x68), width 8 */ /* +--------+ @@ -2682,18 +2682,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 876: character i (0x69), width 8 */ /* +--------+ @@ -2710,18 +2710,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 888: character j (0x6a), width 8 */ /* +--------+ @@ -2738,18 +2738,18 @@ static u_int32_t _radon_content[] = { | * | | ** | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x30000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x30000000, /* 900: character k (0x6b), width 8 */ /* +--------+ @@ -2766,18 +2766,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x40000000, -0x40000000, -0x42000000, -0x42000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x40000000, + 0x40000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 912: character l (0x6c), width 8 */ /* +--------+ @@ -2794,18 +2794,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 924: character m (0x6d), width 8 */ /* +--------+ @@ -2822,18 +2822,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x00000000, + 0x00000000, /* 936: character n (0x6e), width 8 */ /* +--------+ @@ -2850,18 +2850,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 948: character o (0x6f), width 8 */ /* +--------+ @@ -2878,18 +2878,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 960: character p (0x70), width 8 */ /* +--------+ @@ -2906,18 +2906,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x40000000, /* 972: character q (0x71), width 8 */ /* +--------+ @@ -2934,18 +2934,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x02000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x02000000, /* 984: character r (0x72), width 8 */ /* +--------+ @@ -2962,18 +2962,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x0c000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0c000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 996: character s (0x73), width 8 */ /* +--------+ @@ -2990,18 +2990,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3e000000, -0x40000000, -0x3c000000, -0x02000000, -0x02000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3e000000, + 0x40000000, + 0x3c000000, + 0x02000000, + 0x02000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1008: character t (0x74), width 8 */ /* +--------+ @@ -3018,18 +3018,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x54000000, -0x10000000, -0x10000000, -0x10000000, -0x0c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x0c000000, + 0x00000000, + 0x00000000, /* 1020: character u (0x75), width 8 */ /* +--------+ @@ -3046,18 +3046,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1032: character v (0x76), width 8 */ /* +--------+ @@ -3074,18 +3074,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x44000000, -0x48000000, -0x50000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x44000000, + 0x48000000, + 0x50000000, + 0x00000000, + 0x00000000, /* 1044: character w (0x77), width 8 */ /* +--------+ @@ -3102,18 +3102,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x92000000, -0x92000000, -0x92000000, -0x92000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x92000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1056: character x (0x78), width 8 */ /* +--------+ @@ -3130,18 +3130,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 1068: character y (0x79), width 8 */ /* +--------+ @@ -3158,18 +3158,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 1080: character z (0x7a), width 8 */ /* +--------+ @@ -3186,18 +3186,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x02000000, -0x0c000000, -0x30000000, -0x40000000, -0x3e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x02000000, + 0x0c000000, + 0x30000000, + 0x40000000, + 0x3e000000, + 0x00000000, + 0x00000000, /* 1092: character { (0x7b), width 8 */ /* +--------+ @@ -3214,18 +3214,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0x40000000, -0x20000000, -0x20000000, -0x20000000, -0x1c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x40000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0x1c000000, + 0x00000000, + 0x00000000, /* 1104: character | (0x7c), width 8 */ /* +--------+ @@ -3242,18 +3242,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1116: character } (0x7d), width 8 */ /* +--------+ @@ -3270,18 +3270,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x38000000, -0x04000000, -0x04000000, -0x04000000, -0x02000000, -0x04000000, -0x04000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x02000000, + 0x04000000, + 0x04000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, /* 1128: character ~ (0x7e), width 8 */ /* +--------+ @@ -3298,18 +3298,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x04000000, -0x38000000, -0x40000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x04000000, + 0x38000000, + 0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1140: character (0xa0), width 8 */ /* +--------+ @@ -3326,18 +3326,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1152: character ¡ (0xa1), width 8 */ /* +--------+ @@ -3354,18 +3354,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1164: character ¢ (0xa2), width 8 */ /* +--------+ @@ -3382,18 +3382,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x08000000, -0x3e000000, -0x40000000, -0x48000000, -0x48000000, -0x40000000, -0x3e000000, -0x08000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x3e000000, + 0x40000000, + 0x48000000, + 0x48000000, + 0x40000000, + 0x3e000000, + 0x08000000, + 0x00000000, + 0x00000000, /* 1176: character £ (0xa3), width 8 */ /* +--------+ @@ -3410,18 +3410,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x1c000000, -0x20000000, -0x20000000, -0x20000000, -0xa8000000, -0x20000000, -0x20000000, -0x42000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x1c000000, + 0x20000000, + 0x20000000, + 0x20000000, + 0xa8000000, + 0x20000000, + 0x20000000, + 0x42000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1188: character ¤ (0xa4), width 8 */ /* +--------+ @@ -3438,18 +3438,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x82000000, -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x82000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x82000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x82000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1200: character ¥ (0xa5), width 8 */ /* +--------+ @@ -3466,18 +3466,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x54000000, -0x10000000, -0x54000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x54000000, + 0x10000000, + 0x54000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1212: character ¦ (0xa6), width 8 */ /* +--------+ @@ -3494,18 +3494,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1224: character § (0xa7), width 8 */ /* +--------+ @@ -3522,18 +3522,18 @@ static u_int32_t _radon_content[] = { | *** | | | +--------+ */ -0x00000000, -0x38000000, -0x40000000, -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x04000000, -0x38000000, -0x00000000, + 0x00000000, + 0x38000000, + 0x40000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x00000000, /* 1236: character ¨ (0xa8), width 8 */ /* +--------+ @@ -3550,18 +3550,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1248: character © (0xa9), width 8 */ /* +--------+ @@ -3578,18 +3578,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x9a000000, -0xa2000000, -0xa2000000, -0xa2000000, -0x9a000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x9a000000, + 0xa2000000, + 0xa2000000, + 0xa2000000, + 0x9a000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1260: character ª (0xaa), width 8 */ /* +--------+ @@ -3606,18 +3606,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x34000000, -0x44000000, -0x38000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x34000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1272: character « (0xab), width 8 */ /* +--------+ @@ -3634,18 +3634,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x24000000, -0x48000000, -0x00000000, -0x48000000, -0x24000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x24000000, + 0x48000000, + 0x00000000, + 0x48000000, + 0x24000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1284: character ¬ (0xac), width 8 */ /* +--------+ @@ -3662,18 +3662,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0xfc000000, -0x02000000, -0x02000000, -0x02000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0xfc000000, + 0x02000000, + 0x02000000, + 0x02000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1296: character (0xad), width 8 */ /* +--------+ @@ -3690,18 +3690,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1308: character ® (0xae), width 8 */ /* +--------+ @@ -3718,18 +3718,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7c000000, -0x82000000, -0x92000000, -0xaa000000, -0xb2000000, -0xaa000000, -0xaa000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x92000000, + 0xaa000000, + 0xb2000000, + 0xaa000000, + 0xaa000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1320: character ¯ (0xaf), width 8 */ /* +--------+ @@ -3746,18 +3746,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1332: character ° (0xb0), width 8 */ /* +--------+ @@ -3774,18 +3774,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x44000000, -0x44000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1344: character ± (0xb1), width 8 */ /* +--------+ @@ -3802,18 +3802,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x10000000, -0x10000000, -0xd6000000, -0x10000000, -0x10000000, -0x00000000, -0xfe000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0xd6000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1356: character ² (0xb2), width 8 */ /* +--------+ @@ -3830,18 +3830,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x18000000, -0x20000000, -0x3c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x18000000, + 0x20000000, + 0x3c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1368: character ³ (0xb3), width 8 */ /* +--------+ @@ -3858,18 +3858,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x04000000, -0x38000000, -0x04000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x04000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1380: character ´ (0xb4), width 8 */ /* +--------+ @@ -3886,18 +3886,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x18000000, -0x20000000, -0x20000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x18000000, + 0x20000000, + 0x20000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1392: character µ (0xb5), width 8 */ /* +--------+ @@ -3914,18 +3914,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x44000000, -0x58000000, -0x40000000, -0x40000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x44000000, + 0x58000000, + 0x40000000, + 0x40000000, /* 1404: character ¶ (0xb6), width 8 */ /* +--------+ @@ -3942,18 +3942,18 @@ static u_int32_t _radon_content[] = { | * * | | | +--------+ */ -0x00000000, -0x79000000, -0xfa000000, -0xfa000000, -0xfa000000, -0x7a000000, -0x02000000, -0x0a000000, -0x0a000000, -0x0a000000, -0x0a000000, -0x00000000, + 0x00000000, + 0x79000000, + 0xfa000000, + 0xfa000000, + 0xfa000000, + 0x7a000000, + 0x02000000, + 0x0a000000, + 0x0a000000, + 0x0a000000, + 0x0a000000, + 0x00000000, /* 1416: character · (0xb7), width 8 */ /* +--------+ @@ -3970,18 +3970,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x10000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1428: character ¸ (0xb8), width 8 */ /* +--------+ @@ -3998,18 +3998,18 @@ static u_int32_t _radon_content[] = { | * | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x08000000, -0x10000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x08000000, + 0x10000000, + 0x00000000, /* 1440: character ¹ (0xb9), width 8 */ /* +--------+ @@ -4026,18 +4026,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x18000000, -0x08000000, -0x08000000, -0x08000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x08000000, + 0x18000000, + 0x08000000, + 0x08000000, + 0x08000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1452: character º (0xba), width 8 */ /* +--------+ @@ -4054,18 +4054,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x44000000, -0x38000000, -0x00000000, -0x7c000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x44000000, + 0x38000000, + 0x00000000, + 0x7c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1464: character » (0xbb), width 8 */ /* +--------+ @@ -4082,18 +4082,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x48000000, -0x24000000, -0x00000000, -0x24000000, -0x48000000, -0x00000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x48000000, + 0x24000000, + 0x00000000, + 0x24000000, + 0x48000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1476: character ¼ (0xbc), width 8 */ /* +--------+ @@ -4110,18 +4110,18 @@ static u_int32_t _radon_content[] = { | *| | *| +--------+ */ -0x20000000, -0xa2000000, -0x22000000, -0x22000000, -0x24000000, -0x08000000, -0x10000000, -0x29000000, -0x49000000, -0x85000000, -0x01000000, -0x01000000, + 0x20000000, + 0xa2000000, + 0x22000000, + 0x22000000, + 0x24000000, + 0x08000000, + 0x10000000, + 0x29000000, + 0x49000000, + 0x85000000, + 0x01000000, + 0x01000000, /* 1488: character ½ (0xbd), width 8 */ /* +--------+ @@ -4138,18 +4138,18 @@ static u_int32_t _radon_content[] = { | * | | ****| +--------+ */ -0x20000000, -0xa2000000, -0x22000000, -0x22000000, -0x24000000, -0x08000000, -0x10000000, -0x2e000000, -0x41000000, -0x86000000, -0x08000000, -0x0f000000, + 0x20000000, + 0xa2000000, + 0x22000000, + 0x22000000, + 0x24000000, + 0x08000000, + 0x10000000, + 0x2e000000, + 0x41000000, + 0x86000000, + 0x08000000, + 0x0f000000, /* 1500: character ¾ (0xbe), width 8 */ /* +--------+ @@ -4166,18 +4166,18 @@ static u_int32_t _radon_content[] = { | *| | *| +--------+ */ -0xe0000000, -0x12000000, -0xe2000000, -0x12000000, -0xe4000000, -0x08000000, -0x10000000, -0x29000000, -0x49000000, -0x85000000, -0x01000000, -0x01000000, + 0xe0000000, + 0x12000000, + 0xe2000000, + 0x12000000, + 0xe4000000, + 0x08000000, + 0x10000000, + 0x29000000, + 0x49000000, + 0x85000000, + 0x01000000, + 0x01000000, /* 1512: character ¿ (0xbf), width 8 */ /* +--------+ @@ -4194,18 +4194,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x08000000, -0x00000000, -0x08000000, -0x08000000, -0x70000000, -0x80000000, -0x80000000, -0x80000000, -0x7e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x08000000, + 0x00000000, + 0x08000000, + 0x08000000, + 0x70000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x7e000000, + 0x00000000, + 0x00000000, /* 1524: character À (0xc0), width 8 */ /* +--------+ @@ -4222,18 +4222,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1536: character Á (0xc1), width 8 */ /* +--------+ @@ -4250,18 +4250,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1548: character  (0xc2), width 8 */ /* +--------+ @@ -4278,18 +4278,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1560: character à (0xc3), width 8 */ /* +--------+ @@ -4306,18 +4306,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1572: character Ä (0xc4), width 8 */ /* +--------+ @@ -4334,18 +4334,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1584: character Å (0xc5), width 8 */ /* +--------+ @@ -4362,18 +4362,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x38000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0xba000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x38000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xba000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1596: character Æ (0xc6), width 8 */ /* +--------+ @@ -4390,18 +4390,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x77000000, -0x88000000, -0x88000000, -0x88000000, -0x8b000000, -0xa8000000, -0x88000000, -0x88000000, -0x8b000000, -0x00000000, -0x00000000, + 0x00000000, + 0x77000000, + 0x88000000, + 0x88000000, + 0x88000000, + 0x8b000000, + 0xa8000000, + 0x88000000, + 0x88000000, + 0x8b000000, + 0x00000000, + 0x00000000, /* 1608: character Ç (0xc7), width 8 */ /* +--------+ @@ -4418,18 +4418,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x80000000, -0x6c000000, -0x10000000, -0x20000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x80000000, + 0x6c000000, + 0x10000000, + 0x20000000, /* 1620: character È (0xc8), width 8 */ /* +--------+ @@ -4446,18 +4446,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1632: character É (0xc9), width 8 */ /* +--------+ @@ -4474,18 +4474,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1644: character Ê (0xca), width 8 */ /* +--------+ @@ -4502,18 +4502,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1656: character Ë (0xcb), width 8 */ /* +--------+ @@ -4530,18 +4530,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x80000000, -0x80000000, -0xb8000000, -0x80000000, -0x80000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x80000000, + 0x80000000, + 0xb8000000, + 0x80000000, + 0x80000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1668: character Ì (0xcc), width 8 */ /* +--------+ @@ -4558,18 +4558,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1680: character Í (0xcd), width 8 */ /* +--------+ @@ -4586,18 +4586,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1692: character Î (0xce), width 8 */ /* +--------+ @@ -4614,18 +4614,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1704: character Ï (0xcf), width 8 */ /* +--------+ @@ -4642,18 +4642,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1716: character Ð (0xd0), width 8 */ /* +--------+ @@ -4670,18 +4670,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xb2000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xb2000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1728: character Ñ (0xd1), width 8 */ /* +--------+ @@ -4698,18 +4698,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x00000000, + 0x00000000, /* 1740: character Ò (0xd2), width 8 */ /* +--------+ @@ -4726,18 +4726,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1752: character Ó (0xd3), width 8 */ /* +--------+ @@ -4754,18 +4754,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1764: character Ô (0xd4), width 8 */ /* +--------+ @@ -4782,18 +4782,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1776: character Õ (0xd5), width 8 */ /* +--------+ @@ -4810,18 +4810,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1788: character Ö (0xd6), width 8 */ /* +--------+ @@ -4838,18 +4838,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x7c000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x7c000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1800: character × (0xd7), width 8 */ /* +--------+ @@ -4866,18 +4866,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x44000000, -0x28000000, -0x00000000, -0x28000000, -0x44000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x44000000, + 0x28000000, + 0x00000000, + 0x28000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 1812: character Ø (0xd8), width 8 */ /* +--------+ @@ -4894,18 +4894,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x7a000000, -0x84000000, -0x82000000, -0x8a000000, -0x92000000, -0xa2000000, -0x82000000, -0x42000000, -0xbc000000, -0x00000000, -0x00000000, + 0x00000000, + 0x7a000000, + 0x84000000, + 0x82000000, + 0x8a000000, + 0x92000000, + 0xa2000000, + 0x82000000, + 0x42000000, + 0xbc000000, + 0x00000000, + 0x00000000, /* 1824: character Ù (0xd9), width 8 */ /* +--------+ @@ -4922,18 +4922,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1836: character Ú (0xda), width 8 */ /* +--------+ @@ -4950,18 +4950,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1848: character Û (0xdb), width 8 */ /* +--------+ @@ -4978,18 +4978,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1860: character Ü (0xdc), width 8 */ /* +--------+ @@ -5006,18 +5006,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x00000000, /* 1872: character Ý (0xdd), width 8 */ /* +--------+ @@ -5034,18 +5034,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0xb2000000, -0x82000000, -0x82000000, -0x82000000, -0x7c000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0xb2000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0x7c000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 1884: character Þ (0xde), width 8 */ /* +--------+ @@ -5062,18 +5062,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0xbc000000, -0x82000000, -0x82000000, -0x82000000, -0xbc000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0xbc000000, + 0x82000000, + 0x82000000, + 0x82000000, + 0xbc000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, /* 1896: character ß (0xdf), width 8 */ /* +--------+ @@ -5090,18 +5090,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x5c000000, -0x42000000, -0x42000000, -0x42000000, -0x9c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x9c000000, + 0x00000000, + 0x00000000, /* 1908: character à (0xe0), width 8 */ /* +--------+ @@ -5118,18 +5118,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1920: character á (0xe1), width 8 */ /* +--------+ @@ -5146,18 +5146,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1932: character â (0xe2), width 8 */ /* +--------+ @@ -5174,18 +5174,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1944: character ã (0xe3), width 8 */ /* +--------+ @@ -5202,18 +5202,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1956: character ä (0xe4), width 8 */ /* +--------+ @@ -5230,18 +5230,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1968: character å (0xe5), width 8 */ /* +--------+ @@ -5258,18 +5258,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x18000000, -0x24000000, -0x18000000, -0x00000000, -0x3c000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x18000000, + 0x24000000, + 0x18000000, + 0x00000000, + 0x3c000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 1980: character æ (0xe6), width 8 */ /* +--------+ @@ -5286,18 +5286,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x6c000000, -0x12000000, -0x52000000, -0x94000000, -0x90000000, -0x6e000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x6c000000, + 0x12000000, + 0x52000000, + 0x94000000, + 0x90000000, + 0x6e000000, + 0x00000000, + 0x00000000, /* 1992: character ç (0xe7), width 8 */ /* +--------+ @@ -5314,18 +5314,18 @@ static u_int32_t _radon_content[] = { | * | | * | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x40000000, -0x40000000, -0x40000000, -0x40000000, -0x34000000, -0x08000000, -0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x40000000, + 0x34000000, + 0x08000000, + 0x10000000, /* 2004: character è (0xe8), width 8 */ /* +--------+ @@ -5342,18 +5342,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2016: character é (0xe9), width 8 */ /* +--------+ @@ -5370,18 +5370,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2028: character ê (0xea), width 8 */ /* +--------+ @@ -5398,18 +5398,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2040: character ë (0xeb), width 8 */ /* +--------+ @@ -5426,18 +5426,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x5c000000, -0x40000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x5c000000, + 0x40000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2052: character ì (0xec), width 8 */ /* +--------+ @@ -5454,18 +5454,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2064: character í (0xed), width 8 */ /* +--------+ @@ -5482,18 +5482,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2076: character î (0xee), width 8 */ /* +--------+ @@ -5510,18 +5510,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2088: character ï (0xef), width 8 */ /* +--------+ @@ -5538,18 +5538,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x10000000, -0x00000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x10000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, /* 2100: character ð (0xf0), width 8 */ /* +--------+ @@ -5566,18 +5566,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x14000000, -0x08000000, -0x14000000, -0x02000000, -0x3a000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x14000000, + 0x08000000, + 0x14000000, + 0x02000000, + 0x3a000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2112: character ñ (0xf1), width 8 */ /* +--------+ @@ -5594,18 +5594,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x32000000, -0x4c000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x00000000, -0x00000000, + 0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x00000000, + 0x00000000, /* 2124: character ò (0xf2), width 8 */ /* +--------+ @@ -5622,18 +5622,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2136: character ó (0xf3), width 8 */ /* +--------+ @@ -5650,18 +5650,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2148: character ô (0xf4), width 8 */ /* +--------+ @@ -5678,18 +5678,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2160: character õ (0xf5), width 8 */ /* +--------+ @@ -5706,18 +5706,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x32000000, -0x4c000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x32000000, + 0x4c000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2172: character ö (0xf6), width 8 */ /* +--------+ @@ -5734,18 +5734,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x3c000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3c000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2184: character ÷ (0xf7), width 8 */ /* +--------+ @@ -5762,18 +5762,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x38000000, -0x00000000, -0xfe000000, -0x00000000, -0x38000000, -0x00000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x38000000, + 0x00000000, + 0xfe000000, + 0x00000000, + 0x38000000, + 0x00000000, + 0x00000000, + 0x00000000, /* 2196: character ø (0xf8), width 8 */ /* +--------+ @@ -5790,18 +5790,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x00000000, -0x00000000, -0x00000000, -0x3a000000, -0x44000000, -0x4a000000, -0x52000000, -0x22000000, -0x5c000000, -0x00000000, -0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x3a000000, + 0x44000000, + 0x4a000000, + 0x52000000, + 0x22000000, + 0x5c000000, + 0x00000000, + 0x00000000, /* 2208: character ù (0xf9), width 8 */ /* +--------+ @@ -5818,18 +5818,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x20000000, -0x18000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x20000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2220: character ú (0xfa), width 8 */ /* +--------+ @@ -5846,18 +5846,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x08000000, -0x30000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x08000000, + 0x30000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2232: character û (0xfb), width 8 */ /* +--------+ @@ -5874,18 +5874,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x38000000, -0x44000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x38000000, + 0x44000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2244: character ü (0xfc), width 8 */ /* +--------+ @@ -5902,18 +5902,18 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x6c000000, -0x00000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3c000000, -0x00000000, -0x00000000, + 0x6c000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3c000000, + 0x00000000, + 0x00000000, /* 2256: character ý (0xfd), width 8 */ /* +--------+ @@ -5930,18 +5930,18 @@ static u_int32_t _radon_content[] = { | * | | **** | +--------+ */ -0x04000000, -0x18000000, -0x00000000, -0x00000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x42000000, -0x3a000000, -0x02000000, -0x3c000000, + 0x04000000, + 0x18000000, + 0x00000000, + 0x00000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x42000000, + 0x3a000000, + 0x02000000, + 0x3c000000, /* 2268: character þ (0xfe), width 8 */ /* +--------+ @@ -5958,27 +5958,27 @@ static u_int32_t _radon_content[] = { | | | | +--------+ */ -0x00000000, -0x80000000, -0x80000000, -0x9c000000, -0xa2000000, -0x82000000, -0xa2000000, -0x9c000000, -0x80000000, -0x80000000, -0x00000000, -0x00000000, + 0x00000000, + 0x80000000, + 0x80000000, + 0x9c000000, + 0xa2000000, + 0x82000000, + 0xa2000000, + 0x9c000000, + 0x80000000, + 0x80000000, + 0x00000000, + 0x00000000, }; /* Exported structure definition. */ const PSplashFont radeon_font = { - "radon", - 12, - 0xff, - _radon_offset, - _radon_index, - _radon_content, + "radon", + 12, + 0xff, + _radon_offset, + _radon_index, + _radon_content, }; -- 2.17.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: Build failure when adding meta-cgl
I haven't tested with the distro config in a while. Its highly likely its a bit crusty. I will gladly take any patches or take a look at it when we I get back from break.
On Fri, Dec 24, 2021 at 4:05 PM <gkarasin@...> wrote: Hi, --
Jeremy Puhlman Montavista Software, LLC.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Build failure when adding meta-cgl
gkarasin@...
Hi,
I recently cloned yocto project and followed the guide(https://git.yoctoproject.org/meta-cgl/about/) to build a cgl image. But when running any bitbake command I got: gabi@ubuntu-lp:~/yocto/cgl$ bitbake-layers show-recipes "*-image-*" From what I see poky-lsb was replaced by poky-altcfg in:
Results in failing the first line in poky-cgl.conf: meta-cgl/meta-cgl-common/conf/distro/poky-cgl.conf:1:require conf/distro/poky-lsb.conf After changing it to "require conf/distro/poky-altcfg.conf" bitbake seems to run fine. Haven't found any fix or bug on it, is it a known issue or maybe I missed something? Thanks, Gabi
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: [meta-tensorflow][PATCH 3/3] tensorflow-lite: add recipe
Thanks Stephan.
toggle quoted messageShow quoted text
Hongxu, did you miss this? ../Randy
On 2021-12-21 3:42 a.m., Julien STEPHAN wrote:
Adding 2.6.1 tensorflow-lite recipe. --
# Randy MacLeod # Wind River Linux
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[ANNOUNCEMENT] Milestone 1 for Yocto Project 3.5 (yocto-3.5_M1) now available
Lee Chee Yang
Hello,
We are pleased to announce the first milestone release for Yocto Project 3.5 (yocto-3.5_M1) is now available for download.
Download:
http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.5_M1
bitbake: 1ecc1d9424877df89fcda2f23c306998998a65ff meta-arm: d446f7f80bf61e9cf05843e8ef4bc5473f936118 meta-gplv2: f04e4369bf9dd3385165281b9fa2ed1043b0e400 meta-intel: aa8482af7b286f8fe8f7aae648938d4ebf0283c5 meta-mingw: 992fb40bdbfe9fe60f815aac46e04c58963918b5 oecore: 1a6c2a7345199d77ad5aeac8ad337ed80a8aa39b poky: 65c94ca3196e5ef3344a469fea8e30444f2e967a Full Test Report: http://downloads.yoctoproject.org/releases/yocto/milestones/yocto-3.5_M1/testreport.txt
Thank you. Lee, Chee Yang chee.yang.lee@... Yocto Project Build and Release
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[auto-upgrade-helper][PATCH] bitbake: consider both stdout and stderr when checking or logging output
Alexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@...>
--- modules/buildhistory.py | 2 +- modules/steps.py | 4 ++-- modules/testimage.py | 4 ++-- modules/utils/bitbake.py | 2 +- upgrade-helper.py | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/buildhistory.py b/modules/buildhistory.py index 6649023..e0f7191 100644 --- a/modules/buildhistory.py +++ b/modules/buildhistory.py @@ -43,7 +43,7 @@ class BuildHistory(object): try: self.bb.complete(self.pn, machine) except Error as e: - for line in e.stdout.split("\n"): + for line in e.stdout.split("\n") + e.stderr.split("\n"): # version going backwards is not a real error if re.match(".* went backwards which would break package feeds .*", line): break diff --git a/modules/steps.py b/modules/steps.py index 811b88d..bde72db 100644 --- a/modules/steps.py +++ b/modules/steps.py @@ -107,8 +107,8 @@ def _compile(bb, pkg, machine, workdir): bb.complete(pkg, machine) except Error as e: with open("{}/bitbake-output-{}.txt".format(workdir, machine), 'w') as f: - f.write(e.stdout) - for line in e.stdout.split("\n"): + f.write(e.stdout + e.stderr) + for line in e.stdout.split("\n") + e.stderr.split("\n"): # version going backwards is not a real error if re.match(".* went backwards which would break package feeds .*", line): break diff --git a/modules/testimage.py b/modules/testimage.py index 4272c84..0fc1adb 100644 --- a/modules/testimage.py +++ b/modules/testimage.py @@ -85,14 +85,14 @@ class TestImage(): bitbake_create_output = self.bb.complete(image, machine) except Error as e: I( " building the testimage failed! Collecting logs...") - bitbake_create_output = e.stdout + bitbake_create_output = e.stdout + e.stderr else: I( " running %s/testimage for %s ..." % (image, machine)) try: bitbake_run_output = self.bb.complete("%s -c testimage" % image, machine) except Error as e: I( " running the testimage failed! Collecting logs...") - bitbake_run_output = e.stdout + bitbake_run_output = e.stdout + e.stderr if bitbake_create_output: with open(os.path.join(self.logdir, "bitbake-create-testimage.log"), 'w') as f: diff --git a/modules/utils/bitbake.py b/modules/utils/bitbake.py index 4835ca6..a5fc6fa 100644 --- a/modules/utils/bitbake.py +++ b/modules/utils/bitbake.py @@ -73,7 +73,7 @@ class Bitbake(object): if self.log_dir is not None and os.path.exists(self.log_dir): with open(os.path.join(self.log_dir, BITBAKE_ERROR_LOG), "a+") as log: - log.write(e.stdout) + log.write(e.stdout + e.stderr) raise Error("\'" + cmd + "\' failed", e.stdout, e.stderr) diff --git a/upgrade-helper.py b/upgrade-helper.py index eb3935e..ecdabb0 100755 --- a/upgrade-helper.py +++ b/upgrade-helper.py @@ -153,7 +153,7 @@ class Updater(object): except EmptyEnvError as e: import traceback E( " %s\n%s" % (e.message, traceback.format_exc())) - E( " Bitbake output:\n%s" % (e.stdout)) + E( " Bitbake output:\n%s" % (e.stdout + e.stderr)) exit(1) self._set_options() @@ -459,7 +459,7 @@ class Updater(object): E(" Can't build gcc-runtime for %s." % machine) if isinstance(e, Error): - E(e.stdout) + E(e.stdout + e.stderr) else: import traceback traceback.print_exc(file=sys.stdout) -- 2.33.1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Re: meta-virtualization/docker/containerd issue seen
Monsees, Steven C (US)
Nevermind…
I forgot if you have added the docker-ce recipe to the build then it does spawn the docker daemon automatically, even if it’s sysvinit…
Thanks anyway, and Happy Holidays…
From: yocto@... <yocto@...>
On Behalf Of Monsees, Steven C (US) via lists.yoctoproject.org
Sent: Thursday, December 23, 2021 1:27 PM To: yocto@... Subject: [yocto] meta-virtualization/docker/containerd issue seen
I am trying to build in basic docker functionality for container support…
I am zeus based, and am building docker and docker-ce-contrib.
When I
manually start the
Any ideas as ti why I am getting this error or how I might resolve it ? (see bottom)
Thanks, Steve
Initialization complete. Sending init complete message Running indefinitely
root@sbca-default which docker /usr/bin/docker root@sbca-default docker --version Docker version 19.03.2-ce, build 6a30dfc root@sbca-default docker info Client: Debug Mode: false
Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 19.03.2-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: fd103cb716352c7e19768e4fed057f71d68902a0.m runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f-dirty init version: fec3683-dirty (expected: fec3683b971d9) Kernel Version: 4.19.135-intel-pk-standard OSType: linux Architecture: x86_64 CPUs: 8 Total Memory: 15.51GiB Name: sbca-default ID: YFQW:EPJT:TSJU:C64F:NU57:RAJL:X5IC:J5IT:MRTP:SIGS:RI25:KUFQ Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: localhost:5000 127.0.0.0/8 Registry Mirrors: Live Restore Enabled: false
root@sbca-default /usr/share/docker/check-config.sh info: reading kernel config from /proc/config.gz ...
Generally Necessary: - cgroup hierarchy: properly mounted [/sys/fs/cgroup] - CONFIG_NAMESPACES: enabled - CONFIG_NET_NS: enabled - CONFIG_PID_NS: enabled - CONFIG_IPC_NS: enabled - CONFIG_UTS_NS: enabled - CONFIG_CGROUPS: enabled - CONFIG_CGROUP_CPUACCT: enabled - CONFIG_CGROUP_DEVICE: enabled - CONFIG_CGROUP_FREEZER: enabled - CONFIG_CGROUP_SCHED: enabled - CONFIG_CPUSETS: enabled - CONFIG_MEMCG: enabled - CONFIG_KEYS: enabled - CONFIG_VETH: enabled - CONFIG_BRIDGE: enabled (as module) - CONFIG_BRIDGE_NETFILTER: enabled (as module) - CONFIG_NF_NAT_IPV4: enabled (as module) - CONFIG_IP_NF_FILTER: enabled (as module) - CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module) - CONFIG_IP_NF_NAT: enabled (as module) - CONFIG_NF_NAT: enabled (as module) - CONFIG_NF_NAT_NEEDED: enabled - CONFIG_POSIX_MQUEUE: enabled
Optional Features: - CONFIG_USER_NS: enabled - CONFIG_SECCOMP: enabled - CONFIG_CGROUP_PIDS: enabled - CONFIG_MEMCG_SWAP: enabled - CONFIG_MEMCG_SWAP_ENABLED: enabled (cgroup swap accounting is currently enabled) - CONFIG_LEGACY_VSYSCALL_EMULATE: enabled - CONFIG_BLK_CGROUP: enabled - CONFIG_BLK_DEV_THROTTLING: enabled - CONFIG_IOSCHED_CFQ: enabled - CONFIG_CFQ_GROUP_IOSCHED: enabled - CONFIG_CGROUP_PERF: enabled - CONFIG_CGROUP_HUGETLB: enabled - CONFIG_NET_CLS_CGROUP: enabled - CONFIG_CGROUP_NET_PRIO: enabled - CONFIG_CFS_BANDWIDTH: enabled - CONFIG_FAIR_GROUP_SCHED: enabled - CONFIG_RT_GROUP_SCHED: enabled - CONFIG_IP_NF_TARGET_REDIRECT: enabled (as module) - CONFIG_IP_VS: enabled (as module) - CONFIG_IP_VS_NFCT: enabled - CONFIG_IP_VS_PROTO_TCP: enabled - CONFIG_IP_VS_PROTO_UDP: enabled - CONFIG_IP_VS_RR: enabled (as module) - CONFIG_EXT4_FS: enabled - CONFIG_EXT4_FS_POSIX_ACL: enabled - CONFIG_EXT4_FS_SECURITY: enabled - Network Drivers: - "overlay": - CONFIG_VXLAN: enabled Optional (for encrypted networks): - CONFIG_CRYPTO: enabled - CONFIG_CRYPTO_AEAD: enabled - CONFIG_CRYPTO_GCM: enabled (as module) - CONFIG_CRYPTO_SEQIV: enabled - CONFIG_CRYPTO_GHASH: enabled (as module) - CONFIG_XFRM: enabled - CONFIG_XFRM_USER: enabled (as module) - CONFIG_XFRM_ALGO: enabled - CONFIG_INET_ESP: enabled (as module) - CONFIG_INET_XFRM_MODE_TRANSPORT: enabled - "ipvlan": - CONFIG_IPVLAN: enabled - "macvlan": - CONFIG_MACVLAN: enabled - CONFIG_DUMMY: enabled - "ftp,tftp client in container": - CONFIG_NF_NAT_FTP: enabled (as module) - CONFIG_NF_CONNTRACK_FTP: enabled (as module) - CONFIG_NF_NAT_TFTP: enabled (as module) - CONFIG_NF_CONNTRACK_TFTP: enabled (as module) - Storage Drivers: - "aufs": - CONFIG_AUFS_FS: missing - "btrfs": - CONFIG_BTRFS_FS: enabled - CONFIG_BTRFS_FS_POSIX_ACL: enabled - "devicemapper": - CONFIG_BLK_DEV_DM: enabled - CONFIG_DM_THIN_PROVISIONING: enabled - "overlay": - CONFIG_OVERLAY_FS: enabled - "zfs": - /dev/zfs: missing - zfs command: missing - zpool command: missing
Limits: - /proc/sys/kernel/keys/root_maxkeys: 1000000
root@sbca-default root@sbca-default dockerd --iptables=false & [1] 5887 root@sbca-default INFO[2021-12-23T17:27:10.246973295Z] Starting up INFO[2021-12-23T17:27:10.247572882Z] libcontainerd: containerd is still running pid=893 INFO[2021-12-23T17:27:10.247608835Z] parsed scheme: "unix" module=grpc INFO[2021-12-23T17:27:10.247660984Z] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2021-12-23T17:27:10.247678448Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 <nil>}] } module=grpc INFO[2021-12-23T17:27:10.247686677Z] ClientConn switching balancer to "pick_first" module=grpc INFO[2021-12-23T17:27:10.247731766Z] pickfirstBalancer: HandleSubConnStateChange: 0xc0006f5780, CONNECTING module=grpc failed to start containerd: timeout waiting for containerd to start
[1]+ done(1) dockerd --iptables=false root@sbca-default
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta-virtualization/docker/containerd issue seen
Monsees, Steven C (US)
I am trying to build in basic docker functionality for container support…
I am zeus based, and am building docker and docker-ce-contrib.
When I
manually start the
Any ideas as ti why I am getting this error or how I might resolve it ? (see bottom)
Thanks, Steve
Initialization complete. Sending init complete message Running indefinitely
root@sbca-default which docker /usr/bin/docker root@sbca-default docker --version Docker version 19.03.2-ce, build 6a30dfc root@sbca-default docker info Client: Debug Mode: false
Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 19.03.2-ce Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: fd103cb716352c7e19768e4fed057f71d68902a0.m runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f-dirty init version: fec3683-dirty (expected: fec3683b971d9) Kernel Version: 4.19.135-intel-pk-standard OSType: linux Architecture: x86_64 CPUs: 8 Total Memory: 15.51GiB Name: sbca-default ID: YFQW:EPJT:TSJU:C64F:NU57:RAJL:X5IC:J5IT:MRTP:SIGS:RI25:KUFQ Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: localhost:5000 127.0.0.0/8 Registry Mirrors: Live Restore Enabled: false
root@sbca-default /usr/share/docker/check-config.sh info: reading kernel config from /proc/config.gz ...
Generally Necessary: - cgroup hierarchy: properly mounted [/sys/fs/cgroup] - CONFIG_NAMESPACES: enabled - CONFIG_NET_NS: enabled - CONFIG_PID_NS: enabled - CONFIG_IPC_NS: enabled - CONFIG_UTS_NS: enabled - CONFIG_CGROUPS: enabled - CONFIG_CGROUP_CPUACCT: enabled - CONFIG_CGROUP_DEVICE: enabled - CONFIG_CGROUP_FREEZER: enabled - CONFIG_CGROUP_SCHED: enabled - CONFIG_CPUSETS: enabled - CONFIG_MEMCG: enabled - CONFIG_KEYS: enabled - CONFIG_VETH: enabled - CONFIG_BRIDGE: enabled (as module) - CONFIG_BRIDGE_NETFILTER: enabled (as module) - CONFIG_NF_NAT_IPV4: enabled (as module) - CONFIG_IP_NF_FILTER: enabled (as module) - CONFIG_IP_NF_TARGET_MASQUERADE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled (as module) - CONFIG_NETFILTER_XT_MATCH_IPVS: enabled (as module) - CONFIG_IP_NF_NAT: enabled (as module) - CONFIG_NF_NAT: enabled (as module) - CONFIG_NF_NAT_NEEDED: enabled - CONFIG_POSIX_MQUEUE: enabled
Optional Features: - CONFIG_USER_NS: enabled - CONFIG_SECCOMP: enabled - CONFIG_CGROUP_PIDS: enabled - CONFIG_MEMCG_SWAP: enabled - CONFIG_MEMCG_SWAP_ENABLED: enabled (cgroup swap accounting is currently enabled) - CONFIG_LEGACY_VSYSCALL_EMULATE: enabled - CONFIG_BLK_CGROUP: enabled - CONFIG_BLK_DEV_THROTTLING: enabled - CONFIG_IOSCHED_CFQ: enabled - CONFIG_CFQ_GROUP_IOSCHED: enabled - CONFIG_CGROUP_PERF: enabled - CONFIG_CGROUP_HUGETLB: enabled - CONFIG_NET_CLS_CGROUP: enabled - CONFIG_CGROUP_NET_PRIO: enabled - CONFIG_CFS_BANDWIDTH: enabled - CONFIG_FAIR_GROUP_SCHED: enabled - CONFIG_RT_GROUP_SCHED: enabled - CONFIG_IP_NF_TARGET_REDIRECT: enabled (as module) - CONFIG_IP_VS: enabled (as module) - CONFIG_IP_VS_NFCT: enabled - CONFIG_IP_VS_PROTO_TCP: enabled - CONFIG_IP_VS_PROTO_UDP: enabled - CONFIG_IP_VS_RR: enabled (as module) - CONFIG_EXT4_FS: enabled - CONFIG_EXT4_FS_POSIX_ACL: enabled - CONFIG_EXT4_FS_SECURITY: enabled - Network Drivers: - "overlay": - CONFIG_VXLAN: enabled Optional (for encrypted networks): - CONFIG_CRYPTO: enabled - CONFIG_CRYPTO_AEAD: enabled - CONFIG_CRYPTO_GCM: enabled (as module) - CONFIG_CRYPTO_SEQIV: enabled - CONFIG_CRYPTO_GHASH: enabled (as module) - CONFIG_XFRM: enabled - CONFIG_XFRM_USER: enabled (as module) - CONFIG_XFRM_ALGO: enabled - CONFIG_INET_ESP: enabled (as module) - CONFIG_INET_XFRM_MODE_TRANSPORT: enabled - "ipvlan": - CONFIG_IPVLAN: enabled - "macvlan": - CONFIG_MACVLAN: enabled - CONFIG_DUMMY: enabled - "ftp,tftp client in container": - CONFIG_NF_NAT_FTP: enabled (as module) - CONFIG_NF_CONNTRACK_FTP: enabled (as module) - CONFIG_NF_NAT_TFTP: enabled (as module) - CONFIG_NF_CONNTRACK_TFTP: enabled (as module) - Storage Drivers: - "aufs": - CONFIG_AUFS_FS: missing - "btrfs": - CONFIG_BTRFS_FS: enabled - CONFIG_BTRFS_FS_POSIX_ACL: enabled - "devicemapper": - CONFIG_BLK_DEV_DM: enabled - CONFIG_DM_THIN_PROVISIONING: enabled - "overlay": - CONFIG_OVERLAY_FS: enabled - "zfs": - /dev/zfs: missing - zfs command: missing - zpool command: missing
Limits: - /proc/sys/kernel/keys/root_maxkeys: 1000000
root@sbca-default root@sbca-default dockerd --iptables=false & [1] 5887 root@sbca-default INFO[2021-12-23T17:27:10.246973295Z] Starting up INFO[2021-12-23T17:27:10.247572882Z] libcontainerd: containerd is still running pid=893 INFO[2021-12-23T17:27:10.247608835Z] parsed scheme: "unix" module=grpc INFO[2021-12-23T17:27:10.247660984Z] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2021-12-23T17:27:10.247678448Z] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 <nil>}] } module=grpc INFO[2021-12-23T17:27:10.247686677Z] ClientConn switching balancer to "pick_first" module=grpc INFO[2021-12-23T17:27:10.247731766Z] pickfirstBalancer: HandleSubConnStateChange: 0xc0006f5780, CONNECTING module=grpc failed to start containerd: timeout waiting for containerd to start
[1]+ done(1) dockerd --iptables=false root@sbca-default
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|