Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9067777
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T17:01:36+00:00 2026-06-16T17:01:36+00:00

hi there i’m working on a project about compiling kernel. However, i’m facing with

  • 0

hi there i’m working on a project about compiling kernel. However, i’m facing with an error which says

fork.c: In function `do_fork':
fork.c:764: request for member `list' in something not a structure or union

brief explanation: i’m using a ready linked list which is defined in kernel for every type of structure.(so i have my own data structure) Moreover, i use pre-defined functions like add,traverse,delete node for my linked list but i can’t have any progress because of this error. here you can see the header file which contains my data struct.

/* project_header.h> */
#ifndef __LINUX_PROJECT_HEADER_H

#define __LINUX_PROJECT_HEADER_H

#include <linux/linkage.h>
#include <linux/vmalloc.h>
#include <linux/list.h>

#endif

typedef struct node{

        struct list_head list; /* kernel's list structure */
        long int sample_pid;

}NODE;

this header file is in location include/linux directory.

this is my system call which i will use within my new kernel. and i defined projectList globally to use it in other files.

#include <linux/sample.h>
#include <linux/project_header.h>

NODE projectList;

asmlinkage void sys_sample(void){

        NODE* temp;

                list_for_each_entry(temp, &projectList.list, list){

                        printk(KERN_INFO "TEMP->PID = %ld\n", temp->project_pid);
                }

        return;
}

and i try to use it in fork.c which is in kernel/ directory and here you can see the sample code i add into fork.c. On the other hand, i call projectList with statement extern projectList to refer which was defined in sample.c

      /* do_fork.c */
      /* do_fork() function */
      #include <linux/project_header.h>
      #include <linux/sample.h>

      extern projectList; // Call variable projectList

      .
      .
      .

      do_fork(parameters..){

     struct task_struct* p;
.
.

     line 759-->NODE* newNode;

     line 760-->newNode = kmalloc(sizeof(*newNode), GFP_KERNEL);

     line 761-->newNode->sample_pid = p->pid;

     line 762-->INIT_LIST_HEAD(&newNode->list);

     /* add the new node to mylist */

     line 764--> list_add_tail(&(newNode->list), &(projectList.list));

     .
     .
     .
    }

i hope i been clear to you, i will be very glad if you can help me and thanks anyway

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T17:01:37+00:00Added an answer on June 16, 2026 at 5:01 pm
    extern projectList; // Call variable projectList
    

    You forgot to declare the type of projectList here, so if the compiler is in C89 mood, it applies the “implicit int” rule. Thus your projectList is an int in fork.c, and not a struct or union that has members.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

There's a Rails 3.2.3 web application which doesn't use any database. But in spite
There is a directed graph having a single designated node called root from which
There are two intents on the receiver side which are called from the same
There are nice SO question and answers about this issue, but these options didn't
There was a similar question posted asking in general about alternatives to Qt. Well,
There's a webpage with something annoying on it which I'd like to hide every
There is a properly formatted text in Html textarea which looks like : As
There is about 2000 lines of this, so manually would probably take more work
There are many free online services which provides you with large spaces to store
There is an error occurring in an app of mine when I set an

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.