Beispiel #1
0
list_element * _list_prev (list_element * elem)
{
   if (!elem || ! (elem = get_element (elem)->prev))
      return 0;

   return (list_element *) get_value_ptr (elem);
}
Beispiel #2
0
void _list_push_front (list_head ** p_list, size_t value_size, void * value)
{
   if (!*p_list)
      *p_list = (list_head *) calloc (sizeof (list_head), 1);

   list_head * list = *p_list;

   ++ list->length;

   list_element * elem = (list_element *)
       malloc (sizeof (*elem) + value_size);

   memset (elem, 0, sizeof (*elem));
   memcpy (get_value_ptr (elem), value, value_size);

   elem->list = list;
   elem->next = list->first;

   if (list->first)
   {
      list->first->prev = elem;
      list->first = elem;
   }
   else
   {
      list->first = list->last = elem;
   }
}
Beispiel #3
0
list_element * _list_next (list_element * elem)
{
   if (!elem || ! (elem = get_element (elem)->next))
      return 0;

   return (list_element *) get_value_ptr (elem);
}
Beispiel #4
0
static int set_value(void *self, const char *name, void *array) {
  void *dest = NULL;

  if (get_value_ptr(self, name, &dest) == BMI_FAILURE) {
    return BMI_FAILURE;
  } else {
    int nbytes = 0;
    return_on_error(get_var_nbytes(self, name, &nbytes));
    memcpy(dest, array, nbytes);
    return BMI_SUCCESS;
  }
}
Beispiel #5
0
static int get_value(void *self, const char *name, void *dest) {
  void *src = NULL;

  if (get_value_ptr(self, name, &src) == BMI_FAILURE) {
    return BMI_FAILURE;
  } else {
    int nbytes;
    return_on_error(get_var_nbytes(self, name, &nbytes));
    memcpy(dest, src, nbytes);
  }

  return BMI_SUCCESS;
}
Beispiel #6
0
list_element * _list_back (list_head * list)
{
   return list ? (list_element *) get_value_ptr (list->last) : 0;
}
Beispiel #7
0
list_element * _list_front (list_head * list)
{
   return list ? (list_element *) get_value_ptr (list->first) : 0;
}