let mk_global_c_enum_type name elements_l =
  let i = ref 0 in
   let einfo = {
    ename=name;
    eitems=[];
    eattr=[];
    ereferenced=true
   }
   in
   let l = List.map
     (fun e ->
        i:=!i+1;
        { einame = e;
          eival = mk_int_const(!i-1);
          eiloc = Cilutil.locUnknown;
          eihost = einfo})
     elements_l
  in
   einfo.eitems <- l;
   set_usedinfo name einfo;
   globals_queue:=GEnumTag(einfo,Cilutil.locUnknown)::(!globals_queue)