Jump to content

nevim

Members
  • Posts

    4
  • Joined

  • Last visited

Posts posted by nevim

  1. Full Disclaimer: e pentru un proiect la facultate

     

    Am si eu o nelamurire, ca sunt destul de noob in ceea ce priveste kernelul de Linux. Am de implementat un syscall (lucru pe care l-am invatat din tutorialul asta ), dar trebuie sa adaug un struct custom care sa-mi intoarca niste date despre procese si pe care sa-l primeasca ca parametru. Problema e ca nu stiu unde sa-l adaug, pentru ca la compilare imi spune ca nu-l gaseste. Pana acum l-am pus intr-un fisier .h din folderul cu syscallul si in include/linux/sched.h (practic ce am gasit printre putinele raspunsuri de pe stackoverflow si pe unde am mai cautat), dar tot nu e inclus in syscalls.h . Ideea e ca nici nu as vrea sa modific includeurile din syscalls.h fara sa fie nevoie, ci sa aflu unde sa-l pun corect.

     

    ./include/linux/syscalls.h:1389:32: error: unknown type name ‘ProcStruct’

     

    Intrebarea mea e urmatoarea: unde ar trebui sa-l adaug?

  2. Salut! Am si eu o intrebare de incepator in ASM x86 AT&T. Ideea este urmatoarea, vreau sa compar o variabila din memorie cu un numar, doar ca imi da un rezultat ciudat. Sigur imi scapa ceva, dar dupa vreo doua ore de debug si cautat pe net nu-mi dau seama despre ce e vorba. Nu stiu de ce intra pe jl.

     

    .data
    	n: .long 2
    	gr: .asciz "gr"
    	l: .asciz "l"
    	e: .asciz "e"
    
    .text
    
    
    .globl _start
    
    
    _start:
    	mov $n, %eax
    	mov $2, %ebx
    	cmp %eax, %ebx
    	jg lbl_gr
    	jl lbl_l
    	je lbl_e
    	
    	
    	lbl_gr:
    		mov $4, %eax
    		mov $1, %ebx
    		mov $gr, %ecx
    		mov 3, %edx
    		int $0x80
    		jmp lbl_exit
    	
    	lbl_l:
    		mov $4, %eax
    		mov $1, %ebx
    		mov $l, %ecx
    		mov $2, %edx
    		int $0x80
    		jmp lbl_exit
    	
    	lbl_e:
    		mov $4, %eax
    		mov $1, %ebx
    		mov $e, %ecx
    		mov $2, %edx
    		int $0x80
    		jmp lbl_exit
    		
    
    lbl_exit:
    mov $1, %eax
    mov $0, %ebx
    int $0x80
    

     

    Ca sa rulez, am folosit:

    as --32 cmp.asm -o cmp.o  
    ld -m elf_i386 cmp.o -o cmp   
    
    ./cmp

     

×
×
  • Create New...