|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.