#include <lib.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int up(void)
{
  message m;
 
  if (_syscall(SS_PROC_NR, SS_UP, &m) < 0) return(-1);
  return 0;
}
 
int down(void)
{
  message m;
 
  if (_syscall(SS_PROC_NR, SS_DOWN, &m) < 0) return(-1);
  return 0;
}

int main(void)
{
        /* grazie al semaforo, il padre stampa sempre prima del figlio */
	int r=0;
        if (fork() > 0){
                /* padre */
                sleep(10);
                printf("Sono il padre\n");
		r = up();
		if (r<0) printf("Errore p:%d\n", r);
                return 0;
        } else {
                /* figlio */
		r = down();
		if (r<0) printf("Errore f:%d\n", r);
                printf("Sono il figlio\n");
                return 0;
        }
}
