qemu 소스에서 제가 만든 디바이스 드라이버 오픈이 안되네요

nixon4545의 이미지

모듈 형식으로 만든 디바이스드라이버를 오픈을 qemu에서 오픈하려고 하는데

계속 리턴값이 -1 즉 실패로 뜨네요

따로 테스트프로그램을 만들땐 완벽하게 오픈이 되서 작동을 합니다

커널메세지에도 당연히 뜨구요

근데 qemu소스에 pwrite부분이 있는 곳 직전에 오픈을 하려고 하는데

단순히 -1만 뜨고 원인을 찾기가 너무 힘드네요...

보통 무엇이 문제일때 이러는걸까요

static ssize_t handle_aiocb_rw_linear(RawPosixAIOData *aiocb, char *buf)
{
ssize_t offset = 0;
ssize_t len;
unsigned int devfd;
while (offset < aiocb->aio_nbytes) {
if (aiocb->aio_type & QEMU_AIO_WRITE) {
//devfd = qemu_open("/dev/mydev",O_RDWR | O_NDELAY);
devfd = open("/dev/mydev",O_RDWR | O_NDELAY,0777);
printf("devfd : %d\n", devfd);
if(devfd != -1)
{
len = syscall(__NR_my_pwrite64,devfd, (const char *)buf + offset, aiocb->aio_nbytes - offset, aiocb->aio_offset + offset,aiocb->aio_fildes);
close(devfd);
}
else
{
close(devfd);
len = pwrite(aiocb->aio_fildes, (const char *)buf + offset, aiocb->aio_nbytes - offset, aiocb->aio_offset + offset);
}

혹시나 해서 소스를 올렸습니다.

오픈을 해서 제가 만든 syscall로 들어가야 하는데 -1이 리턴이 계속 되네요

다른 테스트유저프로그램으로는 확실하게 돌아가는게 확인됐습니다.

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.