LINUX.ORG.RU

Непонятная ошибка при компиляции модуля ядра


0

0

Помогите разобраться с проблемой при компиляции модуля ядра!

Дистрибутив Debian.

$gcc --version
gcc (GCC) 4.1.2 20061028 (prerelease) (Debian 4.1.1-19)

$uname -a
Linux idle 2.6.18-3-686 #1 SMP Mon Dec 4 16:41:14 UTC 2006 i686 GNU/Linux

При использовании имени битового поля CS - в объединении -

// ID ROM Auxiliary Register structure
typedef union _DEV_IDROM {
   u32 AsWhole;   // Board Mode Register as a Whole Word
   struct {       // Mode Register as Bit Pattern
   ULONG DI  : 1, // Data Input
   WR  : 1,       // Write Flag
   CS  : 1;       // CS EEPROM (Такое имя почему-то недопустимое)
  } ByBits;
} DEV_IDROM;

получаю ошибку и предупреждение компилятора:

error: expected identifier or ‘(’ before numeric constant
warning: no semicolon at end of struct or union

Если переименовать поле скажем в CHS, то все в порядке.

Потому что CS -- числовая константа, о чем и сказал компилер.

include/asm/ptrace.h:#define CS 13

anonymous
()
Ответ на: комментарий от anonymous

Понятно. То есть придется использовать другое имя. Cпасибо.

karak
() автор топика

научитесь наконец пользоваться ctags:

<asm/calling.h>
26: #define CS 136

UrbanSerj
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.