LINUX.ORG.RU

подскажите по функции определения процессоров...


0

0

подскажите по ошибкам, плиз....
--- cpu.o ---
cc1: warnings being treated as errors
/usr/src/sys/arch/xen/i386/cpu.c: In function 'cpu_init_first':
/usr/src/sys/arch/xen/i386/cpu.c:213: warning: implicit declaration of function 'lapic_cpu_number'
/usr/src/sys/arch/xen/i386/cpu.c: In function 'cpu_hatch':
/usr/src/sys/arch/xen/i386/cpu.c:689: warning: implicit declaration of function 'lapic_enable'
/usr/src/sys/arch/xen/i386/cpu.c:690: warning: implicit declaration of function 'lapic_initclocks'
/usr/src/sys/arch/xen/i386/cpu.c:701: warning: implicit declaration of function 'lapic_set_lvt'
/usr/src/sys/arch/xen/i386/cpu.c:716: warning: implicit declaration of function 'cc_microset'
/usr/src/sys/arch/xen/i386/cpu.c: In function 'cpu_set_tss_gates':
/usr/src/sys/arch/xen/i386/cpu.c:823: warning: implicit declaration of function 'cpu_init_tss'
/usr/src/sys/arch/xen/i386/cpu.c:827: warning: passing argument 1 of 'setsegment' from incompatible pointer type
/usr/src/sys/arch/xen/i386/cpu.c:828: error: incompatible types in assignment
*** [cpu.o] Error code 1

# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==213'
        int cpunum = lapic_cpu_number();
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==689'
        lapic_enable();
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==690'
        lapic_initclocks();
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==701'
        lapic_set_lvt();
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==716'
                cc_microset(ci);
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==823'
        cpu_init_tss(&ci->ci_ddbipi_tss, ci->ci_ddbipi_stack,
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==827'
            SDT_SYS386TSS, SEL_KPL, 0, 0);
# cat /usr/src/sys/arch/xen/i386/cpu.c |awk 'NR==828'
        ci->ci_gdt[GIPITSS_SEL].sd = sd;

Ну собственно ... Ворнинг - не ошибка. Т.е. они не ведут к каким бы то нибыло реальным проблеммам. Поэтому на них можно не обращать внимания. Насчет последнего (828я строка файла ЦПУ.Ц) - ну компилер жалуется на несоответсвие типов при присвоении ... Я ошибаюсь или это происходит при компиляции ядра? Если да - то процессор не правильно выбрал, возможно. Если нет - то надо разбираться ... одна строчка мало о чем говорит.

anonymous
()
Ответ на: комментарий от anonymous

> одна строчка мало о чем говорит.

Вероятно, сорцы xen'а и какие-нибудь инклюды по версиям не совпадают.

mv ★★★★★
()
Ответ на: комментарий от mv

>Вероятно, сорцы xen'а и какие-нибудь инклюды по версиям не совпадают.
Ошибка вылетает при попытке собрать с 'option MULTIPROCESSOR', есть без- то собирается и работает, но видит только одно ядро одного проца.
проц выбераю так...
u_int32_t cpus_attached = 0;

struct cpu_info *phycpu_info[X86_MAXPROCS] = { &cpu_info_primary };

#ifdef MULTIPROCESSOR
/*
 * Array of CPU info structures.  Must be statically-allocated because
 * curproc, etc. are used early.
 */
struct cpu_info *cpu_info[X86_MAXPROCS] = { &cpu_info_primary };

u_int32_t cpus_running = 0;

void            cpu_hatch(void *);
static void     cpu_boot_secondary(struct cpu_info *ci);
static void     cpu_start_secondary(struct cpu_info *ci);
static void     cpu_copy_trampoline(void);

/*
 * Runs once per boot once multiprocessor goo has been detected and
 * the local APIC on the boot processor has been mapped.
 *
void            cpu_hatch(void *);
static void     cpu_boot_secondary(struct cpu_info *ci);
static void     cpu_start_secondary(struct cpu_info *ci);
static void     cpu_copy_trampoline(void);

/*
 * Runs once per boot once multiprocessor goo has been detected and
 * the local APIC on the boot processor has been mapped.
 *
 * Called from lapic_boot_init() (from mpbios_scan()).
 */
void
cpu_init_first()
{
        int cpunum = lapic_cpu_number();

        if (cpunum != 0) {
                cpu_info[0] = NULL;
                cpu_info[cpunum] = &cpu_info_primary;
        }

        cpu_copy_trampoline();
}
#endif

int
cpu_match(parent, match, aux)
        struct device *parent;
        struct cfdata *match;
        void *aux;
{

        return 1;
}

void
cpu_attach(parent, self, aux)
        struct device *parent, *self;
        void *aux;
{

quasi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.