Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

linux kernel'de yeni system call


ucunbiri

Öne çıkan mesajlar

slmlar öncelikle herkese,
operating systems dersi ile ilgili bir projem var ve yeni bir system call yazmam gerekiyor, ben de öncesinde hani nedir ne değildir diye internette mvcut olan örneklerden birisini denedim:

7.1 KERNEL SPACE HEADER
#ifndef __LINUX_MYROUTINE_H
#define __LINUX_MYROUTINE_H
#include
#endif
//store it in linux directory under kernel include directory

7.2 KERNEL SPACE SOURCE
#include
asmlinkage int sys_myroutine(int arg1,int arg2){
return arg1+arg2;
}
//store under fs directory of kernel sourse and change make file under fs to add myroutine.c compiled

7.3 USER SPACE HEADER
#include
_syscall2(int, myroutine, int, arg1, int , arg2)
//store it under linux directory of user space include directory


buraya kadar sorun yok düzgün bir şekilde yazıyorum ve kerneli recompile ediyorum
sırasıyla; make dep,make clean,make bzImage,make modules,make modules_install ve ardından make boot la reboot da ediyorum
ama basit bir programla test etmeye kalktığımda ki program da şu:

7.4 SAMPLE PROGRAM
#include
main(){
int sum;
sum=myroutine(10,10);
printf("%d",sum);
}
//you should get 20 printed


sonuç olarak 20 değil -1 dönüyor, ki internette biraz kurcalayınca bunun entry.S ve hem kernel hem de user level unistd.h dosyalarında tanımlanmadığı için olabileceğini gördüm.

iki tarafta da doğru system call numaralarıyla tanımlılar o numarada 259 yani bunla ilgili bir sorun da olamaz kernel 2.4.20-8 kullanıyorum onun da 265e kadar tanımlı.

sizce bu -1 in sebebi ne olabilir, ne atlıyorum?
Link to comment
Sosyal ağlarda paylaş

strace ile geriye doğru incelemelisin.

http://linux.die.net/man/1/strace

In the simplest case strace runs the specified command until it exits. It intercepts and records the system calls which are called by a process and the signals which are received by a process. The name of each system call, its arguments and its return value are printed on standard error or to the file specified with the -o option.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...