All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
To: Fabiano Ramos <ramos_fabiano@yahoo.com.br>
Cc: linux-kernel@vger.kernel.org
Subject: Re: how do you call userspace syscalls (e.g. sys_rename) from inside kernel
Date: Fri, 8 Oct 2004 16:35:23 +0100	[thread overview]
Message-ID: <20041008153523.GK5551@lkcl.net> (raw)
In-Reply-To: <1097240824.4389.26.camel@lfs.barra.bali>

On Fri, Oct 08, 2004 at 10:07:04AM -0300, Fabiano Ramos wrote:
> On Fri, 2004-10-08 at 14:04 +0100, Luke Kenneth Casson Leighton wrote:
> > could someone kindly advise me on the location of some example code in
> > the kernel which calls one of the userspace system calls from inside the
> > kernel?
> > 
> > alternatively if this has never been considered before, please could
> > someone advise me as to how it might be achieved?
> > 
> 
> you cannot do that. For every sys_xx there is a do_xx, that can
> be called from inside the kernel.
 
 so, there's a do_rename (yes i found that and ISTRC that when
 i used it i can't exactly remember what the problem was:
 either i got an error code -14 or i got "warning symbol
 do_rename not found" when my module was linked together,
 even though it says EXPORT_SYMBOL(do_rename) in fs/namei.c,
 so i was forced to cut/paste sys_rename)

 and there's a do_open no there isn't, there's filp_open.

 and a do_pread64 no there isn't i had to cut/paste sys_pread64
 which was okay because it's pretty basic, just call vfs_read.

 and a do_mkdir no there isn't so i had to cut/paste that.


 basically what i am doing is writing a file system "proxy"
 module which re-calls back into the filesystem with a prefix
 onto the front of the pathname.

> > [p.s. i found asm/unistd.h, i found the macros syscall012345
> > etc., i believe i don't quite understand what these are for, and
> > may be on the wrong track.]
> 
> These are are available for you to make syscalls from user mode
> without library support (usually that brand new syscall you added).
> They are basically wrappers that expand into C code. _syscallx, 
> where x is the number of arguments the syscall needs.
 
 so, it's for use the other way round.  okay, thanks for keeping me off
 a broken line of enquiry.

 [oh, and i'll be abandoning this line of enquiry _entirely_ if i find
 that supermount-ng can do the same job - namely manage to keep
 userspace programs happy when users rip out media]
 
-- 
--
Truth, honesty and respect are rare commodities that all spring from
the same well: Love.  If you love yourself and everyone and everything
around you, funnily and coincidentally enough, life gets a lot better.
--
<a href="http://lkcl.net">      lkcl.net      </a> <br />
<a href="mailto:lkcl@lkcl.net"> lkcl@lkcl.net </a> <br />


  parent reply	other threads:[~2004-10-08 15:24 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-08 13:04 how do you call userspace syscalls (e.g. sys_rename) from inside kernel Luke Kenneth Casson Leighton
2004-10-08 13:07 ` Fabiano Ramos
2004-10-08 13:38   ` Brice Goglin
2004-10-08 15:04     ` Fabiano Ramos
2004-10-08 15:35   ` Luke Kenneth Casson Leighton [this message]
2004-10-08 14:02 ` Brian Gerst
2004-10-08 15:18   ` Luke Kenneth Casson Leighton
2004-10-08 15:12     ` Bernd Petrovitsch
2004-10-08 17:03       ` Luke Kenneth Casson Leighton
2004-10-08 15:18     ` Brice Goglin
2004-10-08 16:20       ` Luke Kenneth Casson Leighton
2004-10-08 16:37         ` Jan-Benedict Glaw
2004-10-08 17:37           ` Luke Kenneth Casson Leighton
2004-10-08 15:27     ` Brian Gerst
2004-10-08 17:04       ` Luke Kenneth Casson Leighton
2004-10-12  0:15 ` Jon Masters
2004-10-12 13:16   ` Luke Kenneth Casson Leighton
  -- strict thread matches above, loose matches on Subject: below --
2004-10-10 23:13 Aboo Valappil
2004-10-10 23:35 ` Arnd Bergmann
2004-10-11  9:56 ` Jirka Kosina

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041008153523.GK5551@lkcl.net \
    --to=lkcl@lkcl.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ramos_fabiano@yahoo.com.br \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.