Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 316 → Rev 317

/shark/trunk/kernel/modules/hartport.c
20,11 → 20,11
 
/**
------------
CVS : $Id: hartport.c,v 1.3 2002-11-11 08:32:06 pj Exp $
CVS : $Id: hartport.c,v 1.4 2003-11-05 15:04:14 giacomo Exp $
 
File: $File$
Revision: $Revision: 1.3 $
Last update: $Date: 2002-11-11 08:32:06 $
Revision: $Revision: 1.4 $
Last update: $Date: 2003-11-05 15:04:14 $
------------
 
This file contains the Hartik 3.3.1 Port functions
175,16 → 175,17
static int getfreedes(void)
{
int p;
SYS_FLAGS f;
 
kern_cli();
f = kern_fsave();
if (freeportdes == NIL) {
errno = EPORT_NO_MORE_DESCR;
kern_sti();
kern_frestore(f);
return -1;
}
p = freeportdes;
freeportdes = port_des[p].next;
kern_sti();
kern_frestore(f);
return(p);
}
 
193,10 → 194,12
/*----------------------------------------------------------------------*/
static void ungetdes(int pd)
{
kern_cli();
SYS_FLAGS f;
 
f = kern_fsave();
port_des[pd].next = freeportdes;
freeportdes = pd;
kern_sti();
kern_frestore(f);
}
 
/*----------------------------------------------------------------------*/
205,16 → 208,16
static int getfreeint(void)
{
int p;
 
kern_cli();
SYS_FLAGS f;
f = kern_fsave();
if (freeportint == NIL) {
errno = EPORT_NO_MORE_INTERF;
kern_sti();
kern_frestore(f);
return -1;
}
p = freeportint;
freeportint = port_int[p].next;
kern_sti();
kern_frestore(f);
return(p);
}
 
223,10 → 226,12
/*----------------------------------------------------------------------*/
static void ungetint(int pi)
{
kern_cli();
SYS_FLAGS f;
 
f = kern_fsave();
port_int[pi].next = freeportint;
freeportint = pi;
kern_sti();
kern_frestore(f);
}
 
/*----------------------------------------------------------------------*/
240,6 → 245,7
int i, pd, pi;
WORD letti = 0;
BYTE flag = FALSE;
SYS_FLAGS f;
 
/*
Prendo un descrittore di porta.
303,9 → 309,9
if (type == STICK) port_des[pd].dim_block = dim_mes;
else port_des[pd].dim_block = dim_mes * num_mes;
 
kern_cli();
f = kern_fsave();
port_des[pd].mem_block = kern_alloc(port_des[pd].dim_block);
kern_sti();
kern_frestore(f);
if (port_des[pd].mem_block == NULL) {
errno = EPORT_2_CONNECT;
sem_post(&hash_mutex);
496,6 → 502,7
int i;
struct port_ker *pd;
struct port_com *pp;
SYS_FLAGS f;
 
pp = &port_int[pi];
sem_wait(&hash_mutex);
506,9 → 513,9
sem_destroy(&pd->pieno);
sem_destroy(&pd->vuoto);
kern_cli();
f = kern_fsave();
kern_free(pd->mem_block, pd->dim_block);
kern_sti();
kern_frestore(f);
 
ungetdes(htable[i].port_index);
pp->valid = FALSE;