Permalink
Commits on Jun 11, 2014
  1. src/libc/PDClib/build.sh:

    	When building the library, the link to libc not work.
    	Fix it.
    
    utils/boot_qemu.sh:
    	Display sdl works in most cases.
    committed Jun 11, 2014
Commits on Apr 26, 2013
Commits on Mar 20, 2013
Commits on Mar 19, 2013
  1. Entreguei e acabou a disciplina de SO, tirei 10 nesse release [:

    Não esta tudo pronto, mas o professor viu que era um bug dificil mesmo,
    que eu fiz tudo certo, e que eu estava sabendo do assunto, só que um
    bug surgio mesmo, e fazendo SO isso acontece mesmo, mas eu realemte fui
    bem na apresentação e nas perguntas que ele me fez, então foi 10 ^^
    
    Algumas pequenas mudanças para ficar mais facil de usar, e muito codigo
    verboso para debug. Tentar refinar mais no futuro, e concertas os erros...
    committed Mar 19, 2013
Commits on Mar 18, 2013
Commits on Mar 13, 2013
  1. Adicionando suporte a fs e initrd. interface esta ruim ainda.

    src/kernel/fs/fs.cpp
    src/kernel/fs/fs.hpp
    src/kernel/fs/initrd.cpp
    src/kernel/fs/initrd.hpp:
    	Suporte a fs e initrd, um sistema de arquivos.
    	A interface é muito ruim, tem muitas variaveis globais e essas coisas.
    	No futuro, criar uma interface e melhorar a interface.
    
    src/kernel/main.cpp:
    	Adicionado suporte ao initrd.
    	Verifica se tem initrd ou não. E mostra o conteudo do initrd.
    
    utils/initrd.img:
    	Imagem para testes com arquivos ja dentro dela, usando o initrdfs.
    	Só para não precisar criar uma imagem sempre, sabe como é.
    
    utils/make_initrd.cpp:
    	Adicionado o programa para gerar o initrd. Esse é o programa,
    	mas como já tem o initrd.img, não precisa se preocupar.
    committed Mar 13, 2013
Commits on Mar 12, 2013
  1. Corrigi alguns bugs com a heap, devido a inicialização estar errada.

    Me livrei de algumas coisas inuteis tb.
    committed Mar 12, 2013
  2. KHeap funcionando. Revisar melhor depois.

    scripts/boot_qemu.sh:
    	Aumentando o tempo de 6 segundos para exibir os registradores da CPU.
    
    src/kernel/arch/i386/isa_specific_code.cpp
    src/kernel/arch/i386/isa_specific_code.hpp
    src/kernel/compiler/gcc/new.cpp
    src/kernel/kheap.cpp
    src/kernel/kheap.hpp
    src/kernel/kmalloc.cpp
    src/kernel/kpp/queue.hpp
    src/kernel/main.cpp
    src/kernel/monitor.hpp
    src/kernel/paging.cpp
    src/kernel/paging.hpp
    src/kernel/start.cpp
    	Muitos bug fixs, comentarios e linhas de debug adicionadas.
    	Nada muito relevante, mas tudo para fazer a heap funcionar.
    
    src/kernel/debug.cpp
    src/kernel/debug.hpp:
    	Adicionado o kdebug, para fazer um debug baseado em leveis e
    	facilitar minha vida.
    committed Mar 12, 2013
Commits on Mar 7, 2013
  1. Testes para fazer a heap funcionar e remoçãode comentarios.

    Começar a fazer grandes mudanças para a heap funcionar....
    committed Mar 7, 2013
Commits on Mar 6, 2013
  1. interface do kmalloc.h melhorada e kfree add.

    src/kernel/compiler/gcc/new.cpp:
    	Como tem a interface do kfree(mais ainda não implementado a logica)
    	eu estou usando o delete com o kfree agora.
    
    src/kernel/kmalloc.cpp
    src/kernel/kmalloc.hpp:
    
    	Melhoras de interface. O que não precisava ser exportado não
    	esta mais sendo exportado.
    	Movido handlers para os cantos certos.
    	Adiciondo a interface para usar o kfree de forma funcional. Muito
    	parecido com a interface do kmalloc, nada de novo, muito configuravel
    	(yeahh, baby, yeaaahhhhhh).
    
    src/kernel/paging.cpp:
    	Small change. Apenas para remover um warning que estava dando sobre
    	variavel não usada.
    committed Mar 6, 2013
  2. Mudanças para tentar implementar a heap.

    Deixei muitas mudanças para esse commit, meio que culpoa do tutorial do molloys,
    ele em muitos pontos é ruim, tenho que mudar muitas coisas antes de commitar
    ou pensar muito, acho que é porque o meu SO tem objetos, e eu me preocupo mais
    com a estetica e velocidade das coisas, como no kmalloc que eu tinha feito.
    O tutorial do molloys não é ruim, mas ele não mostra as coisas de forma legal,
    acaba que isso faz com que eu discorde de algumas coisas, mas essas coisas podem
    ser funcionais depois. Isso é um saco.
    
    src/kernel/compiler/gcc/new.cpp:
    	Mudei para chamar o kfree ao inves de free no delete.
    
    src/kernel/kheap.cpp
    src/kernel/kheap.hpp:
    	Primeira tentativa de implementar a heap como uma classe do tutorial
    do molloy. Esta compilavel, mas ainda não esta sendo usado.
    	Tem todas as definições e algoritmos do molloys, no maximo
    eu coloquei tudo dentro de uma classe.
    
    src/kernel/kmalloc.cpp
    src/kernel/kmalloc.hpp:
    	Aqui grandes mudanças.
    	Mudei para ter apenas uma função que aloca a memoria, e essa função aceita
    3 parametros, como o codigo do mollys. Fiz assim, ao contrario do anterior que era mais
    rapido, porque é mais configuravel assim.
    	Adicionei uma função padrao para lidar com o algoritmo de alocação
    com apenas a informação do final do kernel que pega pelo linker.
    	kmalloc_set_handler é uma função para trocar a função basica de alocação.
    	Fazer a mesma coisa com o kfree depois.
    	Tem que mudar quem é exportado e quem não é tambem. Provavelmente
    	não precisa exportar kmalloc_int.
    
    src/kernel/kpp/ordered_array.hpp:
    	Pequenas mudanças. Adicionado abs_size, que diz a quantidade de memoria
    	que o array usa.
    	Removi um erro no operado [], que retornava const.
    
    src/kernel/main.cpp:
    	Menos/Mais codigos teste.
    
    src/kernel/paging.hpp:
    	Mudanças de interface, coisas privadas passaram a ser publicas,
    	porque seram usadas em outras classes.
    
    	Também foi mudado para a paginação funcionar com a heap.
    committed Mar 6, 2013
Commits on Feb 21, 2013
  1. Implementação de um array ordenado.

    src/kernel/kpp/ordered_array.cpp
    src/kernel/kpp/ordered_array.hpp:
    
    	Implementação de array ordenado. Vai ser usado futuramente
    	quando for implementar a heap do kernel.
    
    src/kernel/kpp/utils.hpp:
    
    	Adicionei uma função para fazer assert.
    	Declarações automanticas de algumas accessor e mutators.
    
    src/kernel/main.cpp:
    	Inserido alguns teste com o array ordenado.
    committed Feb 21, 2013
Commits on Feb 16, 2013
  1. 6 parte do tutorial do molloy pronta, Paging.

    Essa parte do tutorial foi feita, para a parte que o professor pediu.
    Foi essa parte:
    http://www.jamesmolloy.co.uk/tutorial_html/6.-Paging.html
    
    src/kernel/arch/i386/start.s:
    
    	Coloquei a declaração da variavel end_malloc_addr em asm mesm.
    	Tem problemas com a inicialização dessa variavel por ela ser
    	statica e global.
    	Nao tem jeito, quando voce quer que algo seja feito de um jeito
    	certo, tem que partir para o asm.
    	Tem uma forma de fazer diferente, se usasse objetos,
    	mas isso fica para o futuro.
    
    src/kernel/compiler/gcc/new.cpp:
    
    	Removi os kprintf de debug.
    
    src/kernel/kmalloc.cpp
    src/kernel/kmalloc.hpp:
    
    	Fiz uns ajustes na interface que esta um pouco errada.
    
    src/kernel/kpp/utils.hpp:
    
    	Utilidades para ajudar a desenvolver mais rapido.
    
    src/kernel/paging.cpp
    src/kernel/paging.hpp:
    
    	Habilitar paginação como esta no tutorial.
    	Basicamente, criei uma classe e ainda fiz umas otimizações.
    
    src/kernel/start.cpp:
    
    	Coloquei para inicializar aqui as variaveis globais estaticas.
    	Resolveu o problema de dizer onde começa o final do kernel,
    	a parte usada da memoria.
    committed Feb 16, 2013
Commits on Feb 5, 2013
  1. CMakeLists.txt:

    	Adicionado para pegar os arquivos de implementação do arquivo
    	kernel/kpp/*.cpp
    
    src/kernel/arch/i386/isa_specific_code.cpp
    src/kernel/arch/i386/isa_specific_code.hpp:
    
    	Adicionado algumas tentativas de pegar valores dos registradores.
    
    	Ainda não esta funcionando, provavelmente isso deve ser feito atraves de macros.
    
    src/kernel/arch/i386/start.s:
    
    	Alterei para o start ser feito em asm mesmo.
    	Se eu fizer em C, eu não estava conseguindo pegar os valores dos registradores
    	EAX e EBX.
    
    src/kernel/boot/multiboot.hpp:
    
    	Adicionado como extern as variaveis que eu defino no asm, para que os
    	codigos em C funcionem. Precido disso para usar o kmalloc, por exemplo.
    
    src/kernel/compiler/gcc/flags.cmake:
    
    	Adicionado a flag para o gcc permitir conversões explicitas.
    	Não consigo fazer com conversões implicitas, então fica a flag.
    
    src/kernel/compiler/gcc/new.cpp:
    
    	New agora usando o kmalloc ao inves de malloc.
    	Usando a memoria do final do kernel para o kmalloc.
    
    src/kernel/isr.cpp:
    
    	Ajustei para ficar mais bonito o codigo do isr, usando o kprintf.
    
    src/kernel/keyboard.cpp:
    
    	Usando melhor o kprintf, agora que ele funciona melhor.
    
    src/kernel/kmalloc.cpp
    src/kernel/kmalloc.hpp:
    
    	Implementado o kmalloc usando o final do kernel como memoria para
    	começar a usar a memoria.
    
    src/kernel/kpp/bitset.hpp:
    
    	rimeiras tentativas para implementar um bitset, ainda não terminado.
    
    src/kernel/kpp/queue.hpp:
    
    	Esta usando o kmalloc agora.
    
    src/kernel/kpp/snprintf.cpp
    src/kernel/kpp/snprintf.hpp
    src/kernel/kpp/vsnprintf.cpp
    src/kernel/kpp/vsnprintf.hpp:
    
    	Muita coisa mudou aqui, eu troquei o algoritmo que estava antes.
    
    	O que estava antes tinha um bug, procurei um outro e troquei, e funcionou.
    
    	vsnprintf é uma implementação comun, pena que a libc que eu uso não implementa.
    
    src/kernel/main.cpp:
    
    	Muitas mudanças para colocar codigos de teste e usando a nova função do kprintf,
    	que é bem mais legal de usar.
    
    src/kernel/monitor.cpp
    src/kernel/monitor.hpp:
    
    	Só usando e a declaração do novo kprintf.
    
    src/kernel/start.cpp
    	Comentei o codigo antigo que agora é feito em asm.
    
    	O compilador não esta deixando eu acessar os registradores EAX e EBX, então tive que
    	fazer isso.
    committed Feb 5, 2013
Commits on Jan 18, 2013
  1. Mudanças de API em algumas classes.

    src/kernel/gdt.cpp
    src/kernel/gdt.hpp
    src/kernel/idt.cpp
    src/kernel/idt.hpp
    src/kernel/irq.cpp
    src/kernel/irq.hpp
    src/kernel/isr.cpp
    src/kernel/timer.cpp
    src/kernel/timer.hpp:
    
    	Mudei o construtor e o metodo install para a nova api, que não
    precisa passar o que vai precisar.
    
    src/kernel/keyboard.cpp
    src/kernel/keyboard.hpp:
    
    	Mesma coisa dos anteriores, só que ele precisa passar mais
    parametros para o construtor, e a função que lé do teclado.
    
    src/kernel/main.cpp:
    
    	Coloquei referencias ao que as classes iam usar e passei o que
    precisa para cada classe nos construtores. Só para funcionar o que já
    estava sendo feito.
    committed Jan 18, 2013
Commits on Jan 11, 2013
  1. Release da primeira avaliação de SO.

    README.md:
    	Coloquei todas as coisas que o So tem aqui, so para ficar bonito
    	na pagina inicial. Acho que talvez faltou algo.
    
    src/kernel/arch/i386/isa_specific_code.s:
    	Deletei alguns pedaçoes de codigo que não faziam nada.
    	Desejo remover essa arquivo no futuro ....
    
    src/kernel/main.cpp
    	Coloquei uns codigos de teste, só para mostrar o que acontece.
    committed Jan 11, 2013
Commits on Jan 10, 2013
  1. Agora com estrututra de dados e um getch descente.

    src/kernel/compiler/gcc/new.cpp
    src/kernel/compiler/gcc/new.hpp:
    	Também coloquei o delete e os operadores de vetores aqui porque
    estava faltando. Agora acho que não falta mais nada.
    	Fiz testes também, ele parece estar chamando os dtor certinho
    também.
    
    src/kernel/keyboard.cpp
    src/kernel/keyboard.hpp:
    
    	Adicionado buffer para manter as teclas. Falta algum tipo de função
    para limpar esse buffer.... Esse buffer usar o kpp/queue.hpp.
    	Adicionado o getch que bloqueia caso não tenha nenhum caractere
    ainda digitado. O pit esta sendo passado por parametro, acho melhor no
    futuro isso ficar passado na construção do objeto.
    
    src/kernel/kpp/node.hpp
    src/kernel/kpp/queue.hpp:
    
    	Adicionado 2 estruturas de dados para ser usado no kernel.
    	Uma é a DQueue, que é uma fila que usa alocação dinamica.
    	A outra é a SQueue, que é uma fila fixa que só usa um vetor
    	alocado. Talvez seja uma boa colocar essa fila na pilha também....
    
    src/kernel/timer.cpp
    src/kernel/timer.hpp
    
    	Modifiquei para sumir com um aviso de conversão de tipo que não
    estava errado, mas realmente não fazia sentido.
    	Removi o codigo que ficava dizendo que 1 seg. se passou, estava muito
    chato isso.
    committed Jan 10, 2013
Commits on Jan 9, 2013
  1. Movido o new para o lugar certo.

    src/kernel/compiler/gcc/compiler_specific_code.hpp:
    
    	Inclui o cabeçlho para acabar com o problema do new.
    
    src/kernel/compiler/gcc/new.hpp
    src/kernel/compiler/gcc/new.cpp:
    	Implementei um new aqui por causa que o gcc não faz isso...
    
    src/kernel/main.cpp
    	Retirei a implementação do new que tinha aqui.
    committed Jan 9, 2013
  2. Malloc e new funcionando! Só falta deixar mais bonito.

    src/kernel/compiler/gcc/flags.cmake:
    
    	Re adicionado os arquivos para operações quad.
    	Aparentemente o bug era com o linker mesmo, agora funciona bem,
    	mais ainda tem mover algumas definiçoões feitas na implementação
    	para o arquivo de especifico da plataforma.
    
    src/kernel/main.cpp
    	Exemplo de new e malloc adicionado. Tem um patch para corrigir erro
    	no main, mas vou mover isso ainda para o canto correto.
    committed Jan 9, 2013
  3. Tutorial do Bran e primeira parte da avaliação pronto.

    A primeira parte do tutorial do Bran esta plenamente implementada a
    partir desse commit e mais algumas coisas. Uma parte do codigo esta
    feita diretamente em GAS porque o professor queria assim, mas tçao logo
    seja nao mais preciso, vou tirar isso.
    
    CMakeLists.txt
    src/kernel/CMakeLists.txt:
    	Pequenas mudanças. Coloquei por padrao a biblioteca em C que
    funciona.
    
    src/kernel/arch/i386/isa_specific_code.cpp
    src/kernel/arch/i386/isa_specific_code.hpp
    src/kernel/arch/i386/isa_specific_code.s:
    src/kernel/arch/i386/pc/plataform_specific_code.hpp
    	Adicionado função para habilitar de novo as interrup.
    	Adicionado o codigo em gas para a parte em asm e comentado o asm
    feito em C no arquivo equivalente .cpp.
    	A estrutura que representa os registradores foi movida para o codigo
    especifico da plataforma. Ainda vou me livrar disso no futuro....
    
    src/kernel/arch/i386/start.s
    src/kernel/arch/i386/irq.s
    src/kernel/arch/i386/isr.s:
    	Mais asm um pouco desnecessario.
    
    	Coloquei a parte de multiboot que esta em start.cpp em inline asm
    para o arquivo start.s e ficou implementado em GAS.
    	E nesses arquivos também foi colocado a implementação da parte que
    não da para fazer em C de forma nenhuma, da parte do IRQ e do ISR.
    	Depois mudar isso para a forma que estava antes, mais portavel e mais
    vantagens.
    
    src/kernel/arch/i386/pc/link.ld:
    	Tive que rescrever o linker, estava dando problema quando o kernel
    ficava maior, acho que a informação de multiboot estava se perdendo e
    o boot não estava conseguindo ser encontrado.
    	Bom, agora vai, acho que consegui.
    
    src/kernel/compiler/gcc/quad/adddi3.c
    src/kernel/compiler/gcc/quad/anddi3.c
    src/kernel/compiler/gcc/quad/ashldi3.c
    src/kernel/compiler/gcc/quad/ashrdi3.c
    src/kernel/compiler/gcc/quad/cmpdi2.c
    src/kernel/compiler/gcc/quad/divdi3.c
    src/kernel/compiler/gcc/quad/fixdfdi.c
    src/kernel/compiler/gcc/quad/fixsfdi.c
    src/kernel/compiler/gcc/quad/fixunsdfdi.c
    src/kernel/compiler/gcc/quad/fixunssfdi.c
    src/kernel/compiler/gcc/quad/floatdidf.c
    src/kernel/compiler/gcc/quad/floatdisf.c
    src/kernel/compiler/gcc/quad/floatunsdidf.c
    src/kernel/compiler/gcc/quad/iordi3.c
    src/kernel/compiler/gcc/quad/lshldi3.c
    src/kernel/compiler/gcc/quad/lshrdi3.c
    src/kernel/compiler/gcc/quad/moddi3.c
    src/kernel/compiler/gcc/quad/muldi3.c
    src/kernel/compiler/gcc/quad/negdi2.c
    src/kernel/compiler/gcc/quad/notdi2.c
    src/kernel/compiler/gcc/quad/qdivrem.c
    src/kernel/compiler/gcc/quad/quad.h
    src/kernel/compiler/gcc/quad/subdi3.c
    src/kernel/compiler/gcc/quad/ucmpdi2.c
    src/kernel/compiler/gcc/quad/udivdi3.c
    src/kernel/compiler/gcc/quad/umoddi3.c
    src/kernel/compiler/gcc/quad/xordi3.c
    src/kernel/compiler/gcc/local_static_vars.hpp
    src/kernel/compiler/gcc/compiler_specific_code.hpp
    src/kernel/compiler/gcc/flags.cmake:
    	Tentativa de fazer o malloc funcionar fail.
    	Para usar o malloc tem que concertar um erro no gcc,
    implementando operações quad. Uma coisa que tem no bsd, de onde eu
    copiei esses arquivos, e não funcionou de qq forma.
    	Poder ser que com o linker concertado ele passe a funcionar, tem que
    testar isso de novo. Os arquivos estão ai, mas esta desabilitado.
    
    	Adicionado suporte a variaveis locais estaticas, que o gcc não
    funciona sem as funções que são implementadas no arquivo
    local_static_vars.hpp.
    
    src/kernel/gdt.cpp
    src/kernel/gdt.hpp:
    
    GDT feito! Usando variaveis staticas globais, mas não precisa de mais
    de um gdt, então serve.
    
    src/kernel/idt.cpp
    src/kernel/idt.hpp:
    src/kernel/isr.cpp
    src/kernel/isr.hpp:
    
    	Também funcionando! A mesma coisa do GDT, estatico e global.
    
    	Tem que melhorar a coisa do vetor de interrupções.
    	Não tem para que ter um tratador generico para passar para o
    tratador especifico.
    
    src/kernel/irq.cpp
    src/kernel/irq.hpp
    
    	IRQ feito! Mesma coisa que o IDT, também. As mesmas observações.
    
    src/kernel/keyboard.cpp
    src/kernel/keyboard.hpp:
    
    	O teclado esta so mostrando na tela. Tem que fazer um jeito de ter um
    buffer com as teclas e funções para recuperar estas teclas.
    	Tem que desenvolver mais, mas tem umas coisas já la.
    
    src/kernel/main.cpp:
    
    	O mais esta usando tudo ja! Pode ja dividir por 0.
    
    src/kernel/monitor.cpp
    src/kernel/monitor.hpp:
    
    Finalmente criei um kprintf, ta meio paia mas esta servindo
    Tentar usar uma variavel global estatica para usar objetos nessa parte,
    estilo um cout.
    
    src/kernel/start.cpp:
    
    	Comentado a parte do multiboot. Voltar depois com isso de novo.
    	Desabilito as interrupçoes logo de inicio aqui, tem que habilitar
    depois, é feito isso no main.
    
    src/kernel/timer.cpp
    src/kernel/timer.hpp
    
    	Timer funcionando, tem que desenvolver uma coisa mais elaborada aqui.
    committed Jan 9, 2013
Commits on Jan 3, 2013
  1. Algumas mudanças extras do outro commit.

    Mudei para nomes melhores e outras coisas. To bem preguiçoso para
    descrever esse commit mesmo.
    committed Jan 3, 2013
  2. Um monte de mudanças, adicionado o idt e o gdt e melhorias no

    multiboot.
    
    Modificado a inicialização também.
    committed Jan 3, 2013
Commits on Nov 29, 2012
  1. Adicionado mais umas macros para sair no config.hpp e uma string para…

    … uma
    
    versão custom do kernel.
    
    O config.hpp tem constantes em forma de defines, talvez fosse melhor retirar
    os defines e criar um objeto com as definições dos atributos configurados.
    committed Nov 29, 2012
Commits on Nov 28, 2012
  1. Suporte a escolher algumas coisas via o configure do cmake.

    Agora a ISA, a plataforma, o compilador usado e a biblioteca de C que esta sendo
    usado pode ser escolhido via o ccmake ou a qualquer outra interface de
    configurar o build do cmake.
    committed Nov 28, 2012
  2. Suporte a uma outra biblioteca de C, a newlib.

    A newlib foi mais dificil de fazer funcionar, acho que não é uma
    boa alternativa, mas é uma altenativa a mais pelo menos.
    committed Nov 28, 2012
Commits on Nov 23, 2012
  1. Mundacas apenas em nomes de arquivos para o github pensar que o projeto

    eh quase todo 100% C++ ....
    committed Nov 23, 2012
Commits on Nov 20, 2012
  1. old/libc-i386-pdclib.a:

    	Adicionado biblioteca já pronta da biblioteca c.
    	So para garantir caso não seja possivel compilar com
    	a ultima versão.
    	Ja aconteceu do PDClib esta com um trunk quebrado, por isso pode
    	ser util.
    committed Nov 20, 2012
Commits on Sep 24, 2012
Commits on Sep 23, 2012
  1. Mudando tipo definido na ISA pra usar C99(stdint)

    src/kernel/arch/i386/isa_specific_code.hpp:
    	Retirado a definição de tipos de dados aqui que tem no padrão
    	C99, só deixando os tipos que realmente são definidos na ISA.
    
    src/kernel/common.cpp:
    src/kernel/common.h:
    src/kernel/monitor.cpp:
    	Mudando para ao inves de usar o tipo que eu tinha definido antes,
    	que era desnecessario, usar o tipo definido no C99, isso nos arquivos
    	de quem precisa.
    
    src/kernel/main.cpp:
    	Adicionado a mais a stdlib.h, apenas porque precisa.
    committed Sep 23, 2012
Commits on Sep 22, 2012
  1. src/kernel/main.cpp:

    	Agora usando a libc, so para fazer um teste ;).
    	Deve ter suas limitações, mas consegui usar a biblioteca
    	string.h e a função strcat, então ja fica bem legal.
    
    src/libc/PDClib/build.sh:
    	Mudei o esquema, o build tem que gerar um arquivo no diretorio
    	acima chamado libc.a.
    	Não é um padrão, mas acho melhor a forma de chamar o arquivo
    	e como passo as flags para comilar com esse arquivo.
    
    src/libc/PDClib/flags.cmake:
    	Mudei para ficar comforme o build.sh novo.
    	Além disso, tinha que adicionar mais uns diretorios nos
    	include_dirs.
    committed Sep 22, 2012