# include <kernel/kernel.h>
private object driver; /* driver object has direct access to TLS */
/*
* NAME: create()
* DESCRIPTION: initialize API
*/
static void create()
{
driver = find_object(DRIVER);
}
/*
* NAME: get_tlvar()
* DESCRIPTION: get value of TLS variable
*/
static mixed get_tlvar(int index)
{
if (index < 0) {
error("Array index out of range");
}
return driver->get_tlvar(index);
}
/*
* NAME: set_tlvar()
* DESCRIPTION: set value of TLS variable
*/
static void set_tlvar(int index, mixed value)
{
if (index < 0) {
error("Array index out of range");
}
driver->set_tlvar(index, value);
}
/*
* NAME: set_tls_size()
* DESCRIPTION: set size of TLS storage
*/
static void set_tls_size(int size)
{
if (size < 0) {
error("TLS size must be >= 0");
}
driver->set_tls_size(size);
}