Hi,
here my first crude version for the prototypes for doubly-linked list and hash table.
I tried some simple things and it seemed to work. I haven't tested every prototype/procedure yet.
      *---------------------------------------------------------------
      * GLib Doubly-Linked List Prototypes
      *---------------------------------------------------------------
     D g_list_alloc    PR              *   extproc('g_list_alloc')
      *
     D g_list_append   PR              *   extproc('g_list_append')
     D   list                          *   value
     D   data                          *   value
      *
     D g_list_concat   PR              *   extproc('g_list_concat')
     D   list1                         *   value
     D   list2                         *   value
      *
     D g_list_copy     PR              *   extproc('g_list_copy')
     D   list                          *   value
      *
     D g_list_find     PR              *   extproc('g_list_find')
     D   list                          *   value
     D   data                          *   value
      *
     D g_list_find_custom...
     D                 PR              *   extproc('g_list_find_custom')
     D   list                          *   value
     D   data                          *   value
     D   proc                          *   procptr value
      *
     D g_list_first    PR              *   extproc('g_list_first')
     D   list                          *   value
      *
     D g_list_foreach...
     D                 PR                  extproc('g_list_foreach')
     D   list                          *   value
     D   proc                          *   procptr value
     D   userdata                      *   value
      *
     D g_list_free     PR                  extproc('g_list_free')
     D   list                          *   value
      *
     D g_list_free_1   PR                  extproc('g_list_free_1')
     D   list                          *   value
      *
     D g_list_index    PR            10I 0 extproc('g_list_index')
     D   list                          *   value
     D   data                          *   value
      *
     D g_list_insert   PR              *   extproc('g_list_insert')
     D   list                          *   value
     D   data                          *   value
     D   position                    10I 0 value
      *
     D g_list_insert_sorted...
     D                 PR              *   extproc('g_list_insert_sorted')
     D   list                          *   value
     D   data                          *   value
     D   compareProc                   *   procptr value
      *
     D g_list_last     PR              *   extproc('g_list_last')
     D   list                          *   value
      *
     D g_list_length   PR            10U 0 extproc('g_list_length')
     D   list                          *   value
      *
     D g_list_nth      PR              *   extproc('g_list_nth')
     D   list                          *   value
     D   n                           10U 0 value
      *
     D g_list_nth_data...
     D                 PR              *   extproc('g_list_nth_data')
     D   list                          *   value
     D   n                           10U 0 value
      *
     D g_list_pop_allocator...
     D                 PR                  extproc('g_list_pop_allocator')
      *
     D g_list_position...
     D                 PR            10I 0 extproc('g_list_position')
     D   list                          *   value
     D   link                          *   value
      *
     D g_list_prepend  PR              *   extproc('g_list_prepend')
     D   list                          *   value
     D   data                          *   value
      *
     D g_list_push_allocator...
     D                 PR                  extproc('g_list_push_allocator')
     D   allocator                     *   value
      *
     D g_list_remove   PR              *   extproc('g_list_remove')
     D   list                          *   value
     D   data                          *   value
      *
     D g_list_remove_link...
     D                 PR              *   extproc('g_list_remove_link')
     D   list                          *   value
     D   link                          *   value
      *
     D g_list_reverse  PR              *   extproc('g_list_reverse')
     D   list                          *   value
      *
     D g_list_sort     PR              *   extproc('g_list_sort')
     D   list                          *   value
     D   compareProc                   *   procptr value
      *
      * no documentation found for procedure sort2
      *
     D*g_list_sort2    PR              *   extproc('g_list_sort2')
     D*  list                          *   value
     D*  compareProc                   *   procPtr
     D*  userdata                      *   value
      *---------------------------------------------------------------
      * GLib Hash Table Prototypes
      *---------------------------------------------------------------
     D g_hash_table_destroy...
     D                 PR                  extproc('g_hash_table_destroy')
     D   htable                        *   value
      *
     D g_hash_table_foreach...
     D                 PR            10I 0 extproc('g_hash_table_foreach')
     D   htable                        *   value
     D   proc                          *   procptr value
     D   userdata                      *   value
      *
     D g_hash_table_foreach_remove...
     D                 PR            10U 0 extproc('g_hash_table_foreach_remove-
     D                                     ')
     D   htable                        *   value
     D   proc                          *   procptr value
     D   userdata                      *   value
      *
      * no documentation found for procedure freeze
      *
     D*g_hash_table_freeze...
     D*                PR                  extproc('g_hash_table_freeze')
     D*  htable                        *   value
      *
     D g_hash_table_insert...
     D                 PR                  extproc('g_hash_table_insert')
     D   htable                        *   value
     D   key                           *   value
     D   data                          *   value
      *
     D g_hash_table_lookup...
     D                 PR              *   extproc('g_hash_table_lookup')
     D   htable                        *   value
     D   key                           *   value
      *
     D g_hash_table_lookup_extended...
     D                 PR            10I 0 extproc('g_hash_table_lookup_extende-
     D                                     d')
     D   htable                        *   value
     D   key                           *   value
     D   value                         *   value
      *
     D g_hash_table_new...
     D                 PR              *   extproc('g_hash_table_new')
     D   hashProc                      *   procptr value
     D   equalProc                     *   procptr value
      *
     D g_hash_table_remove...
     D                 PR            10I 0 extproc('g_hash_table_remove')
     D   htable                        *   value
     D   key                           *   value
      *
     D g_hash_table_size...
     D                 PR            10U 0 extproc('g_hash_table_size')
     D   htable                        *   value
      *
      * no documentation found for procedure thaw
      *
     D*g_hash_table_thaw...
     D*                PR                  extproc('g_hash_table_thaw')
     D*  htable                        *   value
  
-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von Scott Klement
Gesendet: Donnerstag, 27. März 2008 23:51
An: Midrange Systems Technical Discussion
Betreff: Re: GLib library for iSeries
Hi Mihael,
I thought the same thing...  but I never found an include file (a copy 
book for C programmers) with the prototypes, etc, for the GLIB service 
program, so I never sat down and tried to use it from RPG.
I suppose I could go find the original glib.h on the web somewhere and 
assume that IBM didn't change the prototypes...   but I never really got 
around to looking further...
Schmidt, Mihael wrote:
Hello,
i just noticed that there is a port of the glib c-library to the
iSeries. Does anybody has any experience (good or bad) with the
library on the iSeries (and perhaps with its usage in RPG).
The library can be downloaded here: 
http://www-03.ibm.com/servers/enable/site/porting/iseries/overview/gnu_utilities.html
One thing that leaves me uncertain is the version of the library ,
1.2.2. That is a bit outdated. The current version is 2.16.1 afaik.
As an Amazon Associate we earn from qualifying purchases.