| 
 | 
| 
  | netnode (nodeidx_t num=BADNODE) | 
|   | Constructor to create a netnode to access information about the specified linear address (possibly missing) 
  | 
|   | 
| 
  | operator nodeidx_t () const | 
|   | Conversion from netnode to a linear address. 
  | 
|   | 
|   | netnode (const char *_name, size_t namlen=0, bool do_create=false) | 
|   | Construct an instance of netnode class to access the specified netnode.  More...
  | 
|   | 
 | 
- Note
 - You can check if a netnode already exists with exist() 
  
 | 
| bool  | create (const char *_name, size_t namlen=0) | 
|   | Create a named netnode.  More...
  | 
|   | 
| bool  | create (void) | 
|   | Create unnamed netnode.  More...
  | 
|   | 
| 
void  | kill (void) | 
|   | Delete a netnode with all information attached to it. 
  | 
|   | 
 | 
| ssize_t  | get_name (qstring *buf) const | 
|   | Get the netnode name.  More...
  | 
|   | 
| bool  | rename (const char *newname, size_t namlen=0) | 
|   | Rename a netnode.  More...
  | 
|   | 
 | 
| ssize_t  | valobj (void *buf, size_t bufsize) const | 
|   | Get value of netnode.  More...
  | 
|   | 
| ssize_t  | valstr (qstring *buf) const | 
|   | Get string value of netnode.  More...
  | 
|   | 
| ssize_t  | valstr (char *buf, size_t bufsize) const | 
|   | 
| bool  | set (const void *value, size_t length=0) | 
|   | Set value of netnode.  More...
  | 
|   | 
| bool  | delvalue (void) | 
|   | Delete value of netnode.  More...
  | 
|   | 
| 
bool  | set_long (nodeidx_t x) | 
|   | Value of netnode as a long number: 
  | 
|   | 
| 
bool  | value_exists (void) const | 
|   | 
| 
nodeidx_t  | long_value (void) const | 
|   | 
 | 
altvals: a sparse array of 32-bit values. 
indexes in this array may be 8-bit or 32-bit values  
 | 
| nodeidx_t  | altval (nodeidx_t alt, uchar tag=atag) const | 
|   | Get altval element of the specified array.  More...
  | 
|   | 
| 
nodeidx_t  | altval_ea (ea_t ea, uchar tag=atag) const | 
|   | 
| bool  | altset (nodeidx_t alt, nodeidx_t value, uchar tag=atag) | 
|   | Set value of altval array.  More...
  | 
|   | 
| 
bool  | altset_ea (ea_t ea, nodeidx_t value, uchar tag=atag) | 
|   | 
| bool  | altdel (nodeidx_t alt, uchar tag=atag) | 
|   | Delete element of altval array.  More...
  | 
|   | 
| 
bool  | altdel_ea (ea_t ea, uchar tag=atag) | 
|   | 
| bool  | easet (ea_t ea, ea_t addr, uchar tag) | 
|   | Store/retrieve/delete an address value in the netnode that corresponds to an address.  More...
  | 
|   | 
| 
ea_t  | eaget (ea_t ea, uchar tag) const | 
|   | 
| 
bool  | eadel (ea_t ea, uchar tag) | 
|   | 
| 
bool  | easet_idx (nodeidx_t idx, ea_t addr, uchar tag) | 
|   | 
| 
ea_t  | eaget_idx (nodeidx_t idx, uchar tag) | 
|   | 
| 
bool  | easet_idx8 (uchar idx, ea_t addr, uchar tag) | 
|   | 
| 
ea_t  | eaget_idx8 (uchar idx, uchar tag) const | 
|   | 
| 
bool  | eadel_idx8 (uchar idx, uchar tag) | 
|   | 
| nodeidx_t  | altfirst (uchar tag=atag) const | 
|   | Get first existing element of altval array.  More...
  | 
|   | 
| nodeidx_t  | altnext (nodeidx_t cur, uchar tag=atag) const | 
|   | Get next existing element of altval array.  More...
  | 
|   | 
| nodeidx_t  | altlast (uchar tag=atag) const | 
|   | Get last element of altval array.  More...
  | 
|   | 
| nodeidx_t  | altprev (nodeidx_t cur, uchar tag=atag) const | 
|   | Get previous existing element of altval array.  More...
  | 
|   | 
| size_t  | altshift (nodeidx_t from, nodeidx_t to, nodeidx_t size, uchar tag=atag) | 
|   | Shift the altval array elements.  More...
  | 
|   | 
| void  | altadjust (nodeidx_t from, nodeidx_t to, nodeidx_t size, bool(idaapi *should_skip)(nodeidx_t ea)=nullptr) | 
|   | Adjust values of altval arrays elements.  More...
  | 
|   | 
| 
void  | altadjust2 (nodeidx_t from, nodeidx_t to, nodeidx_t size, altadjust_visitor_t &av) | 
|   | 
 | 
The following functions behave in the same manner as the functions described above. 
The only difference is that the array value is 8-bits. 
- index: 32 bits
 
- value: 8 bits 
 
 
 | 
| 
uchar  | charval (nodeidx_t alt, uchar tag) const | 
|   | 
| 
bool  | charset (nodeidx_t alt, uchar val, uchar tag) | 
|   | 
| 
bool  | chardel (nodeidx_t alt, uchar tag) | 
|   | 
| 
uchar  | charval_ea (ea_t ea, uchar tag) const | 
|   | 
| 
bool  | charset_ea (ea_t ea, uchar val, uchar tag) | 
|   | 
| 
bool  | chardel_ea (ea_t ea, uchar tag) | 
|   | 
| 
nodeidx_t  | charfirst (uchar tag) const | 
|   | 
| 
nodeidx_t  | charnext (nodeidx_t cur, uchar tag) const | 
|   | 
| 
nodeidx_t  | charlast (uchar tag) const | 
|   | 
| 
nodeidx_t  | charprev (nodeidx_t cur, uchar tag) const | 
|   | 
| 
size_t  | charshift (nodeidx_t from, nodeidx_t to, nodeidx_t size, uchar tag) | 
|   | 
 | 
Another set of functions to work with altvals. 
The only difference is that the array index is 8-bits, and therefore the array may contain up to 256 elements only. 
- index: 8 bits
 
- value: 32 bits 
 
 
 | 
| 
nodeidx_t  | altval_idx8 (uchar alt, uchar tag) const | 
|   | 
| 
bool  | altset_idx8 (uchar alt, nodeidx_t val, uchar tag) | 
|   | 
| 
bool  | altdel_idx8 (uchar alt, uchar tag) | 
|   | 
| 
nodeidx_t  | altfirst_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | altnext_idx8 (uchar cur, uchar tag) const | 
|   | 
| 
nodeidx_t  | altlast_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | altprev_idx8 (uchar cur, uchar tag) const | 
|   | 
 | 
Another set of functions to work with altvals. 
- index: 8 bits
 
- value: 8 bits 
 
 
 | 
| 
uchar  | charval_idx8 (uchar alt, uchar tag) const | 
|   | 
| 
bool  | charset_idx8 (uchar alt, uchar val, uchar tag) | 
|   | 
| 
bool  | chardel_idx8 (uchar alt, uchar tag) | 
|   | 
| 
nodeidx_t  | charfirst_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | charnext_idx8 (uchar cur, uchar tag) const | 
|   | 
| 
nodeidx_t  | charlast_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | charprev_idx8 (uchar cur, uchar tag) const | 
|   | 
 | 
- Note
 - To delete range of elements in an altval array, see supdel_range() 
  
 | 
| bool  | altdel (void) | 
|   | Delete all elements of altval array.  More...
  | 
|   | 
| bool  | altdel_all (uchar tag=atag) | 
|   | Delete all elements of the specified altval array.  More...
  | 
|   | 
 | 
supvals: an array of arbitrary sized objects. 
(size of each object is limited by MAXSPECSIZE). indexes in this array may be 8-bit or 32-bit values.  
 | 
| ssize_t  | supval (nodeidx_t alt, void *buf, size_t bufsize, uchar tag=stag) const | 
|   | Get value of the specified supval array element.  More...
  | 
|   | 
| 
ssize_t  | supval_ea (ea_t ea, void *buf, size_t bufsize, uchar tag=stag) const | 
|   | 
| ssize_t  | supstr (qstring *buf, nodeidx_t alt, uchar tag=stag) const | 
|   | Get string value of the specified supval array element.  More...
  | 
|   | 
| 
ssize_t  | supstr_ea (qstring *buf, ea_t ea, uchar tag=stag) const | 
|   | 
| ssize_t  | supstr (nodeidx_t alt, char *buf, size_t bufsize, uchar tag=stag) const | 
|   | 
| 
ssize_t  | supstr_ea (ea_t ea, char *buf, size_t bufsize, uchar tag=stag) const | 
|   | 
| bool  | supset (nodeidx_t alt, const void *value, size_t length=0, uchar tag=stag) | 
|   | Set value of supval array element.  More...
  | 
|   | 
| 
bool  | supset_ea (ea_t ea, const void *value, size_t length=0, uchar tag=stag) | 
|   | 
| bool  | supdel (nodeidx_t alt, uchar tag=stag) | 
|   | Delete supval element.  More...
  | 
|   | 
| 
bool  | supdel_ea (ea_t ea, uchar tag=stag) | 
|   | 
| nodeidx_t  | lower_bound (nodeidx_t cur, uchar tag=stag) const | 
|   | Get lower bound of existing elements of supval array.  More...
  | 
|   | 
| 
nodeidx_t  | lower_bound_ea (ea_t ea, uchar tag=stag) const | 
|   | 
| nodeidx_t  | supfirst (uchar tag=stag) const | 
|   | Get first existing element of supval array.  More...
  | 
|   | 
| nodeidx_t  | supnext (nodeidx_t cur, uchar tag=stag) const | 
|   | Get next existing element of supval array.  More...
  | 
|   | 
| nodeidx_t  | suplast (uchar tag=stag) const | 
|   | Get last existing element of supval array.  More...
  | 
|   | 
| nodeidx_t  | supprev (nodeidx_t cur, uchar tag=stag) const | 
|   | Get previous existing element of supval array.  More...
  | 
|   | 
| size_t  | supshift (nodeidx_t from, nodeidx_t to, nodeidx_t size, uchar tag=stag) | 
|   | Shift the supval array elements.  More...
  | 
|   | 
 | 
The following functions behave in the same manner as the functions described above. 
The only difference is that the array index is 8-bits and therefore the array may contains up to 256 elements only.  
 | 
| 
ssize_t  | supval_idx8 (uchar alt, void *buf, size_t bufsize, uchar tag) const | 
|   | 
| 
ssize_t  | supstr_idx8 (uchar alt, char *buf, size_t bufsize, uchar tag) const | 
|   | 
| 
ssize_t  | supstr_idx8 (qstring *buf, uchar alt, uchar tag) const | 
|   | 
| 
bool  | supset_idx8 (uchar alt, const void *value, size_t length, uchar tag) | 
|   | 
| 
bool  | supdel_idx8 (uchar alt, uchar tag) | 
|   | 
| 
nodeidx_t  | lower_bound_idx8 (uchar alt, uchar tag) const | 
|   | 
| 
nodeidx_t  | supfirst_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | supnext_idx8 (uchar alt, uchar tag) const | 
|   | 
| 
nodeidx_t  | suplast_idx8 (uchar tag) const | 
|   | 
| 
nodeidx_t  | supprev_idx8 (uchar alt, uchar tag) const | 
|   | 
 | 
| bool  | supdel (void) | 
|   | Delete all elements of supval array.  More...
  | 
|   | 
| bool  | supdel_all (uchar tag) | 
|   | Delete all elements of the specified supval array.  More...
  | 
|   | 
| int  | supdel_range (nodeidx_t idx1, nodeidx_t idx2, uchar tag) | 
|   | Delete range of elements in the specified supval array.  More...
  | 
|   | 
| 
int  | supdel_range_idx8 (uchar idx1, uchar idx2, uchar tag) | 
|   | Same as above, but accepts 8-bit indexes. 
  | 
|   | 
 | 
Associative arrays indexed by strings. 
hashvals: Indexes in this array are strings. Values are arbitrary sized (max size is MAXSPECSIZE)  
 | 
| ssize_t  | hashval (const char *idx, void *buf, size_t bufsize, uchar tag=htag) const | 
|   | Get value of the specified hash element.  More...
  | 
|   | 
| 
ssize_t  | hashstr (qstring *buf, const char *idx, uchar tag=htag) const | 
|   | Similar to supstr(), but accepts a hash index. 
  | 
|   | 
| ssize_t  | hashstr (const char *idx, char *buf, size_t bufsize, uchar tag=htag) const | 
|   | 
| nodeidx_t  | hashval_long (const char *idx, uchar tag=htag) const | 
|   | Get value of the specified hash element.  More...
  | 
|   | 
| bool  | hashset (const char *idx, const void *value, size_t length=0, uchar tag=htag) | 
|   | Set value of hash element.  More...
  | 
|   | 
| bool  | hashset (const char *idx, nodeidx_t value, uchar tag=htag) | 
|   | Set value of hash element to long value.  More...
  | 
|   | 
| bool  | hashdel (const char *idx, uchar tag=htag) | 
|   | Delete hash element.  More...
  | 
|   | 
| ssize_t  | hashfirst (qstring *buf, uchar tag=htag) const | 
|   | Get first existing element of hash.  More...
  | 
|   | 
| ssize_t  | hashfirst (char *buf, size_t bufsize, uchar tag=htag) const | 
|   | 
| ssize_t  | hashnext (qstring *buf, const char *idx, uchar tag=htag) const | 
|   | Get next existing element of hash.  More...
  | 
|   | 
| ssize_t  | hashnext (const char *idx, char *buf, size_t bufsize, uchar tag=htag) const | 
|   | 
| ssize_t  | hashlast (qstring *buf, uchar tag=htag) const | 
|   | Get last existing element of hash.  More...
  | 
|   | 
| ssize_t  | hashlast (char *buf, size_t bufsize, uchar tag=htag) const | 
|   | 
| ssize_t  | hashprev (qstring *buf, const char *idx, uchar tag=htag) const | 
|   | Get previous existing element of supval array.  More...
  | 
|   | 
| ssize_t  | hashprev (const char *idx, char *buf, size_t bufsize, uchar tag=htag) const | 
|   | 
| bool  | hashdel_all (uchar tag=htag) | 
|   | Delete all elements of hash.  More...
  | 
|   | 
 | 
Virtually unlimited size binary objects. 
Blobs are stored in several supval array elements.  
 | 
| size_t  | blobsize (nodeidx_t _start, uchar tag) | 
|   | Get size of blob.  More...
  | 
|   | 
| 
size_t  | blobsize_ea (ea_t ea, uchar tag) | 
|   | 
| void *  | getblob (void *buf, size_t *bufsize, nodeidx_t _start, uchar tag) | 
|   | Get blob from a netnode.  More...
  | 
|   | 
| 
void *  | getblob_ea (void *buf, size_t *bufsize, ea_t ea, uchar tag) | 
|   | 
| template<class T >  | 
| ssize_t  | getblob (qvector< T > *blob, nodeidx_t _start, uchar tag) | 
|   | Get blob from a netnode.  More...
  | 
|   | 
| 
template<class T >  | 
| ssize_t  | getblob_ea (qvector< T > *blob, ea_t ea, uchar tag) | 
|   | 
| ssize_t  | getblob (qstring *buf, nodeidx_t _start, uchar tag) | 
|   | Get blob from a netnode into a qstring* and make sure the string is null-terminated.  More...
  | 
|   | 
| bool  | setblob (const void *buf, size_t size, nodeidx_t _start, uchar tag) | 
|   | Store a blob in a netnode.  More...
  | 
|   | 
| 
bool  | setblob_ea (const void *buf, size_t size, ea_t ea, uchar tag) | 
|   | 
| int  | delblob (nodeidx_t _start, uchar tag) | 
|   | Delete a blob.  More...
  | 
|   | 
| 
int  | delblob_ea (ea_t ea, uchar tag) | 
|   | 
| size_t  | blobshift (nodeidx_t from, nodeidx_t to, nodeidx_t size, uchar tag) | 
|   | Shift the blob array elements.  More...
  | 
|   | 
 | 
| bool  | start (void) | 
|   | Get first netnode in the graph.  More...
  | 
|   | 
| bool  | end (void) | 
|   | Get last netnode in the graph.  More...
  | 
|   | 
| bool  | next (void) | 
|   | Get next netnode in the graph.  More...
  | 
|   | 
| bool  | prev (void) | 
|   | Get prev netnode in the graph.  More...
  | 
|   | 
 | 
- Parameters
 - 
  
    | destnode | the destination netnode  |  
    | count | how many netnodes to copy  |  
   
   
 
- Returns
 - number of copied/moved keys, BADNODE if failure or not enough memory 
  
 | 
| 
size_t  | copyto (netnode destnode, nodeidx_t count=1) | 
|   | 
| 
size_t  | moveto (netnode destnode, nodeidx_t count=1) | 
|   | 
 | 
| 
bool  | operator== (netnode &n) const | 
|   | 
| 
bool  | operator!= (netnode &n) const | 
|   | 
| 
bool  | operator== (nodeidx_t x) const | 
|   | 
| 
bool  | operator!= (nodeidx_t x) const | 
|   |