Field' '无法解决

时间:2014-04-22 09:38:31

标签: c kernel

目前我正在尝试在用户空间中编译内核模块。 该模块是

aes_generic.c

到目前为止,我评论了所有内核头文件并开始修复编译错误,如u8不可用 simpyl用uint8_t取而代之 这些错误现在消失了

我目前正在努力解决这个错误     字段''无法解析

此错误出现在各个字段中

这是一个例子:

#define loop8(i)    do { \
loop8tophalf(i); \
t  = ctx->key_enc[8 * i + 4] ^ ls_box(t); \
ctx->key_enc[8 * i + 12] = t;           \
t ^= ctx->key_enc[8 * i + 5];           \
ctx->key_enc[8 * i + 13] = t;           \
t ^= ctx->key_enc[8 * i + 6];           \
ctx->key_enc[8 * i + 14] = t;           \
t ^= ctx->key_enc[8 * i + 7];           \
ctx->key_enc[8 * i + 15] = t;           \
} while (0)

错误:

Field 'loop8(i)' could not be resolved

更多带有相同错误消息的代码:

int crypto_aes_expand_key(struct crypto_aes_ctx *ctx, const uint8_t *in_key,
    unsigned int key_len)
{
const __le32 *key = (const __le32 *)in_key;
uint32_t i, t, u, v, w, j;

if (key_len != AES_KEYSIZE_128 && key_len != AES_KEYSIZE_192 &&
        key_len != AES_KEYSIZE_256)
    return -EINVAL;

ctx->key_length = key_len;

ctx->key_dec[key_len + 24] = ctx->key_enc[0] = le32_to_cpu(key[0]);
ctx->key_dec[key_len + 25] = ctx->key_enc[1] = le32_to_cpu(key[1]);
ctx->key_dec[key_len + 26] = ctx->key_enc[2] = le32_to_cpu(key[2]);
ctx->key_dec[key_len + 27] = ctx->key_enc[3] = le32_to_cpu(key[3]);

switch (key_len) {
case AES_KEYSIZE_128:
    t = ctx->key_enc[3];
    for (i = 0; i < 10; ++i)
        loop4(i);
    break;

case AES_KEYSIZE_192:
    ctx->key_enc[4] = le32_to_cpu(key[4]);
    t = ctx->key_enc[5] = le32_to_cpu(key[5]);
    for (i = 0; i < 8; ++i)
        loop6(i);
    break;

case AES_KEYSIZE_256:
    ctx->key_enc[4] = le32_to_cpu(key[4]);
    ctx->key_enc[5] = le32_to_cpu(key[5]);
    ctx->key_enc[6] = le32_to_cpu(key[6]);
    t = ctx->key_enc[7] = le32_to_cpu(key[7]);
    for (i = 0; i < 6; ++i)
        loop8(i);
    loop8tophalf(i);
    break;
}

ctx->key_dec[0] = ctx->key_enc[key_len + 24];
ctx->key_dec[1] = ctx->key_enc[key_len + 25];
ctx->key_dec[2] = ctx->key_enc[key_len + 26];
ctx->key_dec[3] = ctx->key_enc[key_len + 27];

for (i = 4; i < key_len + 24; ++i) {
    j = key_len + 24 - (i & ~3) + (i & 3);
    imix_col(ctx->key_dec[j], ctx->key_enc[i]);
}
return 0;
} 

编辑:通过手动编辑aes.h并将其包含在用户空间文件中来修复这些错误 谢谢你的帮助

0 个答案:

没有答案