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 message
Show 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
|
||
|
||
Minutes: Yocto Project Weekly Triage Meeting 12/23/2021
Trevor Gamblin
Wiki: https://wiki.yoctoproject.org/wiki/Bug_Triage Attendees: Randy, Richard, Saul, Stephen, Steve, Trevor ARs: Happy Holidays! Notes:
No triage meeting on December 30th Medium+ 3.5 Unassigned Enhancements/Bugs: 75 (Last week
76) AB Bugs: 70
(Last week 73)
|
||
|
||
Re: Where to define udev to load kernel modules in boot?
Quentin Schulz
Hi JH,
On December 23, 2021 11:28:55 AM GMT+01:00, JH <jupiter.hce@...> wrote: Hi,IIRC, you need to add your package to KERNEL_MODULE_AUTOLOAD, c.f. https://docs.yoctoproject.org/ref-manual/variables.html#term-KERNEL_MODULE_AUTOLOAD Cheers, Quentin Thank you. |
||
|
||
Where to define udev to load kernel modules in boot?
JH
Hi,
I built an OE/Yocto IoT device to include kernel modules of usb_wwan, usbserial, mwifiex_sdio, mwifiex etc, there is one udev from meta-freescale/recipes-core/udev/udev-rules-imx/10-imx.rules # ls /etc/udev/rules.d 10-imx.rules touchscreen.rules My device does not have a touchscreen so that touchscreen.rules should not be there. The 10-imx.rules does not define any kernel modules usb_wwan, usbserial, mwifiex_sdio, mwifiex, the device does not have video or any input # cat /etc/udev/rules.d/10-imx.rules KERNEL=="mc13783_connectiv*", NAME="mc13783_connectivity" # Anyone has readonly permission to IIM device file KERNEL=="mxc_iim", MODE="0444", SYMLINK+="mxc_mem" KERNEL=="mxs_viim", MODE="0444", SYMLINK+="mxc_mem" KERNEL=="mxc_ipu", MODE="0666" KERNEL=="mxc_vpu", MODE="0666" SUBSYSTEM=="video", MODE="0660" KERNEL=="fb[0-9]", MODE="0660", GROUP="video" KERNEL=="gsl_kmod", MODE="0660", GROUP="video" KERNEL=="galcore", MODE="0660", GROUP="video" How can I define udev in recipes to make the system to load kernel modules of usb_wwan, usbserial, mwifiex_sdio, mwifiex in boot? Thank you. Kind regards, - jh |
||
|
||
Re: [meta-raspberrypi][PATCH] xserver-xorg: remove xshmfence configure option
Yu, Mingli
On 12/9/21 1:37 PM, Khem Raj wrote:
**[Please note: This e-mail is from an EXTERNAL e-mail address]First we should keep consistent with the change with openembedded-core(https://git.openembedded.org/openembedded-core/commit/?id=e05abd87ee5d23750c641d0129d9c83db68ee2e8) and also not found any issue related to this option until now. Thanks, [1] |
||
|
||
Docker exec/attach not working on overlayed root
Beek, Léon van de
Hi Bruce,
To be honest, I am not quite sure where to ask this, as it is a very specific scenario, so feel free to forward me and my question to someone/somewhere else.
Situation:
I removed the overlaying again and can confirm that exec and attach also worked before adding this, but on Google I can not find a single thing that closely relates to the issue I am facing.
Hope any of you might be able to help me out here, I feel truly stuck on this.
Kind regards, Léon van de Beek |
||
|