diff options
Diffstat (limited to 'gas/sb.h')
-rw-r--r-- | gas/sb.h | 46 |
1 files changed, 24 insertions, 22 deletions
@@ -28,7 +28,7 @@ #include <stdio.h> #include "ansidecl.h" -/* string blocks +/* String blocks I had a couple of choices when deciding upon this data structure. gas uses null terminated strings for all its internal work. This @@ -46,35 +46,37 @@ An sb is allocated by the caller, and is initialized to point to an sb_element. sb_elements are kept on a free lists, and used when - needed, replaced onto the free list when unused. - */ + needed, replaced onto the free list when unused. */ + +#define sb_max_power_two 30 /* Don't allow strings more than + 2^sb_max_power_two long. */ -#define sb_max_power_two 30 /* don't allow strings more than - 2^sb_max_power_two long */ -/* structure of an sb */ typedef struct sb - { - char *ptr; /* points to the current block. */ - int len; /* how much is used. */ - int pot; /* the maximum length is 1<<pot */ - struct le *item; - } +{ + char *ptr; /* Points to the current block. */ + int len; /* How much is used. */ + int pot; /* The maximum length is 1<<pot. */ + struct le *item; +} sb; -/* Structure of the free list object of an sb */ +/* Structure of the free list object of a string block. */ + typedef struct le - { - struct le *next; - int size; - char data[1]; - } +{ + struct le *next; + int size; + char data[1]; +} sb_element; -/* The free list */ +/* The free list. */ + typedef struct - { - sb_element *size[sb_max_power_two]; - } sb_list_vector; +{ + sb_element *size[sb_max_power_two]; +} +sb_list_vector; extern void sb_new (sb *); extern void sb_kill (sb *); |