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; |
} |
|