⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 syslib.c

📁 VxWorks下8139网卡驱动程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    /* upper memory for OS */    {    (void *) LOCAL_MEM_LOCAL_ADRS,    (void *) LOCAL_MEM_LOCAL_ADRS,    LOCAL_MEM_SIZE_OS,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_OS    },    /* upper memory for Application */    {    (void *) LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE_OS,    (void *) LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE_OS,    LOCAL_MEM_SIZE - LOCAL_MEM_SIZE_OS,	/* it is changed in sysMemTop() */    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   else /* LOCAL_MEM_LOCAL_ADRS is 0x0 */    /* upper memory for OS */    {    (void *) 0x00100000,    (void *) 0x00100000,    LOCAL_MEM_SIZE_OS,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_OS    },    /* upper memory for Application */    {    (void *) 0x00100000 + LOCAL_MEM_SIZE_OS,    (void *) 0x00100000 + LOCAL_MEM_SIZE_OS,    LOCAL_MEM_SIZE - (0x00100000 + LOCAL_MEM_SIZE_OS),	/* sysMemTop() fix */    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   endif /* (LOCAL_MEM_LOCAL_ADRS >= 0x00100000) */#   if defined(INCLUDE_SM_NET) && (SM_MEM_ADRS != 0x0)    /* upper memory for sm net/obj pool */    {    (void *) SM_MEM_ADRS,    (void *) SM_MEM_ADRS,    SM_MEM_SIZE + SM_OBJ_MEM_SIZE,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   endif /* defined(INCLUDE_SM_NET) && (SM_MEM_ADRS != 0x0) */#   ifdef INCLUDE_IACSFL    {    (void *) 0xFFF80000,    (void *) 0xFFF80000,    0x00080000,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   endif /* INCLUDE_IACSFL */    #else	/* VM_PAGE_SIZE is 2/4MB */    /* 1st 2/4MB: lower mem + video ram etc + sm pool + upper mem */    {    (void *) 0x0,    (void *) 0x0,    VM_PAGE_SIZE,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_OS    },#   if (LOCAL_MEM_LOCAL_ADRS >= VM_PAGE_SIZE)    /* 2nd 2/4MB: upper memory for OS */    {    (void *) LOCAL_MEM_LOCAL_ADRS,    (void *) LOCAL_MEM_LOCAL_ADRS,    LOCAL_MEM_SIZE_OS,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_OS    },    /* remaining 2/4MB pages: upper memory for Application */    {    (void *) LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE_OS,    (void *) LOCAL_MEM_LOCAL_ADRS + LOCAL_MEM_SIZE_OS,    LOCAL_MEM_SIZE - LOCAL_MEM_SIZE_OS,	/* it is changed in sysMemTop() */    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   else /* LOCAL_MEM_LOCAL_ADRS is 0x0 */    /* 2nd 2/4MB: upper memory for OS */    {    (void *) VM_PAGE_SIZE,    (void *) VM_PAGE_SIZE,    LOCAL_MEM_SIZE_OS,    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_OS    },    /* remaining 2/4MB pages: upper memory for Application */    {    (void *) VM_PAGE_SIZE + LOCAL_MEM_SIZE_OS,    (void *) VM_PAGE_SIZE + LOCAL_MEM_SIZE_OS,    LOCAL_MEM_SIZE - (VM_PAGE_SIZE + LOCAL_MEM_SIZE_OS), /* sysMemTop() fix */    VM_STATE_MASK_FOR_ALL,    VM_STATE_FOR_MEM_APPLICATION    },#   endif /* (LOCAL_MEM_LOCAL_ADRS >= VM_PAGE_SIZE) */#endif	/* (VM_PAGE_SIZE == PAGE_SIZE_4KB) */    /* entries for dynamic mappings - create sufficient entries */    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    DUMMY_MMU_ENTRY,    };int sysPhysMemDescNumEnt; 	/* number Mmu entries to be mapped */#ifdef	INCLUDE_PC_CONSOLEPC_CON_DEV	pcConDv [N_VIRTUAL_CONSOLES] =     {    {{{{NULL}}}, FALSE, NULL, NULL},     {{{{NULL}}}, FALSE, NULL, NULL}    };#endif	/* INCLUDE_PC_CONSOLE */#ifdef INCLUDE_FDIMPORT STATUS usrFdConfig (int type, int drive, char *fileName);FD_TYPE fdTypes[] =    {    {2880,18,2,80,2,0x1b,0x54,0x00,0x0c,0x0f,0x02,1,1,"1.44M"},    {2400,15,2,80,2,0x24,0x50,0x00,0x0d,0x0f,0x02,1,1,"1.2M"},    };UINT    sysFdBuf     = FD_DMA_BUF_ADDR;	/* floppy disk DMA buffer address */UINT    sysFdBufSize = FD_DMA_BUF_SIZE;	/* floppy disk DMA buffer size */#endif	/* INCLUDE_FD */#ifdef	INCLUDE_ATAIMPORT STATUS usrAtaConfig (int ctrl, int drive, char *fileName);ATA_TYPE ataTypes[ATA_MAX_CTRLS][ATA_MAX_DRIVES] =    {    /* controller zero */    {          /* ctrl 0 drive 0 */        {           ATA_CTRL0_DRV0_CYL,    /* Number of cylinders on device */        ATA_CTRL0_DRV0_HDS,    /* Number of heads on device */        ATA_CTRL0_DRV0_SPT,    /* Number of sectors per track on device */        ATA_CTRL0_DRV0_BPS,    /* Number of bytes per sector on device */        ATA_CTRL0_DRV0_WPC     /* write precompensation 0xff = dont use */        },        /* ctrl 0 drive 1 */        {           ATA_CTRL0_DRV1_CYL,    /* Number of cylinders on device */        ATA_CTRL0_DRV1_HDS,    /* Number of heads on device */        ATA_CTRL0_DRV1_SPT,    /* Number of sectors per track on device */        ATA_CTRL0_DRV1_BPS,    /* Number of bytes per sector on device */        ATA_CTRL0_DRV1_WPC     /* write precompensation 0xff = dont use */        },   },   /* controller one */   {        /* ctrl 1 drive 0 */        {        ATA_CTRL1_DRV0_CYL,    /* Number of cylinders on device */        ATA_CTRL1_DRV0_HDS,    /* Number of heads on device */        ATA_CTRL1_DRV0_SPT,    /* Number of sectors per track on device */        ATA_CTRL1_DRV0_BPS,    /* Number of bytes per sector on device */        ATA_CTRL1_DRV0_WPC     /* write precompensation 0xff = dont use */        },        /* ctrl 1 drive 1 */        {        ATA_CTRL1_DRV1_CYL,    /* Number of cylinders on device */        ATA_CTRL1_DRV1_HDS,    /* Number of heads on device */        ATA_CTRL1_DRV1_SPT,    /* Number of sectors per track on device */        ATA_CTRL1_DRV1_BPS,    /* Number of bytes per sector on device */        ATA_CTRL1_DRV1_WPC     /* write precompensation 0xff = dont use */        }    }    };ATA_RESOURCE ataResources[ATA_MAX_CTRLS] =    {    /* ATA controller zero resources */    {        /*  PCCARD_RESOURCE */        {         ATA0_VCC,             /* 3-5 volts Vcc */        ATA0_VPP,             /* 5-12 volts Vpp */            {            ATA0_IO_START0,   /* start I/O address 0 */            ATA0_IO_START1    /* start I/O address 1 */            },              {            ATA0_IO_STOP0,    /* end I/0 address 0 */            ATA0_IO_STOP1     /* end I/0 address 1 */            },         ATA0_EXTRA_WAITS,     /* extra wait states 0-2 */        ATA0_MEM_START,       /* start host mem address */        ATA0_MEM_STOP,        /* stop host mem address */        ATA0_MEM_WAITS,       /* mem extra wait states 0-2 */        ATA0_MEM_OFFSET,      /* mem offset of card address */        ATA0_MEM_LENGTH       /* length of memory */        },    ATA0_CTRL_TYPE,           /* IDE_LOCAL or ATA_PCMCIA */    ATA0_NUM_DRIVES,          /* number of drives on controller */     INT_NUM_ATA0,             /* interrupt number of controller */    ATA0_INT_LVL,             /* interrupt level of controller */    ATA0_CONFIG,              /* device configuration settings */    ATA0_SEM_TIMEOUT,         /* semaphore timeout for controller */    ATA0_WDG_TIMEOUT,         /* watchdog timeout for controller */    ATA0_SOCKET_TWIN,         /* socket number for twin card */    ATA0_POWER_DOWN           /* power down mode for this controller */    },  /* ctrl 0 end */    /* ATA controller one resources */    {        /*  PCCARD_RESOURCE */        {         ATA1_VCC,             /* 3-5 volts Vcc */        ATA1_VPP,             /* 5-12 volts Vpp */            {            ATA1_IO_START0,   /* start I/O address 0 */            ATA1_IO_START1    /* start I/O address 1 */            },              {            ATA1_IO_STOP0,    /* end I/0 address 0 */            ATA1_IO_STOP1     /* end I/0 address 1 */            },         ATA1_EXTRA_WAITS,     /* extra wait states 0-2 */        ATA1_MEM_START,       /* start host mem address */        ATA1_MEM_STOP,        /* stop host mem address */        ATA1_MEM_WAITS,       /* mem extra wait states 0-2 */        ATA1_MEM_OFFSET,      /* mem offset of card address */        ATA1_MEM_LENGTH       /* length of memory */        },    ATA1_CTRL_TYPE,           /* IDE_LOCAL or ATA_PCMCIA */    ATA1_NUM_DRIVES,          /* number of drives on controller */     INT_NUM_ATA1,             /* interrupt number of controller */    ATA1_INT_LVL,             /* interrupt level of controller */    ATA1_CONFIG,              /* device configuration settings */    ATA1_SEM_TIMEOUT,         /* semaphore timeout for controller */    ATA1_WDG_TIMEOUT,         /* watchdog timeout for controller */    ATA1_SOCKET_TWIN,         /* socket number for twin card */    ATA1_POWER_DOWN           /* power down mode for this controller */    }   /* ctrl 1 end */    };#endif	/* INCLUDE_ATA */#ifdef	INCLUDE_LPTLPT_RESOURCE lptResources [N_LPT_CHANNELS] =    {    {LPT0_BASE_ADRS, INT_NUM_LPT0, LPT0_INT_LVL,    TRUE, 10000, 10000, 1, 1, 0    },    {LPT1_BASE_ADRS, INT_NUM_LPT1, LPT1_INT_LVL,    TRUE, 10000, 10000, 1, 1, 0    },    {LPT2_BASE_ADRS, INT_NUM_LPT2, LPT2_INT_LVL,    TRUE, 10000, 10000, 1, 1, 0    }    };#endif	/* INCLUDE_LPT */int	sysBus		= BUS;		/* system bus type (VME_BUS, etc) */int	sysCpu		= CPU;		/* system cpu type (MC680x0) */char	*sysBootLine	= BOOT_LINE_ADRS; /* address of boot line */char	*sysExcMsg	= EXC_MSG_ADRS;	/* catastrophic message area */int	sysProcNum;			/* processor number of this cpu */int	sysFlags;			/* boot flags */char	sysBootHost [BOOT_FIELD_LEN];	/* name of host from which we booted */char	sysBootFile [BOOT_FIELD_LEN];	/* name of file from which we booted */UINT	sysIntIdtType	= SYS_INT_TRAPGATE; /* IDT entry type */UINT	sysProcessor	= NONE;		/* 0=386, 1=486, 2=P5, 4=P6, 5=P7 */UINT	sysCoprocessor	= 0;		/* 0=none, 1=387, 2=487 */int 	sysWarmType	= SYS_WARM_TYPE;      /* system warm boot type */int	sysWarmFdDrive	= SYS_WARM_FD_DRIVE;  /* 0 = drive a:, 1 = b: */int	sysWarmFdType	= SYS_WARM_FD_TYPE;   /* 0 = 3.5" 2HD, 1 = 5.25" 2HD */int	sysWarmAtaCtrl	= SYS_WARM_ATA_CTRL;  /* controller 0 or 1 */int	sysWarmAtaDrive	= SYS_WARM_ATA_DRIVE; /* Hd drive 0 (c:), 1 (d:) */int	sysWarmTffsDrive= SYS_WARM_TFFS_DRIVE; /* TFFS drive 0 (DOC) */UINT	sysStrayIntCount = 0;		/* Stray interrupt count */char	*memTopPhys	= NULL;		/* top of memory */char	*memRom		= NULL;		/* saved bootrom image */GDT	*pSysGdt	= (GDT *)(LOCAL_MEM_LOCAL_ADRS + GDT_BASE_OFFSET);CPUID	sysCpuId	= {0,{0},0,0,0,0,0,0,0,0,{0},{0}}; /* CPUID struct. */BOOL	sysBp		= TRUE;		/* TRUE for BP, FALSE for AP */#ifdef	SYS_INT_DEBUG			/* element should be > sysInumTblNumEnt */UINT32 sysIntCount[64];			/* incremented in the EOI routine */#endif	/* SYS_INT_DEBUG */#if     defined(VIRTUAL_WIRE_MODE)UINT8	sysInumTbl[]	= 		/* IRQ vs IntNum table */    {    INT_NUM_IRQ0,			/* IRQ  0 Vector No */    INT_NUM_IRQ0 + 1,			/* IRQ  1 Vector No */    INT_NUM_IRQ0 + 2,			/* IRQ  2 Vector No */    INT_NUM_IRQ0 + 3,			/* IRQ  3 Vector No */    INT_NUM_IRQ0 + 4,			/* IRQ  4 Vector No */    INT_NUM_IRQ0 + 5,			/* IRQ  5 Vector No */    INT_NUM_IRQ0 + 6,			/* IRQ  6 Vector No */    INT_NUM_IRQ0 + 7,			/* IRQ  7 Vector No */    INT_NUM_IRQ0 + 8,			/* IRQ  8 Vector No */    INT_NUM_IRQ0 + 9,			/* IRQ  9 Vector No */    INT_NUM_IRQ0 + 10,			/* IRQ 10 Vector No */    INT_NUM_IRQ0 + 11,			/* IRQ 11 Vector No */    INT_NUM_IRQ0 + 12,			/* IRQ 12 Vector No */    INT_NUM_IRQ0 + 13,			/* IRQ 13 Vector No */    INT_NUM_IRQ0 + 14,			/* IRQ 14 Vector No */    INT_NUM_IRQ0 + 15,			/* IRQ 15 Vector No */    INT_NUM_LOAPIC_TIMER,		/* Local APIC Timer Vector No */    INT_NUM_LOAPIC_ERROR,		/* Local APIC Error Vector No */    INT_NUM_LOAPIC_LINT0,		/* Local APIC LINT0 Vector No */    INT_NUM_LOAPIC_LINT1,		/* Local APIC LINT1 Vector No */    INT_NUM_LOAPIC_PMC,			/* Local APIC PMC Vector No */    INT_NUM_LOAPIC_THERMAL,		/* Local APIC Thermal Vector No */    INT_NUM_LOAPIC_SPURIOUS,		/* Local APIC Spurious Vector No */    INT_NUM_LOAPIC_SM,			/* Local APIC SM Vector No */    INT_NUM_LOAPIC_SM + 1,		/* Local APIC SM Vector No */    INT_NUM_LOAPIC_SM + 2,		/* Local APIC SM Vector No */    INT_NUM_LOAPIC_SM + 3,		/* Local APIC SM Vector No */    INT_NUM_LOAPIC_IPI,			/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 1,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 2,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 3,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 4,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 5,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 6,		/* Local APIC IPI Vector No */    INT_NUM_LOAPIC_IPI + 7		/* Local APIC IPI Vector No */    };#elif   defined(SYMMETRIC_IO_MODE)UINT8	sysInumTbl[]	=  		/* IRQ vs IntNum table */    {    INT_NUM_IOAPIC_IRQ0,		/* IO APIC IRQ  0 Vector No */    INT_NUM_IOAPIC_IRQ1,		/* IO APIC IRQ  1 Vector No */    INT_NUM_IOAPIC_IRQ2,		/* IO APIC IRQ  2 Vector No */    INT_NUM_IOAPIC_IRQ3,		/* IO APIC IRQ  3 Vector No */    INT_NUM_IOAPIC_IRQ4,		/* IO APIC IRQ  4 Vector No */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -