Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 3 → Rev 318

/shark/trunk/kernel/keys.c
19,11 → 19,11
 
/**
------------
CVS : $Id: keys.c,v 1.1.1.1 2002-03-29 14:12:52 pj Exp $
CVS : $Id: keys.c,v 1.2 2003-11-05 15:05:11 giacomo Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:52 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-11-05 15:05:11 $
------------
 
task_specific data
127,11 → 127,12
int task_key_create(task_key_t *key, void (*d)(void *))
{
PID p;
SYS_FLAGS f;
 
kern_cli();
f = kern_fsave();
 
if (freekey == -1) {
kern_sti();
kern_frestore(f);
return (EAGAIN);
}
 
147,7 → 148,7
for (p=0; p<MAX_PROC; p++)
proc_table[p].keys[*key] = NULL;
 
kern_sti();
kern_frestore(f);
return 0;
}
 
158,10 → 159,11
void *task_getspecific(task_key_t key)
{
void *ret;
SYS_FLAGS f;
 
kern_cli();
f = kern_fsave();
ret = proc_table[exec_shadow].keys[key];
kern_sti();
kern_frestore(f);
 
return ret;
}
168,13 → 170,15
 
int task_setspecific(task_key_t key, const void *value)
{
kern_cli();
SYS_FLAGS f;
 
f = kern_fsave();
if (key < 0 || key >= PTHREAD_KEYS_MAX || !key_data[key].used) {
kern_sti();
kern_frestore(f);
return (EINVAL);
}
proc_table[exec_shadow].keys[key] = (void *)value;
kern_sti();
kern_frestore(f);
return 0;
}