如何在xv6中初始化globe结构

时间:2017-12-10 23:37:27

标签: c xv6

我正在尝试在xv6中实现一个队列。在proc.c中,我有一个名为

的结构
struct pqueue_n
{
    struct proc *head;
    struct proc *tail;
    int lenght;
};

我还创建了一个结构数组

struct pqueue_n queue[MAX_LL];

初始化我看起来像这样

struct pqueue_n* queue = {0,0,0};

我写了两个方法,也就是入队和出队 void enqueue_n(void)

{
    struct proc *p = myproc();
    struct pqueue_n* pq;


    if(p->priority < MAX_PRIORITY || p->priority> MIN_PRIORITY)
    {
        return;
    }

    if (pq->tail == ((void *)0))
    {
        return;
    }
    if (pq->head == ((void *)0))
    {
        p->next = pq->head;
        pq->head = p;
        pq->tail = p;
    }
    else if(pq->head != ((void*)0))
    {
        if(pq->head->priority == p->priority)
        {
            p->next = pq->head;
            pq->head = p;
        }
    }
    pq->lenght++;
}
void dequeue_n(void)
{
    struct proc *p; 
    struct pqueue_n* pq;
    { 
        if(pq->head == ((void *)0))
        {
            return ;
        }
        p = pq->head;
        pq->head = pq->head->next ;
        p->next = 0;
    }
}

我正在尝试将结构初始化为globe结构。因此我可以在我的方法中使用该结构。每当我编译。我收到此错误  &#34;标量初始化器中的多余元素&#34; &#34;'pq'在此函数中未初始化使用&#34;。

0 个答案:

没有答案