summaryrefslogtreecommitdiff
path: root/release/src/include/min_osl.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2015-01-03 12:04:58 +0100
commit008d0be72b2f160382c6e880765e96b64a050c65 (patch)
tree36f48a98a3815a408e2ce1693dd182af90f80305 /release/src/include/min_osl.h
parent611becfb8726c60cb060368541ad98191d4532f5 (diff)
downloadtomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.gz
tomato-008d0be72b2f160382c6e880765e96b64a050c65.tar.bz2
imported original firmware WRT54GL_v4.30.11_11_US
Diffstat (limited to 'release/src/include/min_osl.h')
-rw-r--r--release/src/include/min_osl.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/release/src/include/min_osl.h b/release/src/include/min_osl.h
new file mode 100644
index 00000000..da050088
--- /dev/null
+++ b/release/src/include/min_osl.h
@@ -0,0 +1,121 @@
+/*
+ * HND Minimal OS Abstraction Layer.
+ *
+ * Copyright 2005, Broadcom Corporation
+ * All Rights Reserved.
+ *
+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
+ *
+ * $Id: min_osl.h,v 1.1.1.2 2005/03/07 07:31:12 kanki Exp $
+ */
+
+#ifndef _min_osl_h_
+#define _min_osl_h_
+
+#include <typedefs.h>
+#include <sbconfig.h>
+#include <mipsinc.h>
+
+/* Cache support */
+extern void caches_on(void);
+extern void blast_dcache(void);
+extern void blast_icache(void);
+
+/* uart output */
+extern void putc(int c);
+
+/* lib functions */
+extern int printf(const char *fmt, ...);
+extern int sprintf(char *buf, const char *fmt, ...);
+extern int strcmp(const char *s1, const char *s2);
+extern int strncmp(const char *s1, const char *s2, uint n);
+extern char *strcpy(char *dest, const char *src);
+extern char *strncpy(char *dest, const char *src, uint n);
+extern uint strlen(const char *s);
+extern char *strchr(const char *str,int c);
+extern char *strrchr(const char *str, int c);
+extern char *strcat(char *d, const char *s);
+extern void *memset(void *dest, int c, uint n);
+extern void *memcpy(void *dest, const void *src, uint n);
+extern int memcmp(const void *s1, const void *s2, uint n);
+#define bcopy(src, dst, len) memcpy((dst), (src), (len))
+#define bcmp(b1, b2, len) memcmp((b1), (b2), (len))
+#define bzero(b, len) memset((b), '\0', (len))
+
+/* assert & debugging */
+#define ASSERT(exp) do {} while (0)
+
+/* PCMCIA attribute space access macros */
+#define OSL_PCMCIA_READ_ATTR(osh, offset, buf, size) \
+ ASSERT(0)
+#define OSL_PCMCIA_WRITE_ATTR(osh, offset, buf, size) \
+ ASSERT(0)
+
+/* PCI configuration space access macros */
+#define OSL_PCI_READ_CONFIG(loc, offset, size) \
+ (offset == 8 ? 0 : 0xffffffff)
+#define OSL_PCI_WRITE_CONFIG(loc, offset, size, val) \
+ do {} while (0)
+
+/* register access macros */
+#define wreg32(r, v) (*(volatile uint32*)(r) = (uint32)(v))
+#define rreg32(r) (*(volatile uint32*)(r))
+#define wreg16(r, v) (*(volatile uint16*)(r) = (uint16)(v))
+#define rreg16(r) (*(volatile uint16*)(r))
+#define wreg8(r, v) (*(volatile uint8*)(r) = (uint8)(v))
+#define rreg8(r) (*(volatile uint8*)(r))
+#define R_REG(r) ({ \
+ __typeof(*(r)) __osl_v; \
+ switch (sizeof(*(r))) { \
+ case sizeof(uint8): __osl_v = rreg8((r)); break; \
+ case sizeof(uint16): __osl_v = rreg16((r)); break; \
+ case sizeof(uint32): __osl_v = rreg32((r)); break; \
+ } \
+ __osl_v; \
+})
+#define W_REG(r, v) do { \
+ switch (sizeof(*(r))) { \
+ case sizeof(uint8): wreg8((r), (v)); break; \
+ case sizeof(uint16): wreg16((r), (v)); break; \
+ case sizeof(uint32): wreg32((r), (v)); break; \
+ } \
+} while (0)
+#define AND_REG(r, v) W_REG((r), R_REG(r) & (v))
+#define OR_REG(r, v) W_REG((r), R_REG(r) | (v))
+
+/* general purpose memory allocation */
+#define MALLOC(osh, size) malloc(size)
+#define MFREE(osh, addr, size) free(addr)
+#define MALLOCED(osh) 0
+#define MALLOC_FAILED(osh) 0
+#define MALLOC_DUMP(osh, buf, sz)
+extern int free(void *ptr);
+extern void *malloc(uint size);
+
+/* uncached virtual address */
+#define OSL_UNCACHED(va) ((void*)KSEG1ADDR((ulong)(va)))
+
+/* host/bus architecture-specific address byte swap */
+#define BUS_SWAP32(v) (v)
+
+/* microsecond delay */
+#define OSL_DELAY(usec) udelay(usec)
+extern void udelay(uint32 usec);
+
+/* map/unmap physical to virtual I/O */
+#define REG_MAP(pa, size) ((void*)KSEG1ADDR((ulong)(pa)))
+#define REG_UNMAP(va) do {} while (0)
+
+/* dereference an address that may cause a bus exception */
+#define BUSPROBE(val, addr) (uint32 *)(addr) = (val)
+
+/* Misc stubs */
+#define osl_attach(pdev) (pdev)
+#define osl_detach(osh)
+extern void *osl_init(void);
+extern int getintvar(char *vars, char *name);
+
+#endif /* _min_osl_h_ */