The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"помогите разобраться почему не компилируется"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"помогите разобраться почему не компилируется"  
Сообщение от maestrozi email on 16-Янв-07, 14:37 
программа readts.c:
#include <linux/shed.h>
int main () {
task_t p;
return 0;
}

пытаюсь скомпилировать:
[root@localhost kmem_t]# gcc -o x1 readts.c
In file included from /usr/include/linux/timex.h:186,
from /usr/include/linux/sched.h:10,
from readts.c:1:
/usr/include/linux/time.h:9: error: redefinition of `struct timespec'
/usr/include/linux/time.h:15: error: redefinition of `struct timeval'
In file included from /usr/include/linux/sched.h:11,
from readts.c:1:
/usr/include/linux/jiffies.h:16: error: parse error before "jiffies_64"
/usr/include/linux/jiffies.h:20: error: parse error before "get_jiffies_64"
In file included from /usr/include/linux/cpumask.h:8,
from /usr/include/linux/sched.h:14,
from readts.c:1:
/usr/include/linux/bitmap.h: In function `bitmap_empty':
/usr/include/linux/bitmap.h:15: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h:15: error: (Each undeclared identifier is reported only once
/usr/include/linux/bitmap.h:15: error: for each function it appears in.)
/usr/include/linux/bitmap.h: In function `bitmap_full':
/usr/include/linux/bitmap.h:29: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_equal':
/usr/include/linux/bitmap.h:44: error: `BITS_PER_LONG' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_shift_right':
/usr/include/linux/bitmap.h:85: error: `__shr_tmp' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_shift_left':
/usr/include/linux/bitmap.h:98: error: `__shl_tmp' undeclared (first use in this function)
/usr/include/linux/bitmap.h: In function `bitmap_weight':
/usr/include/linux/bitmap.h:144: error: `BITS_PER_LONG' undeclared (first use in this function)
In file included from /usr/include/linux/sched.h:14,
from readts.c:1:
/usr/include/linux/cpumask.h:10:5: missing binary operator before token "("
/usr/include/linux/cpumask.h:34:5: missing binary operator before token "("
In file included from /usr/include/linux/sched.h:20,
from readts.c:1:
/usr/include/asm/mmu.h: At top level:
/usr/include/asm/mmu.h:13: error: field `sem' has incomplete type
In file included from /usr/include/linux/signal.h:4,
from /usr/include/linux/sched.h:24,
from readts.c:1:
/usr/include/linux/list.h:591:2: warning: #warning "don't include kernel headers in userspace"
In file included from /usr/include/linux/signal.h:6,
from /usr/include/linux/sched.h:24,
from readts.c:1:
/usr/include/asm/signal.h:29: error: conflicting types for `sigset_t'
/usr/include/sys/select.h:38: error: previous declaration of `sigset_t'
In file included from /usr/include/asm/siginfo.h:4,
from /usr/include/linux/signal.h:7,
from /usr/include/linux/sched.h:24,
from readts.c:1:
/usr/include/asm-generic/siginfo.h:70: error: parse error before "clock_t"
/usr/include/asm-generic/siginfo.h:87: error: parse error before '}' token
/usr/include/asm-generic/siginfo.h:88: error: parse error before '}' token
In file included from /usr/include/linux/sched.h:28,
from readts.c:1:
/usr/include/linux/completion.h:15: error: parse error before "wait_queue_head_t"
/usr/include/linux/completion.h: In function `init_completion':
/usr/include/linux/completion.h:26: error: dereferencing pointer to incomplete type
/usr/include/linux/completion.h:27: error: dereferencing pointer to incomplete type
In file included from /usr/include/linux/sched.h:29,
from readts.c:1:
/usr/include/linux/pid.h: At top level:
/usr/include/linux/pid.h:18: error: field `task_list' has incomplete type
/usr/include/linux/pid.h:19: error: field `hash_chain' has incomplete type
/usr/include/linux/pid.h:24: error: field `pid_chain' has incomplete type
In file included from /usr/include/linux/sched.h:30,
from readts.c:1:
/usr/include/linux/percpu.h: In function `__alloc_percpu':
/usr/include/linux/percpu.h:46: error: `GFP_KERNEL' undeclared (first use in this function)
In file included from /usr/include/linux/sched.h:101,
from readts.c:1:
/usr/include/linux/timer.h: At top level:
/usr/include/linux/timer.h:10: error: field `entry' has incomplete type
readts.c: In function `main':
readts.c:3: error: `task_t' undeclared (first use in this function)
readts.c:3: error: parse error before "p"


Вот такие пироги((( что я не так делаю?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "помогите разобраться почему не компилируется"  
Сообщение от Michelnok (ok) on 16-Янв-07, 16:08 

>#include <linux/shed.h>
>Вот такие пироги((( что я не так делаю?

Что-то твоя программа совсем непохожа на модуль ядра, да и компилируешь ты ее не как модуль ядра. А пытаешься зачем-то включить заголовочный файл ядра. Ты уверен в том что делаешь?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "помогите разобраться почему не компилируется"  
Сообщение от maestrozi email on 16-Янв-07, 17:50 
а мне модуль ядра и не нужен.
мне нужно объявление task_struct,конкретно,чтобы прочитать информацию sizeof(task_struct)
если я не хочу писать модуль ядра,то как мне работать со структурами ядра?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "помогите разобраться почему не компилируется"  
Сообщение от Michelnok (ok) on 16-Янв-07, 18:41 
>а мне модуль ядра и не нужен.
>мне нужно объявление task_struct,конкретно,чтобы прочитать информацию sizeof(task_struct)

А с каких пор task_struct стала доступной из user space?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "помогите разобраться почему не компилируется"  
Сообщение от maestrozi email on 16-Янв-07, 18:47 
>>а мне модуль ядра и не нужен.
>>мне нужно объявление task_struct,конкретно,чтобы прочитать информацию sizeof(task_struct)
>
>А с каких пор task_struct стала доступной из user space?

а что посоветуешь? если все-таки надо...не переописывать же вручную...а модуль не надо...
как тогда быть?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "помогите разобраться почему не компилируется"  
Сообщение от Michelnok (ok) on 16-Янв-07, 18:57 
>>А с каких пор task_struct стала доступной из user space?
>
>а что посоветуешь? если все-таки надо...не переописывать же вручную...

Ничего не могу посоветовать, так как трудно даже сказать ЗАЧЕМ task_struct нужна в user space.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "помогите разобраться почему не компилируется"  
Сообщение от maestrozi email on 16-Янв-07, 19:18 
>>>А с каких пор task_struct стала доступной из user space?
>>
>>а что посоветуешь? если все-таки надо...не переописывать же вручную...
>
>Ничего не могу посоветовать, так как трудно даже сказать ЗАЧЕМ task_struct нужна
>в user space.


давай расскажу.мне надо мониторинг структур ядра осуществлять.и я из /dev/kmem хочу забрать task_struct для current и с его помощью найти task_struct для нужного мне(по pid) процесса,чтобы вывести информацию о процессе : открытые файлы,состояние памяти,родители,дети и т.д.
и вот зачем оно мне надо
сейчас скажешь,а зачем? - есть же /proc, но вот надо не из /proc ((

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "помогите разобраться почему не компилируется"  
Сообщение от newser (ok) on 16-Янв-07, 21:20 
>>>>А с каких пор task_struct стала доступной из user space?
>>>
>>>а что посоветуешь? если все-таки надо...не переописывать же вручную...
>>
>>Ничего не могу посоветовать, так как трудно даже сказать ЗАЧЕМ task_struct нужна
>>в user space.
>
>
>давай расскажу.мне надо мониторинг структур ядра осуществлять.и я из /dev/kmem хочу забрать
>task_struct для current и с его помощью найти task_struct для нужного
>мне(по pid) процесса,чтобы вывести информацию о процессе : открытые файлы,состояние памяти,родители,дети
>и т.д.
>и вот зачем оно мне надо
>сейчас скажешь,а зачем? - есть же /proc, но вот надо не из
>/proc ((

ИМХО, у Вас еще нос не дорос заниматься системным программированием, если Вы задаете подобные вопросы.

Учите мат. часть, а потом уже лезьте в структуры ядра.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "помогите разобраться почему не компилируется"  
Сообщение от Michelnok (ok) on 16-Янв-07, 22:01 
>сейчас скажешь,а зачем? - есть же /proc, но вот надо не из /proc ((

Очень странное требование.
Данные ядра могут меняться в произвольные моменты времени относительно выполнения твоей программы (это тем более опасно, когда мы говорим про связанные списки структур), поэтому программа априори должна работать на уровне ядра, чтобы обращаться к этим данным, т.е. быть модулем ядра. Но так как уже есть /proc, то зачем изобретать велосипед?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру