diff options
Diffstat (limited to 'sys/boot/uboot/lib')
-rw-r--r-- | sys/boot/uboot/lib/console.c | 5 | ||||
-rw-r--r-- | sys/boot/uboot/lib/copy.c | 3 | ||||
-rw-r--r-- | sys/boot/uboot/lib/glue.c | 103 | ||||
-rw-r--r-- | sys/boot/uboot/lib/libuboot.h | 22 | ||||
-rw-r--r-- | sys/boot/uboot/lib/net.c | 34 | ||||
-rw-r--r-- | sys/boot/uboot/lib/time.c | 2 |
6 files changed, 90 insertions, 79 deletions
diff --git a/sys/boot/uboot/lib/console.c b/sys/boot/uboot/lib/console.c index f6e626d..edc3c31 100644 --- a/sys/boot/uboot/lib/console.c +++ b/sys/boot/uboot/lib/console.c @@ -52,18 +52,21 @@ struct console uboot_console = { static void uboot_cons_probe(struct console *cp) { + cp->c_flags |= (C_PRESENTIN | C_PRESENTOUT); } static int uboot_cons_init(int arg) { + return 0; } static void uboot_cons_putchar(int c) { + if (c == '\n') ub_putc('\r'); @@ -73,11 +76,13 @@ uboot_cons_putchar(int c) static int uboot_cons_getchar() { + return (ub_getc()); } static int uboot_cons_poll() { + return (ub_tstc()); } diff --git a/sys/boot/uboot/lib/copy.c b/sys/boot/uboot/lib/copy.c index 88b4f81..bc5f1a4 100644 --- a/sys/boot/uboot/lib/copy.c +++ b/sys/boot/uboot/lib/copy.c @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); ssize_t uboot_copyin(const void *src, vm_offset_t dest, const size_t len) { + bcopy(src, (void *)dest, len); return (len); } @@ -46,6 +47,7 @@ uboot_copyin(const void *src, vm_offset_t dest, const size_t len) ssize_t uboot_copyout(const vm_offset_t src, void *dest, const size_t len) { + bcopy((void *)src, dest, len); return (len); } @@ -53,5 +55,6 @@ uboot_copyout(const vm_offset_t src, void *dest, const size_t len) ssize_t uboot_readin(const int fd, vm_offset_t dest, const size_t len) { + return (read(fd, (void *) dest, len)); } diff --git a/sys/boot/uboot/lib/glue.c b/sys/boot/uboot/lib/glue.c index f7d9e32..6ba01ab 100644 --- a/sys/boot/uboot/lib/glue.c +++ b/sys/boot/uboot/lib/glue.c @@ -112,7 +112,7 @@ static int valid_sig(struct api_signature *sig) struct api_signature s; if (sig == NULL) - return 0; + return (0); /* * Clear the checksum field (in the local copy) so as to calculate the * CRC with the same initial contents as at the time when the sig was @@ -124,9 +124,9 @@ static int valid_sig(struct api_signature *sig) checksum = crc32((void *)&s, sizeof(struct api_signature)); if (checksum != sig->checksum) - return 0; + return (0); - return 1; + return (1); } /* @@ -139,7 +139,7 @@ int api_search_sig(struct api_signature **sig) { unsigned char *sp, *spend; if (sig == NULL) - return 0; + return (0); if (uboot_address == 0) uboot_address = 255 * 1024 * 1024; @@ -150,13 +150,13 @@ int api_search_sig(struct api_signature **sig) { if (!bcmp(sp, API_SIG_MAGIC, API_SIG_MAGLEN)) { *sig = (struct api_signature *)sp; if (valid_sig(*sig)) - return 1; + return (1); } sp += API_SIG_MAGLEN; } *sig = NULL; - return 0; + return (0); } /**************************************** @@ -170,8 +170,8 @@ int ub_getc(void) int c; if (!syscall(API_GETC, NULL, (uint32_t)&c)) - return -1; - + return (-1); + return c; } @@ -180,7 +180,7 @@ int ub_tstc(void) int t; if (!syscall(API_TSTC, NULL, (uint32_t)&t)) - return -1; + return (-1); return t; } @@ -221,7 +221,7 @@ struct sys_info * ub_get_sys_info(void) memset(&mr, 0, sizeof(mr)); if (!syscall(API_GET_SYS_INFO, &err, (u_int32_t)&si)) - return NULL; + return (NULL); return ((err) ? NULL : &si); } @@ -232,9 +232,10 @@ struct sys_info * ub_get_sys_info(void) * timing * ****************************************/ - + void ub_udelay(unsigned long usec) { + syscall(API_UDELAY, NULL, &usec); } @@ -243,9 +244,9 @@ unsigned long ub_get_timer(unsigned long base) unsigned long cur; if (!syscall(API_GET_TIMER, NULL, &cur, &base)) - return 0; + return (0); - return cur; + return (cur); } @@ -281,7 +282,7 @@ int ub_dev_enum(void) di = &devices[0]; if (!syscall(API_DEV_ENUM, NULL, di)) - return 0; + return (0); while (di->cookie != NULL) { @@ -296,9 +297,9 @@ int ub_dev_enum(void) if (!syscall(API_DEV_ENUM, NULL, di)) return 0; - } + } - return n; + return (n); } @@ -313,13 +314,13 @@ int ub_dev_open(int handle) int err = 0; if (handle < 0 || handle >= MAX_DEVS) - return API_EINVAL; + return (API_EINVAL); di = &devices[handle]; if (!syscall(API_DEV_OPEN, &err, di)) - return -1; + return (-1); - return err; + return (err); } int ub_dev_close(int handle) @@ -327,13 +328,13 @@ int ub_dev_close(int handle) struct device_info *di; if (handle < 0 || handle >= MAX_DEVS) - return API_EINVAL; + return (API_EINVAL); di = &devices[handle]; if (!syscall(API_DEV_CLOSE, NULL, di)) - return -1; + return (-1); - return 0; + return (0); } /* @@ -346,24 +347,26 @@ int ub_dev_close(int handle) */ static int dev_valid(int handle) { + if (handle < 0 || handle >= MAX_DEVS) - return 0; + return (0); if (devices[handle].state != DEV_STA_OPEN) - return 0; + return (0); - return 1; + return (1); } static int dev_stor_valid(int handle) { + if (!dev_valid(handle)) - return 0; + return (0); if (!(devices[handle].type & DEV_TYP_STOR)) - return 0; + return (0); - return 1; + return (1); } int ub_dev_read(int handle, void *buf, lbasize_t len, lbastart_t start) @@ -373,30 +376,31 @@ int ub_dev_read(int handle, void *buf, lbasize_t len, lbastart_t start) int err = 0; if (!dev_stor_valid(handle)) - return API_ENODEV; + return (API_ENODEV); di = &devices[handle]; if (!syscall(API_DEV_READ, &err, di, buf, &len, &start, &act_len)) - return -1; + return (-1); - if (err) - return err; + if (err) + return (err); if (act_len != len) - return API_EIO; + return (API_EIO); - return 0; + return (0); } static int dev_net_valid(int handle) { + if (!dev_valid(handle)) - return 0; + return (0); if (devices[handle].type != DEV_TYP_NET) - return 0; + return (0); - return 1; + return (1); } int ub_dev_recv(int handle, void *buf, int len) @@ -405,16 +409,16 @@ int ub_dev_recv(int handle, void *buf, int len) int err = 0, act_len; if (!dev_net_valid(handle)) - return API_ENODEV; + return (API_ENODEV); di = &devices[handle]; if (!syscall(API_DEV_READ, &err, di, buf, &len, &act_len)) - return -1; + return (-1); if (err) - return -1; + return (-1); - return act_len; + return (act_len); } int ub_dev_send(int handle, void *buf, int len) @@ -423,13 +427,13 @@ int ub_dev_send(int handle, void *buf, int len) int err = 0; if (!dev_net_valid(handle)) - return API_ENODEV; + return (API_ENODEV); di = &devices[handle]; if (!syscall(API_DEV_WRITE, &err, di, buf, &len)) - return -1; + return (-1); - return err; + return (err); } /**************************************** @@ -443,13 +447,14 @@ char * ub_env_get(const char *name) char *value; if (!syscall(API_ENV_GET, NULL, (uint32_t)name, (uint32_t)&value)) - return NULL; + return (NULL); - return value; + return (value); } void ub_env_set(const char *name, char *value) { + syscall(API_ENV_SET, NULL, (uint32_t)name, (uint32_t)value); } @@ -469,11 +474,11 @@ const char * ub_env_enum(const char *last) * internally, which handles such case */ if (!syscall(API_ENV_ENUM, NULL, (uint32_t)last, (uint32_t)&env)) - return NULL; + return (NULL); if (!env) /* no more env. variables to enumerate */ - return NULL; + return (NULL); #if 0 if (last && strncmp(env, last, strlen(last)) == 0); /* error, trying to enumerate non existing env. variable */ @@ -487,5 +492,5 @@ const char * ub_env_enum(const char *last) env_name[i] = '\0'; - return env_name; + return (env_name); } diff --git a/sys/boot/uboot/lib/libuboot.h b/sys/boot/uboot/lib/libuboot.h index d8762b0..771b7ce 100644 --- a/sys/boot/uboot/lib/libuboot.h +++ b/sys/boot/uboot/lib/libuboot.h @@ -34,18 +34,16 @@ */ struct uboot_devdesc { - struct devsw *d_dev; - int d_type; - int d_unit; - union - { - struct - { - void *data; - int slice; - int partition; - } disk; - } d_kind; + struct devsw *d_dev; + int d_type; + int d_unit; + union { + struct { + void *data; + int slice; + int partition; + } disk; + } d_kind; }; /* diff --git a/sys/boot/uboot/lib/net.c b/sys/boot/uboot/lib/net.c index 88021c8..92d9a54 100644 --- a/sys/boot/uboot/lib/net.c +++ b/sys/boot/uboot/lib/net.c @@ -98,10 +98,10 @@ net_match(struct netif *nif, void *machdep_hint) char **a = (char **)machdep_hint; if (memcmp("net", *a, 3) == 0) - return 1; - + return (1); + printf("net_match: could not match network device\n"); - return 0; + return (0); } static int @@ -116,16 +116,16 @@ net_probe(struct netif *nif, void *machdep_hint) break; if (i == devs_no) { printf("net_probe: no network devices found, maybe not\ - enumerated yet..?\n"); - return -1; + enumerated yet..?\n"); + return (-1); } #if defined(NETIF_DEBUG) printf("net_probe: network device found: %d\n", i); #endif uboot_softc.sc_handle = i; - - return 0; + + return (0); } static int @@ -164,7 +164,7 @@ net_put(struct iodesc *desc, void *pkt, size_t len) else rv = -1; - return rv; + return (rv); } static int @@ -177,8 +177,7 @@ net_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout) int length; #if defined(NETIF_DEBUG) - printf("net_get: pkt %x, len %d, timeout %d\n", pkt, len, - timeout); + printf("net_get: pkt %x, len %d, timeout %d\n", pkt, len, timeout); #endif t = getsecs(); @@ -198,10 +197,10 @@ net_get(struct iodesc *desc, void *pkt, size_t len, time_t timeout) printf("net_get: len %x, length %x\n", len, length); #endif } - return length; + return (length); } - return -1; + return (-1); } @@ -217,26 +216,25 @@ net_init(struct iodesc *desc, void *machdep_hint) if (err = ub_dev_open(sc->sc_handle)) panic("%s%d: initialisation failed with error %d\n", - nif->nif_driver->netif_bname, nif->nif_unit, err); + nif->nif_driver->netif_bname, nif->nif_unit, err); /* Get MAC address */ di = ub_dev_get(sc->sc_handle); memcpy(desc->myea, di->di_net.hwaddr, 6); if (memcmp (desc->myea, "\0\0\0\0\0\0", 6) == 0) { panic("%s%d: empty ethernet address!", - nif->nif_driver->netif_bname, nif->nif_unit); + nif->nif_driver->netif_bname, nif->nif_unit); } #if defined(NETIF_DEBUG) printf("network: %s%d attached to %s\n", nif->nif_driver->netif_bname, - nif->nif_unit, ether_sprintf(desc->myea)); + nif->nif_unit, ether_sprintf(desc->myea)); #endif /* Set correct alignment for TX packets */ sc->sc_txbufp = sc->sc_txbuf; if ((unsigned long)sc->sc_txbufp % PKTALIGN) - sc->sc_txbufp += PKTALIGN - - (unsigned long)sc->sc_txbufp % PKTALIGN; + sc->sc_txbufp += PKTALIGN - (unsigned long)sc->sc_txbufp % PKTALIGN; } @@ -248,5 +246,5 @@ net_end(struct netif *nif) if (err = ub_dev_close(sc->sc_handle)) panic("%s%d: net_end failed with error %d\n", - nif->nif_driver->netif_bname, nif->nif_unit, err); + nif->nif_driver->netif_bname, nif->nif_unit, err); } diff --git a/sys/boot/uboot/lib/time.c b/sys/boot/uboot/lib/time.c index 2ec700c..f1cf7ee 100644 --- a/sys/boot/uboot/lib/time.c +++ b/sys/boot/uboot/lib/time.c @@ -48,6 +48,7 @@ time(time_t *tloc) int getsecs() { + return (time(NULL)); } @@ -57,5 +58,6 @@ getsecs() void delay(int usecs) { + ub_udelay(usecs); } |