# 1 "interrupts.c" # 1 "/work/psl/tmp/u-boot/cpu/ppc4xx//" # 1 "" # 1 "" # 1 "interrupts.c" # 30 "interrupts.c" # 1 "/work/psl/tmp/u-boot/include/common.h" 1 # 30 "/work/psl/tmp/u-boot/include/common.h" typedef unsigned char uchar; typedef volatile unsigned long vu_long; typedef volatile unsigned short vu_short; typedef volatile unsigned char vu_char; # 1 "/work/psl/tmp/u-boot/include/config.h" 1 # 1 "/work/psl/tmp/u-boot/include/configs/katmai.h" 1 # 237 "/work/psl/tmp/u-boot/include/configs/katmai.h" # 1 "/work/psl/tmp/u-boot/include/config_cmd_default.h" 1 # 238 "/work/psl/tmp/u-boot/include/configs/katmai.h" 2 # 2 "/work/psl/tmp/u-boot/include/config.h" 2 # 36 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/linux/bitops.h" 1 # 11 "/work/psl/tmp/u-boot/include/linux/bitops.h" static inline int generic_ffs(int x) { int r = 1; if (!x) return 0; if (!(x & 0xffff)) { x >>= 16; r += 16; } if (!(x & 0xff)) { x >>= 8; r += 8; } if (!(x & 0xf)) { x >>= 4; r += 4; } if (!(x & 3)) { x >>= 2; r += 2; } if (!(x & 1)) { x >>= 1; r += 1; } return r; } static inline unsigned int generic_hweight32(unsigned int w) { unsigned int res = (w & 0x55555555) + ((w >> 1) & 0x55555555); res = (res & 0x33333333) + ((res >> 2) & 0x33333333); res = (res & 0x0F0F0F0F) + ((res >> 4) & 0x0F0F0F0F); res = (res & 0x00FF00FF) + ((res >> 8) & 0x00FF00FF); return (res & 0x0000FFFF) + ((res >> 16) & 0x0000FFFF); } static inline unsigned int generic_hweight16(unsigned int w) { unsigned int res = (w & 0x5555) + ((w >> 1) & 0x5555); res = (res & 0x3333) + ((res >> 2) & 0x3333); res = (res & 0x0F0F) + ((res >> 4) & 0x0F0F); return (res & 0x00FF) + ((res >> 8) & 0x00FF); } static inline unsigned int generic_hweight8(unsigned int w) { unsigned int res = (w & 0x55) + ((w >> 1) & 0x55); res = (res & 0x33) + ((res >> 2) & 0x33); return (res & 0x0F) + ((res >> 4) & 0x0F); } # 1 "/work/psl/tmp/u-boot/include/asm/bitops.h" 1 # 1 "/work/psl/tmp/u-boot/include/linux/config.h" 1 # 9 "/work/psl/tmp/u-boot/include/asm/bitops.h" 2 # 1 "/work/psl/tmp/u-boot/include/asm/byteorder.h" 1 # 1 "/work/psl/tmp/u-boot/include/asm/types.h" 1 typedef unsigned short umode_t; typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; typedef __signed__ long long __s64; typedef unsigned long long __u64; typedef struct { __u32 u[4]; } __attribute((aligned(16))) vector128; typedef signed char s8; typedef unsigned char u8; typedef signed short s16; typedef unsigned short u16; typedef signed int s32; typedef unsigned int u32; typedef signed long long s64; typedef unsigned long long u64; typedef u32 dma_addr_t; # 5 "/work/psl/tmp/u-boot/include/asm/byteorder.h" 2 extern __inline__ unsigned ld_le16(const volatile unsigned short *addr) { unsigned val; __asm__ __volatile__ ("lhbrx %0,0,%1" : "=r" (val) : "r" (addr), "m" (*addr)); return val; } extern __inline__ void st_le16(volatile unsigned short *addr, const unsigned val) { __asm__ __volatile__ ("sthbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr)); } extern __inline__ unsigned ld_le32(const volatile unsigned *addr) { unsigned val; __asm__ __volatile__ ("lwbrx %0,0,%1" : "=r" (val) : "r" (addr), "m" (*addr)); return val; } extern __inline__ void st_le32(volatile unsigned *addr, const unsigned val) { __asm__ __volatile__ ("stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr)); } # 42 "/work/psl/tmp/u-boot/include/asm/byteorder.h" static __inline__ __attribute__((const)) __u16 ___arch__swab16(__u16 value) { __u16 result; __asm__("rlwimi %0,%1,8,16,23" : "=r" (result) : "r" (value), "0" (value >> 8)); return result; } static __inline__ __attribute__((const)) __u32 ___arch__swab32(__u32 value) { __u32 result; __asm__("rlwimi %0,%1,24,16,23\n\t" "rlwimi %0,%1,8,8,15\n\t" "rlwimi %0,%1,24,0,7" : "=r" (result) : "r" (value), "0" (value >> 24)); return result; } # 82 "/work/psl/tmp/u-boot/include/asm/byteorder.h" # 1 "/work/psl/tmp/u-boot/include/linux/byteorder/big_endian.h" 1 # 12 "/work/psl/tmp/u-boot/include/linux/byteorder/big_endian.h" # 1 "/work/psl/tmp/u-boot/include/linux/byteorder/swab.h" 1 # 99 "/work/psl/tmp/u-boot/include/linux/byteorder/swab.h" static __inline__ __attribute__((const)) __u16 __fswab16(__u16 x) { return ___arch__swab16(x); } static __inline__ __u16 __swab16p(__u16 *x) { return ld_le16(x); } static __inline__ void __swab16s(__u16 *addr) { st_le16(addr,*addr); } static __inline__ __attribute__((const)) __u32 __fswab32(__u32 x) { return ___arch__swab32(x); } static __inline__ __u32 __swab32p(__u32 *x) { return ld_le32(x); } static __inline__ void __swab32s(__u32 *addr) { st_le32(addr,*addr); } static __inline__ __attribute__((const)) __u64 __fswab64(__u64 x) { return ((__u64)( (__u64)(((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56) )); } static __inline__ __u64 __swab64p(__u64 *x) { return (__builtin_constant_p((__u64)(*(x))) ? ((__u64)( (__u64)(((__u64)((*(x))) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)((*(x))) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)((*(x))) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)((*(x))) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)((*(x))) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)((*(x))) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)((*(x))) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)((*(x))) & (__u64)0xff00000000000000ULL) >> 56) )) : __fswab64((*(x)))); } static __inline__ void __swab64s(__u64 *addr) { do { *(addr) = __swab64p((addr)); } while (0); } # 13 "/work/psl/tmp/u-boot/include/linux/byteorder/big_endian.h" 2 # 67 "/work/psl/tmp/u-boot/include/linux/byteorder/big_endian.h" # 1 "/work/psl/tmp/u-boot/include/linux/byteorder/generic.h" 1 # 150 "/work/psl/tmp/u-boot/include/linux/byteorder/generic.h" extern __u32 ntohl(__u32); extern __u32 htonl(__u32); extern unsigned short int ntohs(unsigned short int); extern unsigned short int htons(unsigned short int); # 68 "/work/psl/tmp/u-boot/include/linux/byteorder/big_endian.h" 2 # 83 "/work/psl/tmp/u-boot/include/asm/byteorder.h" 2 # 10 "/work/psl/tmp/u-boot/include/asm/bitops.h" 2 extern void set_bit(int nr, volatile void *addr); extern void clear_bit(int nr, volatile void *addr); extern void change_bit(int nr, volatile void *addr); extern int test_and_set_bit(int nr, volatile void *addr); extern int test_and_clear_bit(int nr, volatile void *addr); extern int test_and_change_bit(int nr, volatile void *addr); # 38 "/work/psl/tmp/u-boot/include/asm/bitops.h" extern __inline__ void set_bit(int nr, volatile void * addr) { unsigned long old; unsigned long mask = 1 << (nr & 0x1f); unsigned long *p = ((unsigned long *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%3\n or %0,%0,%2\n stwcx. %0,0,%3\n bne 1b" : "=&r" (old), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc" ); } extern __inline__ void clear_bit(int nr, volatile void *addr) { unsigned long old; unsigned long mask = 1 << (nr & 0x1f); unsigned long *p = ((unsigned long *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%3\n andc %0,%0,%2\n stwcx. %0,0,%3\n bne 1b" : "=&r" (old), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc"); } extern __inline__ void change_bit(int nr, volatile void *addr) { unsigned long old; unsigned long mask = 1 << (nr & 0x1f); unsigned long *p = ((unsigned long *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%3\n xor %0,%0,%2\n stwcx. %0,0,%3\n bne 1b" : "=&r" (old), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc"); } extern __inline__ int test_and_set_bit(int nr, volatile void *addr) { unsigned int old, t; unsigned int mask = 1 << (nr & 0x1f); volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%4\n or %1,%0,%3\n stwcx. %1,0,%4\n bne 1b" : "=&r" (old), "=&r" (t), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc"); return (old & mask) != 0; } extern __inline__ int test_and_clear_bit(int nr, volatile void *addr) { unsigned int old, t; unsigned int mask = 1 << (nr & 0x1f); volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%4\n andc %1,%0,%3\n stwcx. %1,0,%4\n bne 1b" : "=&r" (old), "=&r" (t), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc"); return (old & mask) != 0; } extern __inline__ int test_and_change_bit(int nr, volatile void *addr) { unsigned int old, t; unsigned int mask = 1 << (nr & 0x1f); volatile unsigned int *p = ((volatile unsigned int *)addr) + (nr >> 5); __asm__ __volatile__( "1: lwarx %0,0,%4\n xor %1,%0,%3\n stwcx. %1,0,%4\n bne 1b" : "=&r" (old), "=&r" (t), "=m" (*p) : "r" (mask), "r" (p), "m" (*p) : "cc"); return (old & mask) != 0; } extern __inline__ int test_bit(int nr, __const__ volatile void *addr) { __const__ unsigned int *p = (__const__ unsigned int *) addr; return ((p[nr >> 5] >> (nr & 0x1f)) & 1) != 0; } extern __inline__ int __ilog2(unsigned int x) { int lz; asm ("cntlzw %0,%1" : "=r" (lz) : "r" (x)); return 31 - lz; } extern __inline__ int ffz(unsigned int x) { if ((x = ~x) == 0) return 32; return __ilog2(x & -x); } # 177 "/work/psl/tmp/u-boot/include/asm/bitops.h" extern __inline__ int ffs(int x) { return __ilog2(x & -x) + 1; } # 200 "/work/psl/tmp/u-boot/include/asm/bitops.h" extern __inline__ unsigned long find_next_zero_bit(void * addr, unsigned long size, unsigned long offset) { unsigned int * p = ((unsigned int *) addr) + (offset >> 5); unsigned int result = offset & ~31UL; unsigned int tmp; if (offset >= size) return size; size -= result; offset &= 31UL; if (offset) { tmp = *p++; tmp |= ~0UL >> (32-offset); if (size < 32) goto found_first; if (tmp != ~0U) goto found_middle; size -= 32; result += 32; } while (size >= 32) { if ((tmp = *p++) != ~0U) goto found_middle; result += 32; size -= 32; } if (!size) return result; tmp = *p; found_first: tmp |= ~0UL << size; found_middle: return result + ffz(tmp); } # 275 "/work/psl/tmp/u-boot/include/asm/bitops.h" extern __inline__ int ext2_test_bit(int nr, __const__ void * addr) { __const__ unsigned char *ADDR = (__const__ unsigned char *) addr; return (ADDR[nr >> 3] >> (nr & 7)) & 1; } # 290 "/work/psl/tmp/u-boot/include/asm/bitops.h" extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long offset) { unsigned int *p = ((unsigned int *) addr) + (offset >> 5); unsigned int result = offset & ~31UL; unsigned int tmp; if (offset >= size) return size; size -= result; offset &= 31UL; if (offset) { tmp = __swab32p((p++)); tmp |= ~0UL >> (32-offset); if (size < 32) goto found_first; if (tmp != ~0U) goto found_middle; size -= 32; result += 32; } while (size >= 32) { if ((tmp = __swab32p((p++))) != ~0U) goto found_middle; result += 32; size -= 32; } if (!size) return result; tmp = __swab32p((p)); found_first: tmp |= ~0U << size; found_middle: return result + ffz(tmp); } # 70 "/work/psl/tmp/u-boot/include/linux/bitops.h" 2 # 37 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/linux/types.h" 1 # 1 "/work/psl/tmp/u-boot/include/linux/posix_types.h" 1 # 1 "/work/psl/tmp/u-boot/include/linux/stddef.h" 1 # 12 "/work/psl/tmp/u-boot/include/linux/stddef.h" # 1 "/work/psl/tmp/u-boot/include/linux/types.h" 1 # 13 "/work/psl/tmp/u-boot/include/linux/stddef.h" 2 # 5 "/work/psl/tmp/u-boot/include/linux/posix_types.h" 2 # 36 "/work/psl/tmp/u-boot/include/linux/posix_types.h" typedef struct { unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))]; } __kernel_fd_set; typedef void (*__kernel_sighandler_t)(int); typedef int __kernel_key_t; # 1 "/work/psl/tmp/u-boot/include/asm/posix_types.h" 1 # 10 "/work/psl/tmp/u-boot/include/asm/posix_types.h" typedef unsigned int __kernel_dev_t; typedef unsigned int __kernel_ino_t; typedef unsigned int __kernel_mode_t; typedef unsigned short __kernel_nlink_t; typedef long __kernel_off_t; typedef int __kernel_pid_t; typedef unsigned int __kernel_uid_t; typedef unsigned int __kernel_gid_t; typedef unsigned int __kernel_size_t; typedef int __kernel_ssize_t; typedef long __kernel_ptrdiff_t; typedef long __kernel_time_t; typedef long __kernel_suseconds_t; typedef long __kernel_clock_t; typedef int __kernel_daddr_t; typedef char * __kernel_caddr_t; typedef short __kernel_ipc_pid_t; typedef unsigned short __kernel_uid16_t; typedef unsigned short __kernel_gid16_t; typedef unsigned int __kernel_uid32_t; typedef unsigned int __kernel_gid32_t; typedef unsigned int __kernel_old_uid_t; typedef unsigned int __kernel_old_gid_t; typedef long long __kernel_loff_t; typedef struct { int val[2]; } __kernel_fsid_t; # 58 "/work/psl/tmp/u-boot/include/asm/posix_types.h" static __inline__ void __FD_SET(unsigned long fd, __kernel_fd_set *fdsetp) { unsigned long _tmp = fd / (8 * sizeof(unsigned long)); unsigned long _rem = fd % (8 * sizeof(unsigned long)); fdsetp->fds_bits[_tmp] |= (1UL<<_rem); } static __inline__ void __FD_CLR(unsigned long fd, __kernel_fd_set *fdsetp) { unsigned long _tmp = fd / (8 * sizeof(unsigned long)); unsigned long _rem = fd % (8 * sizeof(unsigned long)); fdsetp->fds_bits[_tmp] &= ~(1UL<<_rem); } static __inline__ int __FD_ISSET(unsigned long fd, __kernel_fd_set *p) { unsigned long _tmp = fd / (8 * sizeof(unsigned long)); unsigned long _rem = fd % (8 * sizeof(unsigned long)); return (p->fds_bits[_tmp] & (1UL<<_rem)) != 0; } static __inline__ void __FD_ZERO(__kernel_fd_set *p) { unsigned int *tmp = (unsigned int *)p->fds_bits; int i; if (__builtin_constant_p((1024/(8 * sizeof(unsigned long))))) { switch ((1024/(8 * sizeof(unsigned long)))) { case 8: tmp[0] = 0; tmp[1] = 0; tmp[2] = 0; tmp[3] = 0; tmp[4] = 0; tmp[5] = 0; tmp[6] = 0; tmp[7] = 0; return; } } i = (1024/(8 * sizeof(unsigned long))); while (i) { i--; *tmp = 0; tmp++; } } # 47 "/work/psl/tmp/u-boot/include/linux/posix_types.h" 2 # 9 "/work/psl/tmp/u-boot/include/linux/types.h" 2 typedef __kernel_fd_set fd_set; typedef __kernel_dev_t dev_t; typedef __kernel_ino_t ino_t; typedef __kernel_mode_t mode_t; typedef __kernel_nlink_t nlink_t; typedef __kernel_off_t off_t; typedef __kernel_pid_t pid_t; typedef __kernel_daddr_t daddr_t; typedef __kernel_key_t key_t; typedef __kernel_suseconds_t suseconds_t; typedef __kernel_uid32_t uid_t; typedef __kernel_gid32_t gid_t; typedef __kernel_uid16_t uid16_t; typedef __kernel_gid16_t gid16_t; # 45 "/work/psl/tmp/u-boot/include/linux/types.h" typedef __kernel_loff_t loff_t; # 54 "/work/psl/tmp/u-boot/include/linux/types.h" typedef __kernel_size_t size_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_ptrdiff_t ptrdiff_t; typedef __kernel_time_t time_t; typedef __kernel_clock_t clock_t; typedef __kernel_caddr_t caddr_t; typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; typedef __u8 u_int8_t; typedef __s8 int8_t; typedef __u16 u_int16_t; typedef __s16 int16_t; typedef __u32 u_int32_t; typedef __s32 int32_t; typedef __u8 uint8_t; typedef __u16 uint16_t; typedef __u32 uint32_t; typedef __u64 uint64_t; typedef __u64 u_int64_t; typedef __s64 int64_t; # 123 "/work/psl/tmp/u-boot/include/linux/types.h" struct ustat { __kernel_daddr_t f_tfree; __kernel_ino_t f_tinode; char f_fname[6]; char f_fpack[6]; }; # 38 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/linux/string.h" 1 # 11 "/work/psl/tmp/u-boot/include/linux/string.h" extern char * ___strtok; extern char * strpbrk(const char *,const char *); extern char * strtok(char *,const char *); extern char * strsep(char **,const char *); extern __kernel_size_t strspn(const char *,const char *); # 1 "/work/psl/tmp/u-boot/include/asm/string.h" 1 # 16 "/work/psl/tmp/u-boot/include/asm/string.h" extern int strcasecmp(const char *, const char *); extern int strncasecmp(const char *, const char *, int); extern char * strcpy(char *,const char *); extern char * strncpy(char *,const char *, __kernel_size_t); extern __kernel_size_t strlen(const char *); extern int strcmp(const char *,const char *); extern char * strcat(char *, const char *); extern void * memset(void *,int,__kernel_size_t); extern void * memcpy(void *,const void *,__kernel_size_t); extern void * memmove(void *,const void *,__kernel_size_t); extern int memcmp(const void *,const void *,__kernel_size_t); extern void * memchr(const void *,int,__kernel_size_t); # 22 "/work/psl/tmp/u-boot/include/linux/string.h" 2 # 33 "/work/psl/tmp/u-boot/include/linux/string.h" extern char * strncat(char *, const char *, __kernel_size_t); extern int strncmp(const char *,const char *,__kernel_size_t); extern char * strchr(const char *,int); extern char * strrchr(const char *,int); extern char * strstr(const char *,const char *); extern __kernel_size_t strnlen(const char *,__kernel_size_t); extern char * strdup(const char *); extern char * strswab(const char *); # 76 "/work/psl/tmp/u-boot/include/linux/string.h" extern void * memscan(void *,int,__kernel_size_t); # 39 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/asm/ptrace.h" 1 # 28 "/work/psl/tmp/u-boot/include/asm/ptrace.h" struct pt_regs { unsigned long gpr[32]; unsigned long nip; unsigned long msr; unsigned long orig_gpr3; unsigned long ctr; unsigned long link; unsigned long xer; unsigned long ccr; unsigned long mq; unsigned long trap; unsigned long dar; unsigned long dsisr; unsigned long result; }; # 40 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/opt/eldk-4.2-01-08/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include/stdarg.h" 1 3 4 # 43 "/opt/eldk-4.2-01-08/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 105 "/opt/eldk-4.2-01-08/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include/stdarg.h" 3 4 typedef __gnuc_va_list va_list; # 41 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/pci.h" 1 # 313 "/work/psl/tmp/u-boot/include/pci.h" # 1 "/work/psl/tmp/u-boot/include/pci_ids.h" 1 # 314 "/work/psl/tmp/u-boot/include/pci.h" 2 struct pci_region { unsigned long bus_start; unsigned long phys_start; unsigned long size; unsigned long flags; unsigned long bus_lower; }; # 332 "/work/psl/tmp/u-boot/include/pci.h" extern __inline__ void pci_set_region(struct pci_region *reg, unsigned long bus_start, unsigned long phys_start, unsigned long size, unsigned long flags) { reg->bus_start = bus_start; reg->phys_start = phys_start; reg->size = size; reg->flags = flags; } typedef int pci_dev_t; # 352 "/work/psl/tmp/u-boot/include/pci.h" struct pci_device_id { unsigned int vendor, device; }; struct pci_controller; struct pci_config_table { unsigned int vendor, device; unsigned int class; unsigned int bus; unsigned int dev; unsigned int func; void (*config_device)(struct pci_controller* hose, pci_dev_t dev, struct pci_config_table *); unsigned long priv[3]; }; extern void pci_cfgfunc_do_nothing(struct pci_controller* hose, pci_dev_t dev, struct pci_config_table *); extern void pci_cfgfunc_config_device(struct pci_controller* hose, pci_dev_t dev, struct pci_config_table *); struct pci_controller { struct pci_controller *next; int first_busno; int last_busno; volatile unsigned int *cfg_addr; volatile unsigned char *cfg_data; struct pci_region regions[7]; int region_count; struct pci_config_table *config_table; void (*fixup_irq)(struct pci_controller *, pci_dev_t); int (*read_byte)(struct pci_controller*, pci_dev_t, int where, u8 *); int (*read_word)(struct pci_controller*, pci_dev_t, int where, u16 *); int (*read_dword)(struct pci_controller*, pci_dev_t, int where, u32 *); int (*write_byte)(struct pci_controller*, pci_dev_t, int where, u8); int (*write_word)(struct pci_controller*, pci_dev_t, int where, u16); int (*write_dword)(struct pci_controller*, pci_dev_t, int where, u32); struct pci_region *pci_mem, *pci_io, *pci_prefetch; struct pci_region *pci_fb; int current_busno; }; extern __inline__ void pci_set_ops(struct pci_controller *hose, int (*read_byte)(struct pci_controller*, pci_dev_t, int where, u8 *), int (*read_word)(struct pci_controller*, pci_dev_t, int where, u16 *), int (*read_dword)(struct pci_controller*, pci_dev_t, int where, u32 *), int (*write_byte)(struct pci_controller*, pci_dev_t, int where, u8), int (*write_word)(struct pci_controller*, pci_dev_t, int where, u16), int (*write_dword)(struct pci_controller*, pci_dev_t, int where, u32)) { hose->read_byte = read_byte; hose->read_word = read_word; hose->read_dword = read_dword; hose->write_byte = write_byte; hose->write_word = write_word; hose->write_dword = write_dword; } extern void pci_setup_indirect(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data); extern unsigned long pci_hose_bus_to_phys(struct pci_controller* hose, unsigned long addr, unsigned long flags); extern unsigned long pci_hose_phys_to_bus(struct pci_controller* hose, unsigned long addr, unsigned long flags); # 450 "/work/psl/tmp/u-boot/include/pci.h" extern int pci_hose_read_config_byte(struct pci_controller *hose, pci_dev_t dev, int where, u8 *val); extern int pci_hose_read_config_word(struct pci_controller *hose, pci_dev_t dev, int where, u16 *val); extern int pci_hose_read_config_dword(struct pci_controller *hose, pci_dev_t dev, int where, u32 *val); extern int pci_hose_write_config_byte(struct pci_controller *hose, pci_dev_t dev, int where, u8 val); extern int pci_hose_write_config_word(struct pci_controller *hose, pci_dev_t dev, int where, u16 val); extern int pci_hose_write_config_dword(struct pci_controller *hose, pci_dev_t dev, int where, u32 val); extern int pci_read_config_byte(pci_dev_t dev, int where, u8 *val); extern int pci_read_config_word(pci_dev_t dev, int where, u16 *val); extern int pci_read_config_dword(pci_dev_t dev, int where, u32 *val); extern int pci_write_config_byte(pci_dev_t dev, int where, u8 val); extern int pci_write_config_word(pci_dev_t dev, int where, u16 val); extern int pci_write_config_dword(pci_dev_t dev, int where, u32 val); extern int pci_hose_read_config_byte_via_dword(struct pci_controller *hose, pci_dev_t dev, int where, u8 *val); extern int pci_hose_read_config_word_via_dword(struct pci_controller *hose, pci_dev_t dev, int where, u16 *val); extern int pci_hose_write_config_byte_via_dword(struct pci_controller *hose, pci_dev_t dev, int where, u8 val); extern int pci_hose_write_config_word_via_dword(struct pci_controller *hose, pci_dev_t dev, int where, u16 val); extern void pci_register_hose(struct pci_controller* hose); extern struct pci_controller* pci_bus_to_hose(int bus); extern int pci_hose_scan(struct pci_controller *hose); extern int pci_hose_scan_bus(struct pci_controller *hose, int bus); extern void pciauto_region_init(struct pci_region* res); extern void pciauto_region_align(struct pci_region *res, unsigned long size); extern int pciauto_region_allocate(struct pci_region* res, unsigned int size, unsigned int *bar); extern void pciauto_setup_device(struct pci_controller *hose, pci_dev_t dev, int bars_num, struct pci_region *mem, struct pci_region *prefetch, struct pci_region *io); int pciauto_config_device(struct pci_controller *hose, pci_dev_t dev); extern pci_dev_t pci_find_device (unsigned int vendor, unsigned int device, int index); extern pci_dev_t pci_find_devices (struct pci_device_id *ids, int index); extern pci_dev_t pci_find_class(int wanted_class, int wanted_sub_code, int wanted_prog_if, int index); extern int pci_hose_config_device(struct pci_controller *hose, pci_dev_t dev, unsigned long io, unsigned long mem, unsigned long command); # 43 "/work/psl/tmp/u-boot/include/common.h" 2 # 98 "/work/psl/tmp/u-boot/include/common.h" # 1 "/work/psl/tmp/u-boot/include/ppc4xx.h" 1 # 26 "/work/psl/tmp/u-boot/include/ppc4xx.h" # 1 "/work/psl/tmp/u-boot/include/ppc440.h" 1 # 3670 "/work/psl/tmp/u-boot/include/ppc440.h" static inline u32 get_mcsr(void) { u32 val; asm volatile("mfspr %0, 0x23c" : "=r" (val) :); return val; } static inline void set_mcsr(u32 val) { asm volatile("mtspr 0x23c, %0" : "=r" (val) :); } # 27 "/work/psl/tmp/u-boot/include/ppc4xx.h" 2 # 75 "/work/psl/tmp/u-boot/include/ppc4xx.h" typedef struct { unsigned long freqDDR; unsigned long freqEBC; unsigned long freqOPB; unsigned long freqPCI; unsigned long freqPLB; unsigned long freqTmrClk; unsigned long freqUART; unsigned long freqProcessor; unsigned long freqVCOHz; unsigned long freqVCOMhz; unsigned long pciClkSync; unsigned long pciIntArbEn; unsigned long pllExtBusDiv; unsigned long pllFbkDiv; unsigned long pllFwdDiv; unsigned long pllFwdDivA; unsigned long pllFwdDivB; unsigned long pllOpbDiv; unsigned long pllPciDiv; unsigned long pllPlbDiv; } PPC4xx_SYS_INFO; # 99 "/work/psl/tmp/u-boot/include/common.h" 2 # 107 "/work/psl/tmp/u-boot/include/common.h" # 1 "/work/psl/tmp/u-boot/include/part.h" 1 # 26 "/work/psl/tmp/u-boot/include/part.h" # 1 "/work/psl/tmp/u-boot/include/ide.h" 1 # 46 "/work/psl/tmp/u-boot/include/ide.h" typedef ulong lbaint_t; void ide_init(void); ulong ide_read(int device, lbaint_t blknr, ulong blkcnt, void *buffer); ulong ide_write(int device, lbaint_t blknr, ulong blkcnt, void *buffer); # 27 "/work/psl/tmp/u-boot/include/part.h" 2 typedef struct block_dev_desc { int if_type; int dev; unsigned char part_type; unsigned char target; unsigned char lun; unsigned char type; unsigned char removable; lbaint_t lba; unsigned long blksz; char vendor [40+1]; char product[20+1]; char revision[8+1]; unsigned long (*block_read)(int dev, unsigned long start, lbaint_t blkcnt, void *buffer); unsigned long (*block_write)(int dev, unsigned long start, lbaint_t blkcnt, const void *buffer); }block_dev_desc_t; # 83 "/work/psl/tmp/u-boot/include/part.h" typedef struct disk_partition { ulong start; ulong size; ulong blksz; uchar name[32]; uchar type[32]; } disk_partition_t; block_dev_desc_t* get_dev(char* ifname, int dev); block_dev_desc_t* ide_get_dev(int dev); block_dev_desc_t* scsi_get_dev(int dev); block_dev_desc_t* usb_stor_get_dev(int dev); block_dev_desc_t* mmc_get_dev(int dev); block_dev_desc_t* systemace_get_dev(int dev); int get_partition_info (block_dev_desc_t * dev_desc, int part, disk_partition_t *info); void print_part (block_dev_desc_t *dev_desc); void init_part (block_dev_desc_t *dev_desc); void dev_print(block_dev_desc_t *dev_desc); # 115 "/work/psl/tmp/u-boot/include/part.h" int get_partition_info_dos (block_dev_desc_t * dev_desc, int part, disk_partition_t *info); void print_part_dos (block_dev_desc_t *dev_desc); int test_part_dos (block_dev_desc_t *dev_desc); # 108 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/flash.h" 1 # 32 "/work/psl/tmp/u-boot/include/flash.h" typedef struct { ulong size; ushort sector_count; ulong flash_id; ulong start[1024]; uchar protect[1024]; uchar portwidth; uchar chipwidth; ushort buffer_size; ulong erase_blk_tout; ulong write_tout; ulong buffer_write_tout; ushort vendor; ushort cmd_reset; ushort interface; ushort legacy_unlock; uchar manufacturer_id; ushort device_id; ushort device_id2; ushort ext_addr; ushort cfi_version; ushort cfi_offset; ulong addr_unlock1; ulong addr_unlock2; const char *name; } flash_info_t; # 89 "/work/psl/tmp/u-boot/include/flash.h" extern unsigned long flash_init (void); extern void flash_print_info (flash_info_t *); extern int flash_erase (flash_info_t *, int, int); extern int flash_sect_erase (ulong addr_first, ulong addr_last); extern int flash_sect_protect (int flag, ulong addr_first, ulong addr_last); extern void flash_protect (int flag, ulong from, ulong to, flash_info_t *info); extern int flash_write (char *, ulong, ulong); extern flash_info_t *addr2info (ulong); extern int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt); # 109 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/image.h" 1 # 145 "/work/psl/tmp/u-boot/include/image.h" typedef struct image_header { uint32_t ih_magic; uint32_t ih_hcrc; uint32_t ih_time; uint32_t ih_size; uint32_t ih_load; uint32_t ih_ep; uint32_t ih_dcrc; uint8_t ih_os; uint8_t ih_arch; uint8_t ih_type; uint8_t ih_comp; uint8_t ih_name[32]; } image_header_t; # 110 "/work/psl/tmp/u-boot/include/common.h" 2 # 125 "/work/psl/tmp/u-boot/include/common.h" typedef void (interrupt_handler_t)(void *); # 1 "/work/psl/tmp/u-boot/include/asm/u-boot.h" 1 # 39 "/work/psl/tmp/u-boot/include/asm/u-boot.h" typedef struct bd_info { unsigned long bi_memstart; unsigned long bi_memsize; unsigned long bi_flashstart; unsigned long bi_flashsize; unsigned long bi_flashoffset; unsigned long bi_sramstart; unsigned long bi_sramsize; # 65 "/work/psl/tmp/u-boot/include/asm/u-boot.h" unsigned long bi_bootflags; unsigned long bi_ip_addr; unsigned char bi_enetaddr[6]; unsigned short bi_ethspeed; unsigned long bi_intfreq; unsigned long bi_busfreq; # 84 "/work/psl/tmp/u-boot/include/asm/u-boot.h" unsigned long bi_baudrate; unsigned char bi_s_version[4]; unsigned char bi_r_version[32]; unsigned int bi_procfreq; unsigned int bi_plb_busfreq; unsigned int bi_pci_busfreq; unsigned char bi_pci_enetaddr[6]; # 130 "/work/psl/tmp/u-boot/include/asm/u-boot.h" int bi_phynum[2]; int bi_phymode[2]; } bd_t; # 128 "/work/psl/tmp/u-boot/include/common.h" 2 # 1 "/work/psl/tmp/u-boot/include/asm/global_data.h" 1 # 39 "/work/psl/tmp/u-boot/include/asm/global_data.h" typedef struct global_data { bd_t *bd; unsigned long flags; unsigned long baudrate; unsigned long cpu_clk; unsigned long bus_clk; # 113 "/work/psl/tmp/u-boot/include/asm/global_data.h" unsigned long ram_size; unsigned long reloc_off; unsigned long reset_status; unsigned long env_addr; unsigned long env_valid; unsigned long have_console; u32 uart_clk; # 155 "/work/psl/tmp/u-boot/include/asm/global_data.h" void **jt; } gd_t; # 129 "/work/psl/tmp/u-boot/include/common.h" 2 # 188 "/work/psl/tmp/u-boot/include/common.h" void hang (void) __attribute__ ((noreturn)); long int initdram (int); int display_options (void); void print_size (ulong, const char *); int print_buffer (ulong addr, void* data, uint width, uint count, uint linelen); void main_loop (void); int run_command (const char *cmd, int flag); int readline (const char *const prompt); int readline_into_buffer (const char *const prompt, char * buffer); int parse_line (char *, char *[]); void init_cmd_timeout(void); void reset_cmd_timeout(void); void board_init_f (ulong); void board_init_r (gd_t *, ulong); int checkboard (void); int checkflash (void); int checkdram (void); char * strmhz(char *buf, long hz); int last_stage_init(void); extern ulong monitor_flash_len; void flash_perror (int); int autoscript (ulong addr); void print_image_hdr (image_header_t *hdr); extern ulong load_addr; int env_init (void); void env_relocate (void); int envmatch (uchar *, int); char *getenv (char *); int getenv_r (char *name, char *buf, unsigned len); int saveenv (void); void inline setenv (char *, char *); # 257 "/work/psl/tmp/u-boot/include/common.h" void pci_init (void); void pci_init_board(void); void pciinfo (int, int); int pci_pre_init (struct pci_controller * ); void pci_target_init (struct pci_controller *); int is_pci_host (struct pci_controller *); void pcie_setup_hoses(int busno); int misc_init_f (void); int misc_init_r (void); void jumptable_init(void); void api_init (void); long get_ram_size (volatile long *, long); void reset_phy (void); void fdc_hw_init (void); void eeprom_init (void); int eeprom_probe (unsigned dev_addr, unsigned offset); int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt); int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt); # 327 "/work/psl/tmp/u-boot/include/common.h" void rpxlite_init (void); # 355 "/work/psl/tmp/u-boot/include/common.h" void load_sernum_ethaddr (void); int board_early_init_f (void); int board_late_init (void); int board_postclk_init (void); int board_early_init_r (void); void board_poweroff (void); # 373 "/work/psl/tmp/u-boot/include/common.h" uint get_pir (void); uint get_pvr (void); uint get_svr (void); uint rd_ic_cst (void); void wr_ic_cst (uint); void wr_ic_adr (uint); uint rd_dc_cst (void); void wr_dc_cst (uint); void wr_dc_adr (uint); int icache_status (void); void icache_enable (void); void icache_disable(void); int dcache_status (void); void dcache_enable (void); void dcache_disable(void); void relocate_code (ulong, gd_t *, ulong); ulong get_endaddr (void); void trap_init (ulong); # 404 "/work/psl/tmp/u-boot/include/common.h" unsigned char in8(unsigned int); void out8(unsigned int, unsigned char); unsigned short in16(unsigned int); unsigned short in16r(unsigned int); void out16(unsigned int, unsigned short value); void out16r(unsigned int, unsigned short value); unsigned long in32(unsigned int); unsigned long in32r(unsigned int); void out32(unsigned int, unsigned long value); void out32r(unsigned int, unsigned long value); void ppcDcbf(unsigned long value); void ppcDcbi(unsigned long value); void ppcSync(void); void ppcDcbz(unsigned long value); # 430 "/work/psl/tmp/u-boot/include/common.h" int checkcpu (void); int checkicache (void); int checkdcache (void); void upmconfig (unsigned int, unsigned int *, unsigned int); ulong get_tbclk (void); void reset_cpu (ulong addr); void ft_cpu_setup(void *blob, bd_t *bd); void ft_pci_setup(void *blob, bd_t *bd); int serial_init (void); void serial_addr (unsigned int); void serial_setbrg (void); void serial_putc (const char); void serial_putc_raw(const char); void serial_puts (const char *); int serial_getc (void); int serial_tstc (void); void _serial_setbrg (const int); void _serial_putc (const char, const int); void _serial_putc_raw(const char, const int); void _serial_puts (const char *, const int); int _serial_getc (const int); int _serial_tstc (const int); int get_clocks (void); int get_clocks_866 (void); int sdram_adjust_866 (void); int adjust_sdram_tbs_8xx (void); # 478 "/work/psl/tmp/u-boot/include/common.h" ulong get_OPB_freq (void); ulong get_PCI_freq (void); # 502 "/work/psl/tmp/u-boot/include/common.h" ulong get_bus_freq (ulong); # 517 "/work/psl/tmp/u-boot/include/common.h" unsigned long determine_sysper(void); unsigned long determine_pci_clock_per(void); typedef PPC4xx_SYS_INFO sys_info_t; int ppc440spe_revB(void); void get_sys_info ( sys_info_t * ); void cpu_init_f (void); int cpu_init_r (void); int interrupt_init (void); void timer_interrupt (struct pt_regs *); void external_interrupt (struct pt_regs *); void irq_install_handler(int, interrupt_handler_t *, void *); void irq_free_handler (int); void reset_timer (void); ulong get_timer (ulong base); void set_timer (ulong t); void enable_interrupts (void); int disable_interrupts (void); int dpram_init (void); uint dpram_base(void); uint dpram_base_align(uint align); uint dpram_alloc(uint size); uint dpram_alloc_align(uint size,uint align); void post_word_store (ulong); ulong post_word_load (void); void bootcount_store (ulong); ulong bootcount_load (void); void mii_init (void); ulong lcd_setmem (ulong); ulong vfd_setmem (ulong); ulong video_setmem (ulong); void flush_cache (unsigned long, unsigned long); unsigned long long get_ticks(void); void wait_ticks (unsigned long); void udelay (unsigned long); ulong usec2ticks (unsigned long usec); ulong ticks2usec (unsigned long ticks); int init_timebase (void); ulong simple_strtoul(const char *cp,char **endp,unsigned int base); long simple_strtol(const char *cp,char **endp,unsigned int base); void panic(const char *fmt, ...); int sprintf(char * buf, const char *fmt, ...); int vsprintf(char *buf, const char *fmt, va_list args); ulong crc32 (ulong, const unsigned char *, uint); ulong crc32_no_comp (ulong, const unsigned char *, uint); int console_init_f(void); int console_init_r(void); int console_assign (int file, char *devname); int ctrlc (void); int had_ctrlc (void); void clear_ctrlc (void); int disable_ctrlc (int); void serial_printf (const char *fmt, ...); int getc(void); int tstc(void); void putc(const char c); void puts(const char *s); void printf(const char *fmt, ...); void vprintf(const char *fmt, va_list args); # 645 "/work/psl/tmp/u-boot/include/common.h" void fprintf(int file, const char *fmt, ...); void fputs(int file, const char *s); void fputc(int file, const char c); int ftstc(int file); int fgetc(int file); int pcmcia_init (void); void inline show_boot_progress (int val); # 31 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/watchdog.h" 1 # 89 "/work/psl/tmp/u-boot/include/watchdog.h" void reset_4xx_watchdog(void); # 32 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/command.h" 1 # 39 "/work/psl/tmp/u-boot/include/command.h" struct cmd_tbl_s { char *name; int maxargs; int repeatable; int (*cmd)(struct cmd_tbl_s *, int, int, char *[]); char *usage; char *help; }; typedef struct cmd_tbl_s cmd_tbl_t; extern cmd_tbl_t __u_boot_cmd_start; extern cmd_tbl_t __u_boot_cmd_end; cmd_tbl_t *find_cmd(const char *cmd); # 77 "/work/psl/tmp/u-boot/include/command.h" typedef void command_t (cmd_tbl_t *, int, int, char *[]); # 33 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/asm/processor.h" 1 # 992 "/work/psl/tmp/u-boot/include/asm/processor.h" extern int _machine; extern int have_of; extern int _prep_type; extern unsigned char ucSystemType; extern unsigned char ucBoardRev; extern unsigned char ucBoardRevMaj, ucBoardRevMin; struct task_struct; void start_thread(struct pt_regs *regs, unsigned long nip, unsigned long sp); void release_thread(struct task_struct *); extern long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); # 1024 "/work/psl/tmp/u-boot/include/asm/processor.h" extern struct task_struct *last_task_used_math; extern struct task_struct *last_task_used_altivec; # 1040 "/work/psl/tmp/u-boot/include/asm/processor.h" typedef struct { unsigned long seg; } mm_segment_t; struct thread_struct { unsigned long ksp; unsigned long wchan; struct pt_regs *regs; mm_segment_t fs; void *pgdir; signed long last_syscall; double fpr[32]; unsigned long fpscr_pad; unsigned long fpscr; }; # 1084 "/work/psl/tmp/u-boot/include/asm/processor.h" static inline unsigned long thread_saved_pc(struct thread_struct *t) { return (t->regs) ? t->regs->nip : 0; } unsigned long get_wchan(struct task_struct *p); # 1108 "/work/psl/tmp/u-boot/include/asm/processor.h" int ll_printk(const char *, ...); void ll_puts(const char *); void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); # 34 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/ppc_asm.tmpl" 1 # 36 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/commproc.h" 1 # 24 "/work/psl/tmp/u-boot/include/commproc.h" # 1 "/work/psl/tmp/u-boot/include/asm/8xx_immap.h" 1 # 18 "/work/psl/tmp/u-boot/include/asm/8xx_immap.h" typedef struct sys_conf { uint sc_siumcr; uint sc_sypcr; uint sc_swt; char res1[2]; ushort sc_swsr; uint sc_sipend; uint sc_simask; uint sc_siel; uint sc_sivec; uint sc_tesr; char res2[0xc]; uint sc_sdcr; char res3[0x4c]; } sysconf8xx_t; typedef struct pcmcia_conf { uint pcmc_pbr0; uint pcmc_por0; uint pcmc_pbr1; uint pcmc_por1; uint pcmc_pbr2; uint pcmc_por2; uint pcmc_pbr3; uint pcmc_por3; uint pcmc_pbr4; uint pcmc_por4; uint pcmc_pbr5; uint pcmc_por5; uint pcmc_pbr6; uint pcmc_por6; uint pcmc_pbr7; uint pcmc_por7; char res1[0x20]; uint pcmc_pgcra; uint pcmc_pgcrb; uint pcmc_pscr; char res2[4]; uint pcmc_pipr; char res3[4]; uint pcmc_per; char res4[4]; } pcmconf8xx_t; typedef struct mem_ctlr { uint memc_br0; uint memc_or0; uint memc_br1; uint memc_or1; uint memc_br2; uint memc_or2; uint memc_br3; uint memc_or3; uint memc_br4; uint memc_or4; uint memc_br5; uint memc_or5; uint memc_br6; uint memc_or6; uint memc_br7; uint memc_or7; char res1[0x24]; uint memc_mar; uint memc_mcr; char res2[4]; uint memc_mamr; uint memc_mbmr; ushort memc_mstat; ushort memc_mptpr; uint memc_mdr; char res3[0x80]; } memctl8xx_t; typedef struct sys_int_timers { ushort sit_tbscr; char res0[0x02]; uint sit_tbreff0; uint sit_tbreff1; char res1[0x14]; ushort sit_rtcsc; char res2[0x02]; uint sit_rtc; uint sit_rtsec; uint sit_rtcal; char res3[0x10]; ushort sit_piscr; char res4[2]; uint sit_pitc; uint sit_pitr; char res5[0x34]; } sit8xx_t; # 141 "/work/psl/tmp/u-boot/include/asm/8xx_immap.h" typedef struct clk_and_reset { uint car_sccr; uint car_plprcr; uint car_rsr; char res[0x74]; } car8xx_t; typedef struct sitk { uint sitk_tbscrk; uint sitk_tbreff0k; uint sitk_tbreff1k; uint sitk_tbk; char res1[0x10]; uint sitk_rtcsck; uint sitk_rtck; uint sitk_rtseck; uint sitk_rtcalk; char res2[0x10]; uint sitk_piscrk; uint sitk_pitck; char res3[0x38]; } sitk8xx_t; typedef struct cark { uint cark_sccrk; uint cark_plprcrk; uint cark_rsrk; char res[0x474]; } cark8xx_t; typedef struct vid823 { ushort vid_vccr; ushort res1; u_char vid_vsr; u_char res2; u_char vid_vcmr; u_char res3; uint vid_vbcb; uint res4; uint vid_vfcr0; uint vid_vfaa0; uint vid_vfba0; uint vid_vfcr1; uint vid_vfaa1; uint vid_vfba1; u_char res5[0x18]; } vid823_t; typedef struct lcd { uint lcd_lccr; uint lcd_lchcr; uint lcd_lcvcr; char res1[4]; uint lcd_lcfaa; uint lcd_lcfba; char lcd_lcsr; char res2[0x7]; } lcd823_t; typedef struct i2c { u_char i2c_i2mod; char res1[3]; u_char i2c_i2add; char res2[3]; u_char i2c_i2brg; char res3[3]; u_char i2c_i2com; char res4[3]; u_char i2c_i2cer; char res5[3]; u_char i2c_i2cmr; char res6[0x8b]; } i2c8xx_t; typedef struct sdma_csr { char res1[4]; uint sdma_sdar; u_char sdma_sdsr; char res3[3]; u_char sdma_sdmr; char res4[3]; u_char sdma_idsr1; char res5[3]; u_char sdma_idmr1; char res6[3]; u_char sdma_idsr2; char res7[3]; u_char sdma_idmr2; char res8[0x13]; } sdma8xx_t; typedef struct cpm_ic { ushort cpic_civr; char res[0xe]; uint cpic_cicr; uint cpic_cipr; uint cpic_cimr; uint cpic_cisr; } cpic8xx_t; typedef struct io_port { ushort iop_padir; ushort iop_papar; ushort iop_paodr; ushort iop_padat; char res1[8]; ushort iop_pcdir; ushort iop_pcpar; ushort iop_pcso; ushort iop_pcdat; ushort iop_pcint; char res2[6]; ushort iop_pddir; ushort iop_pdpar; char res3[2]; ushort iop_pddat; uint utmode; char res4[4]; } iop8xx_t; typedef struct cpm_timers { ushort cpmt_tgcr; char res1[0xe]; ushort cpmt_tmr1; ushort cpmt_tmr2; ushort cpmt_trr1; ushort cpmt_trr2; ushort cpmt_tcr1; ushort cpmt_tcr2; ushort cpmt_tcn1; ushort cpmt_tcn2; ushort cpmt_tmr3; ushort cpmt_tmr4; ushort cpmt_trr3; ushort cpmt_trr4; ushort cpmt_tcr3; ushort cpmt_tcr4; ushort cpmt_tcn3; ushort cpmt_tcn4; ushort cpmt_ter1; ushort cpmt_ter2; ushort cpmt_ter3; ushort cpmt_ter4; char res2[8]; } cpmtimer8xx_t; typedef struct scc { uint scc_gsmrl; uint scc_gsmrh; ushort scc_psmr; char res1[2]; ushort scc_todr; ushort scc_dsr; ushort scc_scce; char res2[2]; ushort scc_sccm; char res3; u_char scc_sccs; char res4[8]; } scc_t; typedef struct smc { char res1[2]; ushort smc_smcmr; char res2[2]; u_char smc_smce; char res3[3]; u_char smc_smcm; char res4[5]; } smc_t; typedef struct fec { uint fec_addr_low; ushort fec_addr_high; ushort res1; uint fec_hash_table_high; uint fec_hash_table_low; uint fec_r_des_start; uint fec_x_des_start; uint fec_r_buff_size; uint res2[9]; uint fec_ecntrl; uint fec_ievent; uint fec_imask; uint fec_ivec; uint fec_r_des_active; uint fec_x_des_active; uint res3[10]; uint fec_mii_data; uint fec_mii_speed; uint res4[17]; uint fec_r_bound; uint fec_r_fstart; uint res5[6]; uint fec_x_fstart; uint res6[17]; uint fec_fun_code; uint res7[3]; uint fec_r_cntrl; uint fec_r_hash; uint res8[14]; uint fec_x_cntrl; uint res9[0x1e]; } fec_t; union fec_lcd { fec_t fl_un_fec; u_char fl_un_cmap[0x200]; }; typedef struct comm_proc { ushort cp_cpcr; u_char res1[2]; ushort cp_rccr; u_char res2; u_char cp_rmds; u_char res3[4]; ushort cp_cpmcr1; ushort cp_cpmcr2; ushort cp_cpmcr3; ushort cp_cpmcr4; u_char res4[2]; ushort cp_rter; u_char res5[2]; ushort cp_rtmr; u_char res6[0x14]; uint cp_brgc1; uint cp_brgc2; uint cp_brgc3; uint cp_brgc4; scc_t cp_scc[4]; smc_t cp_smc[2]; ushort cp_spmode; u_char res7[4]; u_char cp_spie; u_char res8[3]; u_char cp_spim; u_char res9[2]; u_char cp_spcom; u_char res10[2]; u_char res11[2]; ushort cp_pipc; u_char res12[2]; ushort cp_ptpr; uint cp_pbdir; uint cp_pbpar; u_char res13[2]; ushort cp_pbodr; uint cp_pbdat; uint cp_pedir; uint cp_pepar; uint cp_peso; uint cp_peodr; uint cp_pedat; uint cp_cptr; uint cp_simode; u_char cp_sigmr; u_char res15; u_char cp_sistr; u_char cp_sicmr; u_char res16[4]; uint cp_sicr; uint cp_sirp; u_char res17[0xc]; u_char cp_vcram[0x100]; u_char cp_siram[0x200]; union fec_lcd fl_un; char res18[0xE00]; fec_t cp_fec2; u_char cp_dpmem[0x1C00]; u_char cp_dparam[0x400]; } cpm8xx_t; typedef struct immap { sysconf8xx_t im_siu_conf; pcmconf8xx_t im_pcmcia; memctl8xx_t im_memctl; sit8xx_t im_sit; car8xx_t im_clkrst; sitk8xx_t im_sitk; cark8xx_t im_clkrstk; vid823_t im_vid; lcd823_t im_lcd; i2c8xx_t im_i2c; sdma8xx_t im_sdma; cpic8xx_t im_cpic; iop8xx_t im_ioport; cpmtimer8xx_t im_cpmtimer; cpm8xx_t im_cpm; } immap_t; # 25 "/work/psl/tmp/u-boot/include/commproc.h" 2 # 101 "/work/psl/tmp/u-boot/include/commproc.h" extern cpm8xx_t *cpmp; typedef struct cpm_buf_desc { ushort cbd_sc; ushort cbd_datlen; uint cbd_bufaddr; } cbd_t; # 140 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct smc_uart { ushort smc_rbase; ushort smc_tbase; u_char smc_rfcr; u_char smc_tfcr; ushort smc_mrblr; uint smc_rstate; uint smc_idp; ushort smc_rbptr; ushort smc_ibc; uint smc_rxtmp; uint smc_tstate; uint smc_tdp; ushort smc_tbptr; ushort smc_tbc; uint smc_txtmp; ushort smc_maxidl; ushort smc_tmpidl; ushort smc_brklen; ushort smc_brkec; ushort smc_brkcr; ushort smc_rmask; u_char res1[8]; ushort smc_rpbase; } smc_uart_t; # 192 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct smc_centronics { ushort scent_rbase; ushort scent_tbase; u_char scent_cfcr; u_char scent_smask; ushort scent_mrblr; uint scent_rstate; uint scent_r_ptr; ushort scent_rbptr; ushort scent_r_cnt; uint scent_rtemp; uint scent_tstate; uint scent_t_ptr; ushort scent_tbptr; ushort scent_t_cnt; uint scent_ttemp; ushort scent_max_sl; ushort scent_sl_cnt; ushort scent_character1; ushort scent_character2; ushort scent_character3; ushort scent_character4; ushort scent_character5; ushort scent_character6; ushort scent_character7; ushort scent_character8; ushort scent_rccm; ushort scent_rccr; } smc_cent_t; # 350 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct scc_param { ushort scc_rbase; ushort scc_tbase; u_char scc_rfcr; u_char scc_tfcr; ushort scc_mrblr; uint scc_rstate; uint scc_idp; ushort scc_rbptr; ushort scc_ibc; uint scc_rxtmp; uint scc_tstate; uint scc_tdp; ushort scc_tbptr; ushort scc_tbc; uint scc_txtmp; uint scc_rcrc; uint scc_tcrc; } sccp_t; typedef struct scc_enet { sccp_t sen_genscc; uint sen_cpres; uint sen_cmask; uint sen_crcec; uint sen_alec; uint sen_disfc; ushort sen_pads; ushort sen_retlim; ushort sen_retcnt; ushort sen_maxflr; ushort sen_minflr; ushort sen_maxd1; ushort sen_maxd2; ushort sen_maxd; ushort sen_dmacnt; ushort sen_maxb; ushort sen_gaddr1; ushort sen_gaddr2; ushort sen_gaddr3; ushort sen_gaddr4; uint sen_tbuf0data0; uint sen_tbuf0data1; uint sen_tbuf0rba; uint sen_tbuf0crc; ushort sen_tbuf0bcnt; ushort sen_paddrh; ushort sen_paddrm; ushort sen_paddrl; ushort sen_pper; ushort sen_rfbdptr; ushort sen_tfbdptr; ushort sen_tlbdptr; uint sen_tbuf1data0; uint sen_tbuf1data1; uint sen_tbuf1rba; uint sen_tbuf1crc; ushort sen_tbuf1bcnt; ushort sen_txlen; ushort sen_iaddr1; ushort sen_iaddr2; ushort sen_iaddr3; ushort sen_iaddr4; ushort sen_boffcnt; ushort sen_taddrh; ushort sen_taddrm; ushort sen_taddrl; } scc_enet_t; # 1617 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct scc_uart { sccp_t scc_genscc; uint scc_res1; uint scc_res2; ushort scc_maxidl; ushort scc_idlc; ushort scc_brkcr; ushort scc_parec; ushort scc_frmec; ushort scc_nosec; ushort scc_brkec; ushort scc_brkln; ushort scc_uaddr1; ushort scc_uaddr2; ushort scc_rtemp; ushort scc_toseq; ushort scc_char1; ushort scc_char2; ushort scc_char3; ushort scc_char4; ushort scc_char5; ushort scc_char6; ushort scc_char7; ushort scc_char8; ushort scc_rccm; ushort scc_rccr; ushort scc_rlbc; } scc_uart_t; # 1678 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct scc_trans { sccp_t st_genscc; uint st_cpres; uint st_cmask; } scc_trans_t; typedef struct iic { ushort iic_rbase; ushort iic_tbase; u_char iic_rfcr; u_char iic_tfcr; ushort iic_mrblr; uint iic_rstate; uint iic_rdp; ushort iic_rbptr; ushort iic_rbc; uint iic_rxtmp; uint iic_tstate; uint iic_tdp; ushort iic_tbptr; ushort iic_tbc; uint iic_txtmp; uint iic_res; ushort iic_rpbase; ushort iic_res2; } iic_t; typedef struct spi { ushort spi_rbase; ushort spi_tbase; u_char spi_rfcr; u_char spi_tfcr; ushort spi_mrblr; uint spi_rstate; uint spi_rdp; ushort spi_rbptr; ushort spi_rbc; uint spi_rxtmp; uint spi_tstate; uint spi_tdp; ushort spi_tbptr; ushort spi_tbc; uint spi_txtmp; uint spi_res; ushort spi_rpbase; ushort spi_res2; } spi_t; # 1750 "/work/psl/tmp/u-boot/include/commproc.h" typedef struct hdlc_pram_s { ushort rbase; ushort tbase; uchar rfcr; uchar tfcr; ushort mrblr; ulong rstate; ulong rptr; ushort rbptr; ushort rcount; ulong rtemp; ulong tstate; ulong tptr; ushort tbptr; ushort tcount; ulong ttemp; ulong rcrc; ulong tcrc; uchar res[4]; ulong c_mask; ulong c_pres; ushort disfc; ushort crcec; ushort abtsc; ushort nmarc; ushort retrc; ushort mflr; ushort max_cnt; ushort rfthr; ushort rfcnt; ushort hmask; ushort haddr1; ushort haddr2; ushort haddr3; ushort haddr4; ushort tmp; ushort tmp_mb; } hdlc_pram_t; # 1834 "/work/psl/tmp/u-boot/include/commproc.h" extern void irq_install_handler(int vec, void (*handler)(void *), void *dev_id); # 37 "interrupts.c" 2 # 1 "/work/psl/tmp/u-boot/include/asm/ppc4xx-intvec.h" 1 # 38 "interrupts.c" 2 register volatile gd_t *gd asm ("r29"); struct irq_action { interrupt_handler_t *handler; void *arg; int count; }; static struct irq_action irq_vecs[32]; void uic0_interrupt( void * parms); static struct irq_action irq_vecs1[32]; void uic1_interrupt( void * parms); static struct irq_action irq_vecs2[32]; void uic2_interrupt( void * parms); static struct irq_action irq_vecs3[32]; void uic3_interrupt( void * parms); # 77 "interrupts.c" static __inline__ void set_evpr(unsigned long val) { asm volatile("mtspr 0x03f,%0" : : "r" (val)); } # 104 "interrupts.c" int interrupt_init_cpu (unsigned *decrementer_count) { int vec; unsigned long val; *decrementer_count = 0; for (vec=0; vec<32; vec++) { irq_vecs[vec].handler = ((void *)0); irq_vecs[vec].arg = ((void *)0); irq_vecs[vec].count = 0; irq_vecs1[vec].handler = ((void *)0); irq_vecs1[vec].arg = ((void *)0); irq_vecs1[vec].count = 0; irq_vecs2[vec].handler = ((void *)0); irq_vecs2[vec].arg = ((void *)0); irq_vecs2[vec].count = 0; irq_vecs3[vec].handler = ((void *)0); irq_vecs3[vec].arg = ((void *)0); irq_vecs3[vec].count = 0; } val = ({unsigned int rval; asm volatile("mfspr %0," "0x154" : "=r" (rval)); rval;}); val &= (~0x04400000); asm volatile("mtspr " "0x154" ",%0" : : "r" (val)); asm volatile("mtspr " "0x016" ",%0" : : "r" (0)); asm volatile("mtspr " "0x036" ",%0" : : "r" (0)); asm volatile("mtspr " "0x150" ",%0" : : "r" (0x08000000)); val = gd->bd->bi_intfreq/1000; asm volatile("mtspr " "0x036" ",%0" : : "r" (val)); asm volatile("mtspr " "0x016" ",%0" : : "r" (val)); # 166 "interrupts.c" val = ({unsigned int rval; asm volatile("mfspr %0," "0x154" : "=r" (rval)); rval;}); val |= 0x04400000; asm volatile("mtspr " "0x154" ",%0" : : "r" (val)); set_evpr(0x00000000); irq_install_handler(30, uic1_interrupt, 0); irq_install_handler(31, uic1_interrupt, 0); # 201 "interrupts.c" return (0); } # 262 "interrupts.c" void external_interrupt(struct pt_regs *regs) { ulong uic_msr; uic_msr = ({unsigned int rval; asm volatile("mfdcr %0," "(0xc0+0x6)" : "=r" (rval)); rval;}); if ( (0x00000002 & uic_msr) || (0x00000001 & uic_msr) ) uic1_interrupt(0); if ( (0x00200000 & uic_msr) || (0x00100000 & uic_msr) ) uic2_interrupt(0); if ( (0x00008000 & uic_msr) || (0x00004000 & uic_msr) ) uic3_interrupt(0); if (uic_msr & ~((0x00000002 | 0x00000001 | 0x00200000 | 0x00100000 | 0x00008000 | 0x00004000))) uic0_interrupt(0); asm volatile("mtdcr " "(0xc0+0x0)" ",%0" : : "r" (uic_msr)); return; } # 337 "interrupts.c" void uic0_interrupt( void * parms) { ulong uic_msr; ulong msr_shift; int vec; uic_msr = ({unsigned int rval; asm volatile("mfdcr %0," "(0xc0+0x6)" : "=r" (rval)); rval;}); msr_shift = uic_msr; vec = 0; while (msr_shift != 0) { if (msr_shift & 0x80000000) { irq_vecs[vec].count++; if (irq_vecs[vec].handler != ((void *)0)) { (*irq_vecs[vec].handler)(irq_vecs[vec].arg); } else { asm volatile("mtdcr " "(0xc0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xc0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> vec))); printf ("Masking bogus interrupt vector (uic0) 0x%x\n", vec); } asm volatile("mtdcr " "(0xc0+0x0)" ",%0" : : "r" ((0x80000000 >> vec))); } msr_shift <<= 1; vec++; } } void uic1_interrupt( void * parms) { ulong uic1_msr; ulong msr_shift; int vec; uic1_msr = ({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x6)" : "=r" (rval)); rval;}); msr_shift = uic1_msr; vec = 0; while (msr_shift != 0) { if (msr_shift & 0x80000000) { irq_vecs1[vec].count++; if (irq_vecs1[vec].handler != ((void *)0)) { (*irq_vecs1[vec].handler)(irq_vecs1[vec].arg); } else { asm volatile("mtdcr " "(0xd0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> vec))); printf ("Masking bogus interrupt vector (uic1) 0x%x\n", vec); } asm volatile("mtdcr " "(0xd0+0x0)" ",%0" : : "r" ((0x80000000 >> vec))); } msr_shift <<= 1; vec++; } } void uic2_interrupt( void * parms) { ulong uic2_msr; ulong msr_shift; int vec; uic2_msr = ({unsigned int rval; asm volatile("mfdcr %0," "(0xe0+0x6)" : "=r" (rval)); rval;}); msr_shift = uic2_msr; vec = 0; while (msr_shift != 0) { if (msr_shift & 0x80000000) { irq_vecs2[vec].count++; if (irq_vecs2[vec].handler != ((void *)0)) { (*irq_vecs2[vec].handler)(irq_vecs2[vec].arg); } else { asm volatile("mtdcr " "(0xe0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xe0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> vec))); printf ("Masking bogus interrupt vector (uic2) 0x%x\n", vec); } asm volatile("mtdcr " "(0xe0+0x0)" ",%0" : : "r" ((0x80000000 >> vec))); } msr_shift <<= 1; vec++; } } void uic3_interrupt( void * parms) { ulong uic3_msr; ulong msr_shift; int vec; uic3_msr = ({unsigned int rval; asm volatile("mfdcr %0," "(0xf0+0x6)" : "=r" (rval)); rval;}); msr_shift = uic3_msr; vec = 0; while (msr_shift != 0) { if (msr_shift & 0x80000000) { irq_vecs3[vec].count++; if (irq_vecs3[vec].handler != ((void *)0)) { (*irq_vecs3[vec].handler)(irq_vecs3[vec].arg); } else { asm volatile("mtdcr " "(0xf0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xf0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> vec))); printf ("Masking bogus interrupt vector (uic3) 0x%x\n", vec); } asm volatile("mtdcr " "(0xf0+0x0)" ",%0" : : "r" ((0x80000000 >> vec))); } msr_shift <<= 1; vec++; } } # 523 "interrupts.c" void irq_install_handler (int vec, interrupt_handler_t * handler, void *arg) { struct irq_action *irqa = irq_vecs; int i = vec; if ((vec > 31) && (vec < 64)) { i = vec - 32; irqa = irq_vecs1; } else if (vec > 63) { i = vec - 64; irqa = irq_vecs2; } # 549 "interrupts.c" if ((irqa[i].handler != ((void *)0)) && (irqa[i].handler != handler)) { printf ("Interrupt vector %d: handler 0x%x replacing 0x%x\n", vec, (uint) handler, (uint) irqa[i].handler); } irqa[i].handler = handler; irqa[i].arg = arg; if ((vec > 31) && (vec < 64)) asm volatile("mtdcr " "(0xd0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x2)" : "=r" (rval)); rval;}) | (0x80000000 >> i))); else if (vec > 63) asm volatile("mtdcr " "(0xe0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xe0+0x2)" : "=r" (rval)); rval;}) | (0x80000000 >> i))); else if (vec > 31) asm volatile("mtdcr " "(0xd0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x2)" : "=r" (rval)); rval;}) | (0x80000000 >> i))); else asm volatile("mtdcr " "(0xc0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xc0+0x2)" : "=r" (rval)); rval;}) | (0x80000000 >> i))); } void irq_free_handler (int vec) { struct irq_action *irqa = irq_vecs; int i = vec; if ((vec > 31) && (vec < 64)) { irqa = irq_vecs1; i = vec - 32; } else if (vec > 63) { irqa = irq_vecs2; i = vec - 64; } if (vec > 31) { irqa = irq_vecs1; i = vec - 32; } # 605 "interrupts.c" if ((vec > 31) && (vec < 64)) asm volatile("mtdcr " "(0xd0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> i))); else if (vec > 63) asm volatile("mtdcr " "(0xe0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xe0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> i))); else if (vec > 31) asm volatile("mtdcr " "(0xd0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xd0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> i))); else asm volatile("mtdcr " "(0xc0+0x2)" ",%0" : : "r" (({unsigned int rval; asm volatile("mfdcr %0," "(0xc0+0x2)" : "=r" (rval)); rval;}) & ~(0x80000000 >> i))); irqa[i].handler = ((void *)0); irqa[i].arg = ((void *)0); } void timer_interrupt_cpu (struct pt_regs *regs) { return; } # 638 "interrupts.c" int do_irqinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { int vec; printf ("\nInterrupt-Information:\n"); printf ("\nUIC 0\n"); printf ("Nr Routine Arg Count\n"); for (vec=0; vec<32; vec++) { if (irq_vecs[vec].handler != ((void *)0)) { printf ("%02d %08lx %08lx %d\n", vec, (ulong)irq_vecs[vec].handler, (ulong)irq_vecs[vec].arg, irq_vecs[vec].count); } } printf ("\nUIC 1\n"); printf ("Nr Routine Arg Count\n"); for (vec=0; vec<32; vec++) { if (irq_vecs1[vec].handler != ((void *)0)) printf ("%02d %08lx %08lx %d\n", vec+31, (ulong)irq_vecs1[vec].handler, (ulong)irq_vecs1[vec].arg, irq_vecs1[vec].count); } printf("\n"); printf ("\nUIC 2\n"); printf ("Nr Routine Arg Count\n"); for (vec=0; vec<32; vec++) { if (irq_vecs2[vec].handler != ((void *)0)) printf ("%02d %08lx %08lx %d\n", vec+63, (ulong)irq_vecs2[vec].handler, (ulong)irq_vecs2[vec].arg, irq_vecs2[vec].count); } printf("\n"); printf ("\nUIC 3\n"); printf ("Nr Routine Arg Count\n"); for (vec=0; vec<32; vec++) { if (irq_vecs3[vec].handler != ((void *)0)) printf ("%02d %08lx %08lx %d\n", vec+63, (ulong)irq_vecs3[vec].handler, (ulong)irq_vecs3[vec].arg, irq_vecs3[vec].count); } printf("\n"); return 0; }