]> wirehaze git hosting - ppos.git/blob - ppos/lib/libc.h

wirehaze git hosting

add ppos/
[ppos.git] / ppos / lib / libc.h
1 // PingPongOS - PingPong Operating System
2 // Prof. Carlos A. Maziero, DINF UFPR
3 // Versão 2.0 -- Junho de 2025
4
5 // Implementações simplificadas de algumas funções básicas da biblioteca C,
6 // que devem ser definidas aqui para nos liberar da GLibC.
7
8 // ATENÇÃO: ESTE ARQUIVO NÃO DEVE SER ALTERADO
9 // ALTERAÇÕES SERÃO DESCARTADAS NA CORREÇÃO.
10
11 #ifndef __PPOS_LIBC__
12 #define __PPOS_LIBC__
13
14 // códigos de retorno das funções
15 #ifndef ERROR
16 #define ERROR -1
17 #define NOERROR 0
18 #endif
19
20 // ponteiro nulo
21 #ifndef NULL
22 #define NULL ((void *)0)
23 #endif
24
25 // Substitui o printf da LibC onde este arquivo for incluído.
26 #define printf printk
27
28 // Copia "size" bytes da área de memória apontada por "orig"
29 // para a área apontada por "dest".
30 // Retorno: NOERROR ou ERROR.
31 int mem_copy (const char *orig, char *dest, int size);
32
33 // Envia um caractere para o console.
34 void putch (const char c);
35
36 // Envia uma string para o console.
37 void putst (const char *s);
38
39 // Imprime uma mensagem no console, de forma similar a printf.
40 // Suporta os formatos %d %i %c %s %p %%
41 // e os modificadores %NN (tamanho) e %- (alinhamento).
42 void printk(const char *fmt, ...);
43
44 // retorna o número sem sinal
45 int abs(int num) ;
46
47 // define a semente do gerador de aleatórios
48 void randseed(unsigned long seed);
49
50 // gera um inteiro aleatório entre 0 e MAX_INT
51 unsigned long randnum(void);
52
53 // Encerra o programa normalmente, com o exit code informado.
54 //void exit(int exit_code);
55
56 // Encerra o programa com erro
57 //void abort();
58
59 #endif