/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
ny kernel function-spørgsmål!
Fra : Katrine


Dato : 12-03-03 13:24

Hej alle.

Jeg er ved at lege lidt med at tilføje en ny kernel-funktion (lege og lege -
det er en afleveringsopgave på det kursus jeg følger) og har i den
forbindelse et stort spørgsmål, da jeg ikke er så god til c-programmering:

Min funtion kaldes med et parameter, som jeg skal ændre i. Derfor skal jeg
have lov til at skrive i bruger-hukommelse. Til dette formål kan jeg bruge
verify_area(int type, const void *addr., unsigned long size). addr
argumentet specificerer den adresse der skal verificeres, og spørgsmålet er
så: Hvordan ved jeg, hvad adressen er på der, hvor jeg skal skrive? Skal jeg
"bare" bruge navnet på min variabel?

Mvh
Katrine



 
 
Jacob Bunk Nielsen (12-03-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 12-03-03 14:00

"Katrine" <hatikvah83@hotmail.com> writes:

> Min funtion kaldes med et parameter, som jeg skal ændre i. Derfor skal jeg
> have lov til at skrive i bruger-hukommelse. Til dette formål kan jeg bruge
> verify_area(int type, const void *addr., unsigned long size). addr
> argumentet specificerer den adresse der skal verificeres, og spørgsmålet er
> så: Hvordan ved jeg, hvad adressen er på der, hvor jeg skal skrive? Skal jeg
> "bare" bruge navnet på min variabel?

Nej, du skal bruge adressen på din variabel. Den får du ved at sætte
'&' foran din variabel.

Hvis har tænkt dig at kode C, så lån/køb en kopi af "The C Programming
Language" af Kernighan og Ritchie.

Generelt har du nok bedre held med at få gode svar omkring
C-programmering ovre i news:dk.edb.programmering.c.

God fornøjelse med opgaven.

--
Jacob - www.bunk.cc
Lead me not into temptation... I can find it myself.

Katrine (12-03-2003)
Kommentar
Fra : Katrine


Dato : 12-03-03 20:05


"Jacob Bunk Nielsen" <spam@bunk.cc> wrote in message
news:spamdrop+m3isuokaf7.fsf@abbeden.bunk.cc...
>
> Hvis har tænkt dig at kode C, så lån/køb en kopi af "The C Programming
> Language" af Kernighan og Ritchie.
>
> Generelt har du nok bedre held med at få gode svar omkring
> C-programmering ovre i news:dk.edb.programmering.c.
>

Okay. Det er hermed skrevet på "indkøbssedlen". Da du nu klarede dig så godt
tænkte jeg, om du så også kan svare mig på, hvor i Linux jeg kan finde
kernevariablen xtime? Jeg synes ikke jeg kan finde den - og det er noget møg
når det er en del af det funktionen skal arbejde med :)

> God fornøjelse med opgaven.
>

Tjo, fornøjelse og fornøjelse. Det er lidt hårdt at blive smidt ud i et
kerne-projekt mens forelæseren er i Norge så han ikke kan hjælpe og så skal
man endda også lære sig et nyt programmeringssprog "owernight". Men
lærerigt - det tror jeg det er.

> --
> Jacob - www.bunk.cc
> Lead me not into temptation... I can find it myself.

Mvh
Katrine



Jacob Bunk Nielsen (12-03-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 12-03-03 20:54

"Katrine" <hatikvah83@hotmail.com> writes:

> Okay. Det er hermed skrevet på "indkøbssedlen". Da du nu klarede dig så godt
> tænkte jeg, om du så også kan svare mig på, hvor i Linux jeg kan finde
> kernevariablen xtime?

grep xtime /usr/src/linux/* -r

Så dukker den op rigtig mange gange. I /usr/src/linux/arch/i386/time.c
er det en struct timeval. Den er defineret i
/usr/src/linux/include/linux/time.h som:

struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};

Da jeg ikke aner hvad du rent faktisk skal bruge kan jeg ikke rigtig
sige noget om det er det rigtige.

Men, igen - news:dk.edb.programmering.c er hvor de skrappe drenge og
piger hænger ud.

> Jeg synes ikke jeg kan finde den - og det er noget møg
> når det er en del af det funktionen skal arbejde med :)

Ovenstående er en værdi, ikke en funktion. Måske den funktion du skal
bruge tager en struct timeval * som argument?

> Tjo, fornøjelse og fornøjelse. Det er lidt hårdt at blive smidt ud i et
> kerne-projekt mens forelæseren er i Norge så han ikke kan hjælpe og så skal
> man endda også lære sig et nyt programmeringssprog "owernight". Men
> lærerigt - det tror jeg det er.

Det minder mig om dengang jeg havde "Maskinnær programmering". Det var
også en hård indlæring af C og assembler (og med en underviser der
IMHO er et kvaj).

C er faktisk et ret lille programmeringssprog. Det svære består i at
forstå hele konceptet med pointere (og arrays), som er ret centralt i
C.

--
Jacob - www.bunk.cc
Suggest you just sit there and wait till life gets easier.

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408844
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste