Annotation of cf/cisco_eeprom.h, revision 1.1.1.4

1.1       root        1: /*  
1.1.1.3   root        2:  * Cisco router simulation platform.
1.1       root        3:  * Copyright (c) 2006 Christophe Fillot.  All rights reserved.
                      4:  *
                      5:  * Cisco EEPROM manipulation functions.
                      6:  */
                      7: 
                      8: #ifndef __CISCO_EEPROM_H__
                      9: #define __CISCO_EEPROM_H__
                     10: 
                     11: #include "utils.h"
                     12: 
1.1.1.2   root       13: /* Cisco EEPROM */
                     14: struct cisco_eeprom {
                     15:    char *name;
                     16:    m_uint16_t *data;
                     17:    size_t len;
                     18: };
                     19: 
                     20: /* Find a NM EEPROM */
                     21: const struct cisco_eeprom *cisco_eeprom_find_nm(char *name);
                     22: 
                     23: /* Find a PA EEPROM */
                     24: const struct cisco_eeprom *cisco_eeprom_find_pa(char *name);
                     25: 
1.1.1.4 ! root       26: /* Find a WIC EEPROM */
        !            27: const struct cisco_eeprom *cisco_eeprom_find_wic(char *name);
        !            28: 
        !            29: /* Find a C6k EEPROM */
        !            30: const struct cisco_eeprom *cisco_eeprom_find_c6k(char *name);
        !            31: 
1.1.1.2   root       32: /* Find an EEPROM in the specified EEPROM array */
                     33: const struct cisco_eeprom *
                     34: cisco_eeprom_find(const struct cisco_eeprom *eeproms,char *name);
                     35: 
                     36: /* Copy an EEPROM */
                     37: int cisco_eeprom_copy(struct cisco_eeprom *dst,const struct cisco_eeprom *src);
                     38: 
                     39: /* Free resources used by an EEPROM */
                     40: void cisco_eeprom_free(struct cisco_eeprom *eeprom);
                     41: 
                     42: /* Return TRUE if the specified EEPROM contains usable data */
                     43: int cisco_eeprom_valid(struct cisco_eeprom *eeprom);
                     44: 
1.1       root       45: /* Get a byte from an EEPROM */
1.1.1.2   root       46: int cisco_eeprom_get_byte(struct cisco_eeprom *eeprom,
1.1       root       47:                           size_t offset,m_uint8_t *val);
                     48: 
                     49: /* Set a byte to an EEPROM */
1.1.1.2   root       50: int cisco_eeprom_set_byte(struct cisco_eeprom *eeprom,
1.1       root       51:                           size_t offset,m_uint8_t val);
                     52: 
                     53: /* Get an EEPROM region */
1.1.1.2   root       54: int cisco_eeprom_get_region(struct cisco_eeprom *eeprom,size_t offset,
                     55:                             m_uint8_t *data,size_t data_len);
1.1       root       56: 
                     57: /* Set an EEPROM region */
1.1.1.2   root       58: int cisco_eeprom_set_region(struct cisco_eeprom *eeprom,size_t offset,
                     59:                             m_uint8_t *data,size_t data_len);
                     60: 
                     61: /* Get a field of a Cisco EEPROM v4 */
                     62: int cisco_eeprom_v4_get_field(struct cisco_eeprom *eeprom,m_uint8_t *type,
                     63:                               m_uint8_t *len,size_t *offset);
1.1       root       64: 
                     65: /* Dump a Cisco EEPROM with format version 4 */
1.1.1.2   root       66: void cisco_eeprom_v4_dump(struct cisco_eeprom *eeprom);
1.1       root       67: 
                     68: /* Returns the offset of the specified field */
1.1.1.2   root       69: int cisco_eeprom_v4_find_field(struct cisco_eeprom *eeprom,
                     70:                                m_uint8_t field_type,
                     71:                                size_t *field_offset);
1.1       root       72: 
                     73: #endif
                     74: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.