Linux mmap выдает отрицательное значение

Тема в разделе "WASM.BEGINNERS", создана пользователем redliner, 30 сен 2007.

  1. redliner

    redliner New Member

    Публикаций:
    0
    Регистрация:
    27 сен 2007
    Сообщения:
    8
    Всем привет!
    При вызове mmap(); прога выдает отрицательное число но сам файл открывается и смещение выполняется
    Код (Text):
    1. // filename - asciiz
    2.  
    3. open_file:
    4.     mov eax,SYS_open
    5.     mov ebx,filename
    6.     mov ecx,O_RDWR
    7.     int 0x80
    8.     cmp eax,0xFFFFF000
    9.     ja  exit
    10.  
    11.     xchg eax,ebx
    12.    
    13.     mov eax,SYS_lseek // lseek(fd,0,2);
    14.     mov ecx,0
    15.     mov edx,2
    16.  
    17.     int 0x80
    18.  
    19.     xchg eax,edx
    20.    
    21.     push ebx
    22.  
    23.     push 0
    24.     push ebx
    25.     push 1
    26.     push 3
    27.     push edx
    28.     push 0
    29.     mov eax,SYS_mmap // mmap(0,edx/*file size*/,PROT_READ|PROT_WRITE,MAP_SHARED,ebx/*filedecrypter*/,0);
    30.     mov ebx,esp
    31.     int 0x80
    32.     add esp,byte 24
    33.     pop ebx
    34.     cmp eax,0xFFFFF000
    35.     ja exit
    36.  
    37. exit:
    38.     mov eax,1
    39.     xor ebx,ebx
    40.     int 0x80
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    то есть отр число?
    afair mmap возвращает указатель, а не код ошибки.
     
  3. redliner

    redliner New Member

    Публикаций:
    0
    Регистрация:
    27 сен 2007
    Сообщения:
    8
    возвращает он
    eax = 0xFFFFFFF7
     
  4. redliner

    redliner New Member

    Публикаций:
    0
    Регистрация:
    27 сен 2007
    Сообщения:
    8
    96 просмотров и не одного ответа кстати я посмотрел значение eax в /usr/include/asm-generic/errrno-base.h
    там написано что типа EACCESS(0xfffffff3) и EBADF(0xfffffff7) ну со второй ошибкой все ясно а вот с первой =(
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    надеюсь ты читал вдумчиво вот это: http://www.opengroup.org/onlinepubs/000095399/functions/mmap.html ?
     
  6. redliner

    redliner New Member

    Публикаций:
    0
    Регистрация:
    27 сен 2007
    Сообщения:
    8
    да пару раз
    PROT_READ|PROT_WRITE = 3