1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*
- * fs kernel compatibility hacks for drivers from the cpu/terminal kernel
- */
- #define ETHERIQ(a, b, c) etheriq((a), (b))
- /*
- * cpu kernel uses bp->rp to point to start of packet and bp->wp to point
- * just past valid data in the packet.
- * fs kernel uses bp->data to point to start of packet and bp->data+bp->count
- * points just past valid data.
- * except beware that mballoc(count, ...) sets bp->count = count(!)
- */
- #define BLEN(bp) (bp)->count
- #define SETWPCNT(bp, cnt) (bp)->count = (cnt)
- /* mballoc does: mb->data = mb->xdata+256; */
- #define BLKRESET(bp) ((bp)->data = (bp)->xdata +256, (bp)->count = 0)
- #define INCRPTR(bp, incr) (bp)->count += (incr)
- #define ENDDATA(bp) ((bp)->data + (bp)->count)
- #define ROUND(s, sz) (((s)+((sz)-1))&~((sz)-1))
- #define Block Msgbuf
- #define rp data /* Block member → Msgbuf member */
- #define Etherpkt Enpkt
- #define Eaddrlen Easize
- #define ETHERHDRSIZE Ensize
- #ifndef CACHELINESZ
- #define CACHELINESZ 32 /* pentium & later */
- #endif
- #define KNAMELEN NAMELEN
- #define READSTR 128
- #define KADDR(a) ((void*)((ulong)(a)|KZERO))
- #define PCIWINDOW 0
- #define PCIWADDR(va) (PADDR(va)+PCIWINDOW)
- #define iprint print
- /* buffers */
- #define allocb(sz) mballoc((sz), 0, Maeth1)
- #define iallocb(sz) mballoc((sz), 0, Mbeth1)
- /* other memory */
- #define malloc(sz) ialloc((sz), 0)
- #define xspanalloc(sz, align, span) ialloc((sz)+(align)+(span), (align))
- /* offset==0 in all uses in fs */
- #define mallocalign(sz, align, offset, span) \
- ialloc((sz)+(align)+(span), (align))
- /* sleazy hacks; really need better allocators */
- #define xalloc(sz) malloc(sz)
- #define xfree(p)
- #define smalloc(sz) malloc(sz)
- #define waserror() 0
- #define poperror()
- #define nexterror() return
- #define error(x) goto err
- #define qsetlimit(q, lim)
- #define ioalloc(a, b, c, d) 0
- #define iofree(p)
- #define strtol strtoul
- #define PROCARG(arg)
- #define GETARG(arg) getarg()
- #define vmap(bar, size) upamalloc(bar, size, 0)
- /* see portdat.h for Msgbuf flags */
- void freeb(Block *b);
- void freeblist(Block *b);
- void free(void *p);
- void *mallocz(ulong sz, int clr);
- char *strdup(char *); /* port/config.c */
- void kstrdup(char **p, char *s);
- /* header files mysteriously fail to declare this */
- ulong upamalloc(ulong addr, int size, int align);
- int readstr(vlong, void *, int, char *);
- void addethercard(char *, int (*)(struct Ether *));
- void kproc(char *text, void (*f)(void), void *arg);
- /* pc-specific? */
- int intrdisable(int irq, void (*f)(Ureg *, void *), void *a, int, char *);
- void intrenable(int irq, void (*f)(Ureg*, void*), void* a, int, char *name);
|