diff options
author | simokawa <simokawa@FreeBSD.org> | 2003-01-04 10:32:31 +0000 |
---|---|---|
committer | simokawa <simokawa@FreeBSD.org> | 2003-01-04 10:32:31 +0000 |
commit | f588520584c4c7e47c45be721a5670ee6691f9f6 (patch) | |
tree | 324f01bfea04475b4c32853de390bd22f30a5d30 /usr.sbin | |
parent | add68c49b8bbbd4fbacfa1989dbaa46bccfe6b67 (diff) | |
download | FreeBSD-src-f588520584c4c7e47c45be721a5670ee6691f9f6.zip FreeBSD-src-f588520584c4c7e47c45be721a5670ee6691f9f6.tar.gz |
- Handle zero sized directory right way.
- Staticize.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/fwcontrol/fwcontrol.c | 23 | ||||
-rw-r--r-- | usr.sbin/fwcontrol/fwcrom.c | 9 |
2 files changed, 20 insertions, 12 deletions
diff --git a/usr.sbin/fwcontrol/fwcontrol.c b/usr.sbin/fwcontrol/fwcontrol.c index 248188b..a7ed68c 100644 --- a/usr.sbin/fwcontrol/fwcontrol.c +++ b/usr.sbin/fwcontrol/fwcontrol.c @@ -50,7 +50,7 @@ #include <string.h> #include <unistd.h> -void +static void usage(void) { printf("fwcontrol [-g gap_count] [-b pri_req] [-c node]" @@ -66,7 +66,7 @@ usage(void) exit(0); } -void +static void get_num_of_dev(int fd, struct fw_devlstreq *data) { data->n = 64; @@ -75,7 +75,7 @@ get_num_of_dev(int fd, struct fw_devlstreq *data) } } -void +static void list_dev(int fd) { struct fw_devlstreq data; @@ -94,7 +94,7 @@ list_dev(int fd) } } -u_int32_t +static u_int32_t read_write_quad(int fd, struct fw_eui64 eui, u_int32_t addr_lo, int read, u_int32_t data) { struct fw_asyreq *asyreq; @@ -130,7 +130,8 @@ read_write_quad(int fd, struct fw_eui64 eui, u_int32_t addr_lo, int read, u_int3 else return 0; } -void + +static void send_phy_config(int fd, int root_node, int gap_count) { struct fw_asyreq *asyreq; @@ -155,7 +156,7 @@ send_phy_config(int fd, int root_node, int gap_count) } } -void +static void set_pri_req(int fd, int pri_req) { struct fw_devlstreq data; @@ -183,7 +184,8 @@ set_pri_req(int fd, int pri_req) } } -void parse_bus_info_block(u_int32_t *p, int info_len) +static void +parse_bus_info_block(u_int32_t *p, int info_len) { int i; @@ -192,7 +194,7 @@ void parse_bus_info_block(u_int32_t *p, int info_len) } } -int +static int get_crom(int fd, int node, void *crom_buf, int len) { struct fw_crom_buf buf; @@ -219,6 +221,7 @@ get_crom(int fd, int node, void *crom_buf, int len) return error; } +static void show_crom(u_int32_t *crom_buf) { int i; @@ -245,6 +248,8 @@ show_crom(u_int32_t *crom_buf) dir = cc.stack[0].dir; printf("root_directory: len=0x%04x(%d) crc=0x%04x\n", dir->crc_len, dir->crc_len, dir->crc); + if (dir->crc_len < 1) + return; while (cc.depth >= 0) { desc = crom_desc(&cc, info, sizeof(info)); reg = crom_get(&cc); @@ -261,6 +266,7 @@ show_crom(u_int32_t *crom_buf) #define DUMP_FORMAT "%08x %08x %08x %08x %08x %08x %08x %08x\n" +static void dump_crom(u_int32_t *p) { int len=1024, i; @@ -272,6 +278,7 @@ dump_crom(u_int32_t *p) } } +static void load_crom(char *filename, u_int32_t *p) { FILE *file; diff --git a/usr.sbin/fwcontrol/fwcrom.c b/usr.sbin/fwcontrol/fwcrom.c index 34e1674..d58be50 100644 --- a/usr.sbin/fwcontrol/fwcrom.c +++ b/usr.sbin/fwcontrol/fwcrom.c @@ -90,14 +90,15 @@ crom_next(struct crom_context *cc) cc->depth --; goto again; } - cc->stack[cc->depth].dir = (struct csrdirectory *) - (reg + reg->val); - cc->stack[cc->depth].index = 0; - return; + ptr = &cc->stack[cc->depth]; + ptr->dir = (struct csrdirectory *) (reg + reg->val); + ptr->index = 0; + goto check; } again: ptr = &cc->stack[cc->depth]; ptr->index ++; +check: if (ptr->index < ptr->dir->crc_len) return; if (cc->depth > 0) { |