커널의 네트워크 함수를 모듈에서 사용하려고 하는데요.

linuxcoco의 이미지

고수님들 도와 주세요~ ㅜ.ㅜ)/

static inline int ip_local_deliver_finish(struct sk_buff *skb)

int ip_local_deliver(struct sk_buff *skb)

이 두 함수를 EXPORT 해서 모듈에서 사용하려고 합니다.

그래서 함수가 구현되어 있는 곳에 두 함수를

EXPORT_SYMBOL(ip_local_deliver_finish);
EXPORT_SYMBOL(ip_local_deliver);

이렇게 export했습니다.

그리구선 Makefile을 찾아서

export-objs = ipip.o ip_gre.o ip_input.o

위와 같이
두 함수가 있는 ip_input.o 화일을 추가했습니다.

그랬더니만

warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
warning: parameter names (without types) in function declaration
warning: data definition has no type or storage class

이와 같은 경고 메시지를 띄우더군요.

그 커널 이미지로 재부팅을 해도 모듈에서 그 함수를 사용할 수 없습니다.

뭐 잘못된건가요?

혹시 모듈에서 절대 불러 쓸수없는 함수들이 있는 건가요?

고수님들의 고견을 좀 부탁드립니다.

parrell의 이미지

님께서 말씀하신 함수를 보니까 static 이라는 키워드가 붙어있는데요..
간단히 말씀드리자면(사실 복잡한건 몰라서 ㅋㅋㅋ)
저함수를 그대로 쓰시는건 아마 불가능하지 싶고, 함수안의 내용을 필요한
부분만 님의 함수로 그대로 코딩하셔야 될거 같아요.
그대로 코딩하는 과정에서 usercopy문제가 발생할때는 얼마전 올라왔던 글인
get_ds와 set_fs부분을 참조하시면 되구요..

그리고 ip_local_deliver는 <net/ip.h>헤더파일 참조하시면 아무탈없이
사용하실수 있을거에요..

No talking, all action.

linuxcoco의 이미지

ip_local_deliver_finish는 님께서 말씀해주신대로 해봐야 겠구요.

ip_local_deliver는 지금 함수가 구현된 곳에다 EXPORT해 놓은 거거든요?
그런데
#include <net/ip.h>가 ip_local_deliver()함수가 구현된 곳에 되어있는데
<net/ip.h>를 참조하라는 말씀은 무슨 말씀인지 이해를 못하구 있어요. ㅜ.ㅜ

이미 netsyms.c에 <net/ip.h>를 include 해놓고 EXPORT도 해보았는데
ksyms에는 함수가 걸려있기는 한데 모듈에서는 unresolved 문제를 겪구 있습니다.

<net/ip.h>를 참조하라는 말씀이... 무엇이오니까~ ㅠ.ㅠ

제발 이글 오늘 밤내로 읽어주셨으면 좋겠습니다. 으흑.

앙... 리눅스..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.