From 0b7944b984081b4fb9d90e88f975ab9d1da611b9 Mon Sep 17 00:00:00 2001
From: David Moreau <david.moreau@thalesaleniaspace.com>
Date: Fri, 19 Jul 2013 16:22:36 +0200
Subject: [PATCH 4/5] Fix: Add templates for uint64_t values in table

---
 tmpl/bb.yaml |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 deletions(-)

diff --git a/tmpl/bb.yaml b/tmpl/bb.yaml
index af90475..8d911a2 100644
--- a/tmpl/bb.yaml
+++ b/tmpl/bb.yaml
@@ -19,6 +19,7 @@ table_setter_int: |+
           bb_unlock(bb_<%= bbname %>);
   }
 
+
 table_getter_int_decl: |+
   int get_<%= name %>(int idx);
 
@@ -38,6 +39,7 @@ table_getter_int: |+
           return i;
   }
 
+
 table_getter_int_pointer_decl: |+
   <%= real_type %> *get_<%= name %>_P(int idx);
 
@@ -48,6 +50,52 @@ table_getter_int_pointer: |+
     return c;
   }
 
+table_setter_uint64_t_decl: |+
+  void set_<%= name %>(int idx, uint64_t value);
+
+table_setter_uint64_t: |+
+  void set_<%= name %>(int idx, uint64_t value) {
+          if ((idx < get_<%= table_name %>Min()) ||
+              (idx > get_<%= table_name %>Max())) {
+  #ifdef __DEBUG__
+                  printf (stderr, "%s: wrong idx %d\n", __func__, idx);
+  #endif
+                  return ;
+          }
+          bb_lock(bb_<%= bbname %>);
+          <%= bbname %>-><%= table_name %>[idx].<%= name %> = value;
+          bb_unlock(bb_<%= bbname %>);
+  }
+
+table_getter_uint64_t_decl: |+
+  uint64_t get_<%= name %>(int idx);
+
+table_getter_uint64_t: |
+  uint64_t get_<%= name %>(int idx) {
+          uint64_t i;
+          if ((idx < get_<%= table_name %>Min()) ||
+              (idx > get_<%= table_name %>Max())) {
+  #ifdef __DEBUG__
+                  printf (stderr, "%s: wrong idx %d\n", __func__, idx);
+  #endif
+                  return 0 ;
+          }
+          bb_lock(bb_<%= bbname %>);
+          i = <%= bbname %>-><%= table_name %>[idx].<%= name %>;
+          bb_unlock(bb_<%= bbname %>);
+          return i;
+  }
+
+table_getter_uint64_t_pointer_decl: |+
+  <%= real_type %> *get_<%= name %>_P(int idx);
+
+table_getter_uint64_t_pointer: |+
+  <%= real_type %> *get_<%= name %>_P(int idx) {
+    <%= real_type %> *c;
+    c = &<%= bbname %>-><%= table_name %>[idx].<%= name %>;
+    return c;
+  }
+
 table_setter_counter32_decl: |+
   void set_<%= name %>(int idx, unsigned int value);
 
-- 
1.7.1

