Sponsored Content
Operating Systems Linux How to implement a system call in linux? Post 302377868 by sunnyhay on Saturday 5th of December 2009 02:46:46 PM
Old 12-05-2009
Quote:
Originally Posted by fpmurphy
If you provide us with your source code changes, perhaps we can figure out what you are doing wrong. Adding a new "hello world" type of syscall is a fairly trivial exercise.
Ok.
1 I downloaded 2.6.26 kernel. Fedora 9 is my OS with kernel version 2.6.25;
2. I extract the source into /usr/src/linux-2.6.26;
3. Make a directory "/mysyscall" under the source folder;
4. Add two files in "/mysyscall".
(1) mysyscall.c
#include <linux/kernel.h>
#include <linux/linkage.h>

asmlinkage long mysyscall(int i){
printk(KERN_DEBUG "Hello World with number %d \n", i);
return(1);}
(2) mysyscall.h with only one line
obj-y := mysyscall.o
5. Modify Makefile under the source folder.
just add the new folder in the end of this line
core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
So the change line is
core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ mysyscall/
6. Add an entry for the new syscall by modifying source/arch/x86/kernel/syscall_table_32.S. The new line is
.long sys_mysyscall
7. Add a new #define line in source/include/asm-x86/unistd_32.h with
#define __NR_mysyscall 327
8. I compile the kernel 2.6.26 and get the following error message:
arch/x86/built-in.o: In function `sys_call_table':
(.rodata+0x724): undefined reference to `sys_mysyscall'
make: *** [.tmp_vmlinux1] Error 1


It's all. Please tell me how to implement the syscall successfully. Thank you very much!

Last edited by sunnyhay; 12-06-2009 at 12:01 PM..
 

9 More Discussions You Might Find Interesting

1. Linux

Making Socket System Call From Linux Kernel Module?

Hi Everyone! How can we make a socket() system call from a linux module executing in kernel space? If any one knows, kindly tell me. It will be great. I want to use the socket interface in linux kernel space for sending raw packets over the network. Hamayun (0 Replies)
Discussion started by: mian_m_hamayun
0 Replies

2. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies

3. UNIX for Advanced & Expert Users

how implement a kernel call?

Hi, I would like o implement a kernel call, but I don't know how to do it. Where can I find an example? I've already look to minix source code, but I'm still confused and not very comfortable to mess with the code at this level. Thanks, (1 Reply)
Discussion started by: pedrosacosta
1 Replies

4. Programming

c system call

How the c compiler differentiates the system calls and function calls? (1 Reply)
Discussion started by: rangaswamy
1 Replies

5. UNIX for Advanced & Expert Users

ioctl() system call on Linux-i386

Greetings, Please help me with the following : Where can I find what means exactly and how to use each of the second argument of the ioctl() system call in Linux/386 : FIOxxx (file IOCTL requests), SIOxxx (socket IOCTL requests), TCxxx TIOxxx (terminal IOCTL requests) ? ... (1 Reply)
Discussion started by: aigoia
1 Replies

6. Shell Programming and Scripting

system call

Hi, How to write a system calls in a script ? > cd $HOME > ls -ltr thanks in advance.. (10 Replies)
Discussion started by: hegdeshashi
10 Replies

7. Ubuntu

How to implement TIOCOUTQ for USB modem on Linux Ubuntu

Hi, I need to override ioctl operation for a few USB drivers (sierra, option, cdc-acm) on Linux Ubuntu 2.6.34sb2 to support TIOCOUTQ command. Unfortunately, none of the drivers I mentioned above support TIOCOUTQ because it seems unclear to know amount of data inside a modem. Does Linux... (12 Replies)
Discussion started by: SDoroshenko
12 Replies

8. Shell Programming and Scripting

system call

Trying to figure out a load issue with a webserver. I have traced a php script and noticed the following connect(4, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("XX.XX.XX.XX")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000035> poll(, 1, 2000) = 1 () <0.000120>... (5 Replies)
Discussion started by: rajan007
5 Replies

9. IP Networking

Implement inter vlan routing with Linux

Hello. I want to Communicate 2 VLAN with router like this solution: http://8pic.ir/images/83m0ouih8mmm9s1sfl56.jpg For this purpose I'm configuring 2 Linux system as a switch and connect 4 host to them. Then a router is added to scenario. The configuration of the switches is: On DUT1(Linux):... (1 Reply)
Discussion started by: zsn
1 Replies
refile(1)						      General Commands Manual							 refile(1)

NAME
refile - file message in other folders (only available within the message handling system, mh) SYNOPSIS
refile [msgs] [+folder] [options] OPTIONS
Refiles the draft message, or the current message in your +drafts folder, if you have one set up. You cannot give a msgs argument when you use this option. Moves a file into a folder. This option takes a file from its directory and places it in the named folder, as the next message in the folder. The file must be formatted as a legal mail message. This means that the message must have the minimum header fields separated from the body of the message by a blank line or a line of dashes. Prints a list of the valid options to this command. Keeps a copy of the message in the source folder. Normally, refile removes the messages from the original folder when it refiles them. The -link option keeps a copy in the original folder, as well as filing a copy in the new folder. Preserves the number of a message in the new folder. Normally, when a message is refiled in to another folder, it is set to the next available number in that folder. The -preserve option keeps the number of the message the same in the new folder as it had been in the old. You cannot have two messages with the same number in one folder, so you should use this option with care. Specifies the source folder to take messages from. Normally, messages are refiled from the current folder into another folder. However, you can take mes- sages from a different folder by using the -src +folder option to specify the alternative source folder. DESCRIPTION
Use the refile command to move the specified message from the current folder to another folder. You can refile messages in more than one folder by giving multiple folder names as arguments. If you do not specify a message, the current message is refiled. You can refile a message other than the current message by giving its num- ber as a msgs argument. You can also refile more than one message at a time by specifying more than one message number, or a range of mes- sage numbers, or a message sequence. See mark(1) for more information on sequences. The current folder remains the same unless the -src option is specified; in that case, the source folder becomes current. Normally, the last message specified becomes the current message. However, if the -link option is used, the current message is not changed. If the Previous-Sequence: entry is set in the file, in addition to defining the named sequences from the source folder, refile will also define those sequences for the destination folders. See mh_profile(4) for information concerning the previous sequence. PROFILE COMPONENTS
Path: To determine your Mail directory Folder-Protect: To set protections when creating a new folder rmmproc: Program to delete the message EXAMPLES
The following example refiles messages 3 and 5 in the folder +records: % refile 3 5 +records The next example files the current message into two folders: % refile +jones +map The next example takes message 13 in the current folder and refiles it in the +test folder. The mes- sage remains in the current folder as well as appearing in the +test folder. % refile -link 13 +test The next example takes a message from the folder +test when it is not the current folder, and places it in the folder +outbox: % refile 3 -src +test +outbox FILES
The user profile. SEE ALSO
folder(1), mark(1), mh_profile(4) refile(1)
All times are GMT -4. The time now is 06:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy