66 Commits

Author SHA1 Message Date
Siegfried Kienzle
8ad08b638d exclude some file-expressions 2017-06-07 10:43:24 +00:00
Siegfried Kienzle
b861610c8e remove compiled files 2017-06-07 10:41:57 +00:00
Siegfried Kienzle
b752b7defc remove compiled files 2017-06-07 10:34:27 +00:00
Siegfried Kienzle
15909858f1 remove compiled files 2017-06-07 10:32:40 +00:00
Siegfried Kienzle
76044328ea remove compiled files 2017-06-07 10:31:32 +00:00
Siegfried Kienzle
c712dc57b5 remove compiled files 2017-06-07 10:29:27 +00:00
Siegfried Kienzle
1f5d2f3d3e remove compiled files 2017-06-07 10:26:49 +00:00
Siegfried Kienzle
7f186888bd try to implement modules for infrared-sensors 2017-06-07 10:18:08 +00:00
Siegfried Kienzle
417a34fd75 copied config.sh from hw5 2017-06-07 09:02:32 +00:00
Siegfried Kienzle
14c84c4904 remove infrared_sensor-folder 2017-06-07 09:01:09 +00:00
Siegfried Kienzle
01758e374a copied Makefile from hw5 2017-06-07 09:00:11 +00:00
Siegfried Kienzle
feafd1e7d0 remove unused functions 2017-06-07 08:59:28 +00:00
Siegfried Kienzle
02a3257c32 copied from hw5 in syso 2017-06-07 08:26:04 +00:00
Siegfried Kienzle
d478312a13 remove motor.c 2017-06-07 08:25:07 +00:00
Siegfried Kienzle
308695e9df rename folder module 2017-06-07 08:24:46 +00:00
Siegfried Kienzle
596bcfad22 rename module into modules 2017-06-07 08:24:13 +00:00
Siegfried Kienzle
b1cad51075 remove gpio.c and gpio.h 2017-06-07 08:23:42 +00:00
Siegfried Kienzle
bf30fd35af touch infrared_senso_in_4.c 2017-06-07 10:09:34 +02:00
Siegfried Kienzle
f60778421c touch infrared_senso_in_1.c 2017-06-07 10:09:04 +02:00
Siegfried Kienzle
b5a1cd4e25 add infrared_sensor 2017-06-07 10:04:40 +02:00
Siegfried Kienzle
dca676ec38 start to write infrared_sensor 2017-06-07 09:19:10 +02:00
Siegfried Kienzle
3c1a29ca11 try to implement the infrared_sensor-module 2017-06-07 08:10:20 +02:00
Siegfried Kienzle
811e431b91 remove some bugs 2017-04-25 13:40:20 +02:00
kawaii
acb09659b6 add stop-function 2017-04-25 11:30:45 +00:00
kawaii
3cd610acf1 use argc and rename PIN_MOTOR-Flags 2017-04-25 10:22:28 +00:00
kawaii
a7f3a50c35 remove flag 2017-04-25 10:21:47 +00:00
Siegfried Kienzle
b2419a6593 remove some comment on gpio.c gpio.h and empty lines on motor.c 2017-04-25 10:56:22 +02:00
Siegfried Kienzle
1f483938e6 add function registerInput 2017-04-25 07:48:18 +02:00
Siegfried Kienzle
f5a9c9eac2 move defines to header-file 2017-04-25 07:36:03 +02:00
Siegfried Kienzle
73e359873f outsourcing of gpio-code 2017-04-25 07:33:40 +02:00
Siegfried Kienzle
1616dd670b outsourcing of gpio-code 2017-04-25 07:33:04 +02:00
Siegfried Kienzle
0bcdfb38a3 add include-instructions 2017-04-25 07:32:36 +02:00
kawaii
b1fc3e45b5 change GPIO_MOTOR1_PIN from GPIO6 to GPIO20 2017-02-01 01:11:44 +00:00
kawaii
60f989dbac add error-handling on file-deskriptor 2017-04-24 17:21:01 +00:00
Siegfried Kienzle
49a256b373 write an Makefile for motor.c 2017-04-22 17:35:50 +02:00
Siegfried Kienzle
644f053f9d begin to write motor.c 2017-04-22 17:35:29 +02:00
Siegfried Kienzle
70969386a6 create file motor.c 2017-04-22 15:57:35 +02:00
Michael Mächtel
6b08efc581 Merge pull request #1 from sikienzl/master
V1 + V2: Abgabe
2017-04-06 15:21:35 +02:00
Simon Wörner
f6327fc45d Merge pull request #10 from SWW13/travis-ci
Travis CI
2017-04-06 14:07:51 +02:00
Simon Wörner
54937c0b0b Merge pull request #9 from sikienzl/v2-delay-auswertung
V2: added Auswertung.md
2017-04-06 13:58:22 +02:00
Simon Wörner
d11fbff4ac added empty travis ci 2017-04-06 13:54:40 +02:00
Simon Wörner
e1aa450d6c added Auswertung.md 2017-04-06 13:10:05 +02:00
Simon Wörner
c61a74947f added render script and output png 2017-04-05 11:26:53 +02:00
kawaii
c796ca9d43 fixed led5 release build 2017-04-05 11:26:53 +02:00
Simon Wörner
beb8b2a987 Merge pull request #7 from SWW13/readme
modified README.md
2017-04-03 20:00:04 +02:00
Siegfried Kienzle
7aa17ef2eb modified README.md 2017-04-03 19:58:49 +02:00
Simon Wörner
2a086990df Merge pull request #6 from SWW13/v2-loop-rust
V2: loop (rust) + delay
2017-04-03 19:56:53 +02:00
Simon Wörner
e791c4fb6c fixed realtime arg help 2017-04-03 19:55:44 +02:00
Simon Wörner
20f4698db7 use CLOCK_MONOTONIC from libc, added os x support 2017-04-03 19:46:55 +02:00
Simon Wörner
bb066d5ba8 added documentation 2017-04-03 19:15:43 +02:00
Simon Wörner
c112baa562 rustfmt 2017-04-03 19:15:43 +02:00
Simon Wörner
64558495b1 added plot script and measured delays 2017-04-03 19:15:43 +02:00
Simon Wörner
b49df99659 added realtime parameter 2017-04-03 19:15:43 +02:00
Simon Wörner
c8914f364c moved sleep function to lib.rs 2017-04-03 19:15:42 +02:00
Simon Wörner
5f61004406 replace broken shuteye with libc 2017-04-03 19:15:33 +02:00
Simon Wörner
d4491f7dc1 fixed relativ delay with seconds 2017-04-03 19:10:51 +02:00
Simon Wörner
325ec5710f fixed cargo test 2017-04-03 19:10:50 +02:00
Simon Wörner
2fc9c4874f added argparser, multiple measurements and output 2017-04-03 19:10:34 +02:00
28b4e62767 Remove unnecessary nanosleep 2017-04-03 17:49:25 +02:00
22398b03aa V1 switch.c: Move duplicate code into function 2017-04-03 17:49:25 +02:00
ae5d5b638f V1: switch.c 2017-04-03 17:49:25 +02:00
Simon Wörner
37d89632a7 Revert "V1: switch.c" 2017-04-03 17:48:55 +02:00
Simon Wörner
d63bd4f35b measure sleep delay in loop 2017-04-02 11:04:51 +02:00
Siegfried Kienzle
1a7e62f5e2 Merge pull request #3 from sikienzl/v1-switch
V1: switch.c
2017-04-02 09:01:35 +02:00
Siegfried Kienzle
2289644aec Merge pull request #2 from SWW13/v1-led5
V1: led5
2017-04-01 15:38:10 +02:00
Siegfried Kienzle
fbbb82740a Merge pull request #1 from SWW13/v1-led-sh
V1: led.sh
2017-04-01 14:53:24 +02:00
38 changed files with 2615 additions and 130 deletions

5
.travis.yml Normal file
View File

@@ -0,0 +1,5 @@
language: rust
rust:
- nightly
script:
- true

View File

@@ -81,9 +81,7 @@ fn main() {
chan_select! {
rpanic.recv() => { },
signal.recv() -> signal => {
#[cfg(debug_assertions)]
println!("received signal: {:?}", signal);
sdone.send(());
}
}

View File

@@ -1,120 +1,102 @@
/*
* switch.c
* How to register an button and count this
* author: Simon Wörner, Manuel Vögele,
* Siegfried Kienzle
* 24-March-2017
*
* */
#define BUTTON "17"
#define IN "in\n"
#define OUT "out\n"
#define HIGH "1\n"
#define LOW "0\n"
#define MAXBYTES 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
int writeIntoFile(char* value, char* path)
#define BASEPATH "/sys/class/gpio/"
#define GPIO_FOLDER "gpio%s/"
#define PIN_BUTTON "17"
#define PIN_LED "18"
#define LED_ON 0
#define LED_OFF 1
#define BUTTON_PRESSED 0
#define BUTTON_RELEASED 1
void writeFile(char *filename, char *buffer, size_t count)
{
int fd;
char buffer[3];
strcpy(buffer, value);
if((fd=open(path, O_RDWR | O_CREAT | O_TRUNC)) == -1) {
perror(NULL);
return EXIT_FAILURE;
}
if((write(fd, &buffer, sizeof(buffer))) == -1) {
perror("Cannot write into file");
return EXIT_FAILURE;
}
printf("Success");
close(fd);
return EXIT_SUCCESS;
int fd = open(filename, O_WRONLY);
write(fd, buffer, count);
close(fd);
}
int reserve(char* gpioPort)
void registerPin(char *pin)
{
char str[3];
strcpy(str, gpioPort);
strcat(str, "\n");
return writeIntoFile(str,"/sys/class/gpio/export");
writeFile(BASEPATH "export", pin, strlen(pin));
}
int setDirection(char* gpioPort, char* inOut)
void freePin(char *pin)
{
char *direc = "/direction";
char *gpioPath = "/sys/class/gpio/gpio";
char path[32];
strcpy(path, gpioPath);
strcat(path, gpioPort);
strcat(path, direc);
return writeIntoFile(inOut, path);
writeFile(BASEPATH "unexport", pin, strlen(pin));
}
int setOutput(char* gpioPort, char* volt)
void setDirection(char *pin, char *direction, int dirlen)
{
char *val = "/value";
char *gpioPath = "/sys/class/gpio/gpio";
char path[28];
strcpy(path, gpioPath);
strcat(path, gpioPort);
strcat(path, val);
return writeIntoFile(volt, path);
char path[50];
sprintf(path, BASEPATH GPIO_FOLDER "direction", pin);
writeFile(path, direction, dirlen);
}
int mainLoop(char* gpioPort)
void registerInput(char *pin)
{
int fid, portValue, count, countButton;
char *val = "/value";
char *gpioPath = "/sys/class/gpio/gpio";
char path[28];
strcpy(path, gpioPath);
strcat(path, gpioPort);
strcat(path, val);
while(true)
{
if( (fid=open(path, O_RDONLY)) == -1)
perror("Fehler ");
if(readInput(fid) == 1)
{
countButton++;
printf("%d", countButton);
}
close(fid);
}
registerPin(pin);
setDirection(pin, "in", 2);
}
char[] readInput(int fid)
void registerOutput(char *pin)
{
char buffer[MAXBYTES];
read(fid, &buffer, MAXBYTES);
return buffer;
registerPin(pin);
setDirection(pin, "out", 3);
}
int unexport(char* gpioport)
int readInput(char *pin)
{
char str[3];
strcpy(str, gpioPort);
strcat(str, "\n");
return writeIntoFile(str,"/sys/class/gpio/unexport");
char path[50];
int state;
sprintf(path, BASEPATH GPIO_FOLDER "value", pin);
FILE *fd = fopen(path, "r");
fscanf(fd, "%i", &state);
fclose(fd);
return state;
}
void writeOutput(char *pin, int state)
{
char path[50];
sprintf(path, BASEPATH GPIO_FOLDER "value", pin);
FILE *fd = fopen(path, "w");
fprintf(fd, "%i", state);
fclose(fd);
}
int main()
{
reserve(BUTTON);
setDirection(BUTTON, IN);
mainLoop(BUTTON);
unexport(BUTTON);
return 0;
struct timespec sleeptime, sleepremain;
int oldstate = BUTTON_PRESSED;
int state;
int count = 0;
registerInput(PIN_BUTTON);
registerOutput(PIN_LED);
sleeptime.tv_sec = 0;
sleeptime.tv_nsec = 1000000;
while (1)
{
nanosleep(&sleeptime, &sleepremain);
state = readInput(PIN_BUTTON);
if (state == BUTTON_PRESSED && oldstate == BUTTON_RELEASED)
{
count++;
printf("Number of button pushes: %i\n", count);
}
if (state == BUTTON_PRESSED)
writeOutput(PIN_LED, LED_ON);
else
writeOutput(PIN_LED, LED_OFF);
oldstate = state;
}
}

1
V2/delay/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.eps

41
V2/delay/Auswerung.md Normal file
View File

@@ -0,0 +1,41 @@
# Auswertung
## No Load
### No Realtime
Läuft der Prozess ohne Load und Realtime so liegt das Delay im Mean bei etwa **100µs**.
Der Ausreiser bei *11.000µs* Sleep Periode lässt sich durch eine kurze zeitigte Last durch einen Hintergrundprozess erklären, da bei jeder Messung (100 Durchläufe) immer der Worst Case betrachtet wird.
![delay_idle](delay_idle.png)
### Realtime
Im Vergleich dazu sinkt bei aktiver Realtime Priorität das Mean Delay auf etwa **25µs**.
Hier gibt es dafür mehr Ausreiser welche aber nicht über **190µs** hinaus gehen, auch hier lassen sich diese durch eine kurze zeitigte Last von einen Hintergrundprozess erklären.
![delay_idle_rt](delay_idle_rt.png)
## Load
### No Realtime
Bei Load ohne Realtime gibt es zu Begin einen großen Ausreiser mit über **10.000 µs**.
![delay_load](delay_load.png)
### Realtime
Durch die Realtime Priorität können solche Ausreiser vermieden werden, hier liegt der Mean etwas über dem ohne Last (etwa **27,5µs**) und die Ausreiser gehen bis knapp **55µs**.
Dies liegt immer weit unter den Werten ohne Load ohne Realtime Priorität.
![delay_load_rt](delay_load_rt.png)

BIN
V2/delay/delay_idle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

100
V2/delay/delay_idle.txt Normal file
View File

@@ -0,0 +1,100 @@
1000000 74885
2000000 70188
3000000 100960
4000000 96993
5000000 97920
6000000 95671
7000000 95193
8000000 96590
9000000 93091
10000000 99800
11000000 97447
12000000 604203
13000000 104094
14000000 95803
15000000 95638
16000000 102138
17000000 102025
18000000 91546
19000000 96641
20000000 99028
21000000 120893
22000000 100362
23000000 96186
24000000 97427
25000000 136011
26000000 97303
27000000 106304
28000000 101138
29000000 107326
30000000 98307
31000000 102672
32000000 126308
33000000 96300
34000000 98373
35000000 95499
36000000 96948
37000000 100012
38000000 145522
39000000 103847
40000000 99775
41000000 97942
42000000 100953
43000000 145006
44000000 100518
45000000 97123
46000000 97738
47000000 163093
48000000 96574
49000000 99272
50000000 102283
51000000 141284
52000000 110285
53000000 98504
54000000 99068
55000000 105413
56000000 116444
57000000 94664
58000000 106010
59000000 96990
60000000 116771
61000000 105616
62000000 101075
63000000 108201
64000000 100692
65000000 97401
66000000 96037
67000000 156027
68000000 101695
69000000 100123
70000000 96780
71000000 97292
72000000 98376
73000000 101387
74000000 95961
75000000 98504
76000000 100942
77000000 97391
78000000 100610
79000000 95913
80000000 96685
81000000 96468
82000000 162291
83000000 138063
84000000 97220
85000000 96690
86000000 103070
87000000 96431
88000000 102827
89000000 132035
90000000 97650
91000000 101599
92000000 96850
93000000 105641
94000000 100006
95000000 96558
96000000 96290
97000000 99299
98000000 97207
99000000 96728
100000000 99478

BIN
V2/delay/delay_idle_rt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

100
V2/delay/delay_idle_rt.txt Normal file
View File

@@ -0,0 +1,100 @@
1000000 16656
2000000 25916
3000000 21532
4000000 21365
5000000 28073
6000000 61812
7000000 25969
8000000 22677
9000000 28709
10000000 44480
11000000 47542
12000000 44199
13000000 26011
14000000 50844
15000000 24220
16000000 47490
17000000 30084
18000000 22418
19000000 24543
20000000 130157
21000000 87386
22000000 28783
23000000 41480
24000000 34803
25000000 51356
26000000 115667
27000000 57116
28000000 25699
29000000 27147
30000000 25419
31000000 25408
32000000 25971
33000000 25752
34000000 27513
35000000 22138
36000000 25356
37000000 24461
38000000 24919
39000000 26107
40000000 27034
41000000 27025
42000000 48784
43000000 188304
44000000 65535
45000000 72815
46000000 81399
47000000 89305
48000000 72733
49000000 27411
50000000 27557
51000000 101504
52000000 26026
53000000 25078
54000000 25693
55000000 22349
56000000 26401
57000000 27381
58000000 27996
59000000 23610
60000000 28079
61000000 22913
62000000 23371
63000000 28777
64000000 26476
65000000 27091
66000000 24528
67000000 23684
68000000 23675
69000000 22883
70000000 24904
71000000 26925
72000000 22332
73000000 24405
74000000 26530
75000000 23811
76000000 26094
77000000 22854
78000000 24511
79000000 22833
80000000 31417
81000000 21719
82000000 23324
83000000 26803
84000000 26585
85000000 26437
86000000 29864
87000000 26000
88000000 28438
89000000 28689
90000000 22794
91000000 23148
92000000 22096
93000000 26096
94000000 27233
95000000 25661
96000000 24244
97000000 25797
98000000 22609
99000000 25673
100000000 26861

BIN
V2/delay/delay_load.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

100
V2/delay/delay_load.txt Normal file
View File

@@ -0,0 +1,100 @@
1000000 10251030
2000000 81073
3000000 75124
4000000 74646
5000000 63594
6000000 74833
7000000 72323
8000000 75230
9000000 75063
10000000 73386
11000000 78688
12000000 76335
13000000 74814
14000000 76106
15000000 79221
16000000 72074
17000000 77377
18000000 113772
19000000 86679
20000000 81460
21000000 78170
22000000 85867
23000000 78670
24000000 78711
25000000 73493
26000000 73848
27000000 85347
28000000 77889
29000000 83868
30000000 71202
31000000 79993
32000000 72849
33000000 84765
34000000 95432
35000000 86151
36000000 82703
37000000 85662
38000000 82266
39000000 87048
40000000 76569
41000000 137860
42000000 74517
43000000 75653
44000000 77154
45000000 80841
46000000 74633
47000000 85665
48000000 297163
49000000 78457
50000000 86051
51000000 68436
52000000 75406
53000000 387268
54000000 84187
55000000 83396
56000000 76563
57000000 82334
58000000 83886
59000000 283875
60000000 73294
61000000 76200
62000000 78482
63000000 88784
64000000 77055
65000000 79389
66000000 115212
67000000 87911
68000000 79776
69000000 83620
70000000 91839
71000000 84277
72000000 74006
73000000 78058
74000000 81886
75000000 85627
76000000 79419
77000000 87691
78000000 85806
79000000 78192
80000000 74693
81000000 79631
82000000 94621
83000000 76486
84000000 72257
85000000 78811
86000000 88280
87000000 78009
88000000 104926
89000000 78459
90000000 83397
91000000 78648
92000000 67649
93000000 79722
94000000 78514
95000000 79025
96000000 67974
97000000 78225
98000000 78944
99000000 78830
100000000 67622

BIN
V2/delay/delay_load_rt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

100
V2/delay/delay_load_rt.txt Normal file
View File

@@ -0,0 +1,100 @@
1000000 22281
2000000 15345
3000000 14709
4000000 13867
5000000 14377
6000000 28221
7000000 37482
8000000 12732
9000000 21993
10000000 15681
11000000 27859
12000000 23578
13000000 23828
14000000 23871
15000000 22037
16000000 20413
17000000 23163
18000000 18153
19000000 23404
20000000 18447
21000000 24166
22000000 22385
23000000 28885
24000000 23510
25000000 21313
26000000 27656
27000000 18063
28000000 26386
29000000 18044
30000000 19023
31000000 19222
32000000 18534
33000000 23941
34000000 35909
35000000 18869
36000000 18025
37000000 36505
38000000 23891
39000000 19246
40000000 18246
41000000 24433
42000000 17966
43000000 27591
44000000 18935
45000000 20436
46000000 22770
47000000 19061
48000000 19833
49000000 24197
50000000 23719
51000000 19751
52000000 24636
53000000 19470
54000000 24147
55000000 27940
56000000 27722
57000000 18962
58000000 24368
59000000 19932
60000000 20911
61000000 19859
62000000 19745
63000000 24214
64000000 19048
65000000 25497
66000000 18716
67000000 27456
68000000 20415
69000000 23582
70000000 26332
71000000 20177
72000000 25270
73000000 19532
74000000 25042
75000000 24668
76000000 25543
77000000 33971
78000000 35887
79000000 46503
80000000 45504
81000000 52368
82000000 23348
83000000 36568
84000000 16037
85000000 16548
86000000 16017
87000000 37882
88000000 14955
89000000 22341
90000000 23477
91000000 14197
92000000 15749
93000000 22822
94000000 15521
95000000 45511
96000000 34095
97000000 49033
98000000 53501
99000000 36409
100000000 37909

11
V2/delay/render.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -o xtrace
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
cd "${SCRIPT_DIR}" && gnuplot -c sleep_delay.gp
while IFS= read -r -d '' f; do
output=$(echo "$f" | sed -E 's/\.eps$/.png/')
convert -density 300 "eps2:${f}" "$output"
done < <(find "${SCRIPT_DIR}" -name '*.eps' -print0)

20
V2/delay/sleep_delay.gp Normal file
View File

@@ -0,0 +1,20 @@
set title "{/=20 nanosleep delays}"
set terminal postscript eps enhanced
set xlabel "{/=20Period to sleep [nanoseconds]}"
set ylabel "{/=20Measured delay [nanoseconds]}"
set grid
set autoscale
set style data lines
show style data
set output 'delay_idle.eps'
plot 'delay_idle.txt' using ($1):($2) title "{/=17 Load: no, RT: no}" lw 6
set output 'delay_load.eps'
plot 'delay_load.txt' using ($1):($2) title "{/=17 Load: yes, RT: no}" lw 6
set output 'delay_idle_rt.eps'
plot 'delay_idle_rt.txt' using ($1):($2) title "{/=17 Load: no, RT: yes}" lw 6
set output 'delay_load_rt.eps'
plot 'delay_load_rt.txt' using ($1):($2) title "{/=17 Load: yes, RT: yes}" lw 6

View File

@@ -1,31 +0,0 @@
#include<stdio.h>
#include<time.h>
#include<pthread.h>
int main(int argc, char *argv[])
{
struct timespec time1, start, ende;
time1.tv_sec = 5;
time1.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &start);
clock_nanosleep(CLOCK_MONOTONIC, 0, &time1, NULL);
clock_gettime(CLOCK_MONOTONIC, &ende);
int nsec_difference = (int) ((ende.tv_nsec - start.tv_nsec)/1000);
//microseconds
int sec_difference = (int) (ende.tv_sec - start.tv_sec)*1000*1000;
int real_time_slept = sec_difference + nsec_difference;
int difference_real_set = real_time_slept - time1.tv_sec * 1000 * 1000;
printf("Real time slept: %d\n", real_time_slept);
printf("Difference Real time slept and actually sleep time: %d usec\n", difference_real_set);
return 0;
}

62
V2/sleep/Cargo.lock generated Normal file
View File

@@ -0,0 +1,62 @@
[root]
name = "sleep"
version = "0.1.0"
dependencies = [
"argparse 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "argparse"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "kernel32-sys"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "libc"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "redox_syscall"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "time"
version = "0.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
"redox_syscall 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "winapi"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "winapi-build"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[metadata]
"checksum argparse 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "37bb99f5e39ee8b23b6e227f5b8f024207e8616f44aa4b8c76ecd828011667ef"
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
"checksum libc 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "88ee81885f9f04bff991e306fea7c1c60a5f0f9e409e99f6b40e3311a3363135"
"checksum redox_syscall 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "29dbdfd4b9df8ab31dec47c6087b7b13cbf4a776f335e4de8efba8288dda075b"
"checksum time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)" = "211b63c112206356ef1ff9b19355f43740fc3f85960c598a93d3a3d3ba7beade"
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"

9
V2/sleep/Cargo.toml Normal file
View File

@@ -0,0 +1,9 @@
[package]
name = "sleep"
version = "0.1.0"
authors = ["Simon Wörner <git@simon-woerner.de>"]
[dependencies]
argparse = ">=0.2.1"
libc = ">=0.2"
time = ">=0.1.36"

80
V2/sleep/src/lib.rs Normal file
View File

@@ -0,0 +1,80 @@
extern crate libc;
use std::time::Duration;
#[cfg(target_os = "linux")]
fn clock_nanosleep(clk_id: libc::clockid_t,
flags: libc::c_int,
rqtp: *const libc::timespec,
rmtp: *mut libc::timespec)
-> libc::c_int {
unsafe { libc::clock_nanosleep(clk_id, flags, rqtp as *const _, rmtp as *mut _) }
}
#[cfg(target_os = "macos")]
fn nanosleep(rqtp: *const libc::timespec, rmtp: *mut libc::timespec) -> libc::c_int {
unsafe { libc::nanosleep(rqtp as *const _, rmtp as *mut _) }
}
/// Sleeps for the given duration.
///
/// Uses `clock_nanosleep` on linux and `nanosleep` on darwin.
pub fn sleep(duration: Duration) -> Result<Duration, libc::c_int> {
let ts = duration_to_timespec(duration);
let mut remain = libc::timespec {
tv_sec: 0,
tv_nsec: 0,
};
#[cfg(target_os = "linux")]
let ret = clock_nanosleep(libc::CLOCK_MONOTONIC, 0, &ts, &mut remain);
#[cfg(target_os = "macos")]
let ret = nanosleep(&ts, &mut remain);
if ret == 0 {
Ok(timespec_to_duration(remain))
} else {
Err(ret)
}
}
fn duration_to_timespec(duration: Duration) -> libc::timespec {
libc::timespec {
tv_sec: duration.as_secs() as libc::time_t,
tv_nsec: duration.subsec_nanos() as libc::c_long,
}
}
fn timespec_to_duration(timespec: libc::timespec) -> Duration {
Duration::new(timespec.tv_sec as u64, timespec.tv_nsec as u32)
}
/// Set scheduler policy and priority for process with given pid.
///
/// If `pid` equals zero, the policy of the calling process will be set.
///
/// # Examples
///
/// ```rust
/// // set *round-robin* policy (default) and priority 99 (realtime) for own process
/// set_scheduler(0, libc::SCHED_RR, 99);
/// ```
#[cfg(target_os = "linux")]
pub fn set_scheduler(pid: libc::pid_t, policy: libc::c_int, priority: libc::c_int) -> libc::c_int {
let param = libc::sched_param { sched_priority: priority };
unsafe { libc::sched_setscheduler(pid, policy, &param) }
}
/// Set scheduler *round-robin* policy (default) and priority for own process.
///
/// # Examples
///
/// ```rust
/// // set *round-robin* policy (default) and priority 99 (realtime)
/// set_priority(99);
/// ```
#[cfg(target_os = "linux")]
pub fn set_priority(priority: i32) -> libc::c_int {
set_scheduler(0, libc::SCHED_RR, priority)
}

152
V2/sleep/src/main.rs Normal file
View File

@@ -0,0 +1,152 @@
#![feature(step_by)]
extern crate argparse;
extern crate sleep;
extern crate time;
use std::io::prelude::*;
use std::fs::File;
use std::path::Path;
use std::time::Duration;
use argparse::{ArgumentParser, Print, Store};
use sleep::sleep;
use time::precise_time_ns;
#[cfg(target_os = "linux")]
use argparse::StoreTrue;
#[cfg(target_os = "linux")]
use sleep::set_priority;
fn duration_from_ns(duration_ns: u64) -> Duration {
Duration::new(duration_ns / 1_000_000_000,
(duration_ns % 1_000_000_000) as u32)
}
fn duration_to_ns(duration: Duration) -> u64 {
duration.as_secs() * 1_000_000_000u64 + duration.subsec_nanos() as u64
}
fn measure_duration(sleep_duration: Duration) -> Duration {
let start = precise_time_ns();
let _remain = sleep(sleep_duration);
let end = precise_time_ns();
#[cfg(debug_assertions)]
println!("remain = {:?}", _remain);
let duration = end - start;
let duration = duration_from_ns(duration);
#[cfg(debug_assertions)]
println!("duration = {:?}", duration);
duration
}
fn measure_delay(sleep_duration: Duration) -> (Duration, Duration) {
let duration = measure_duration(sleep_duration);
let delay = duration - sleep_duration;
#[cfg(debug_assertions)]
println!("delay = {:?}", delay);
(duration, delay)
}
fn measure_delay_loop(sleep_duration: Duration, count: u64) -> Vec<(Duration, Duration)> {
println!("Starting measurment with period {}s {}ns for {} loops",
sleep_duration.as_secs(),
sleep_duration.subsec_nanos(),
count);
let mut data: Vec<(Duration, Duration)> = Vec::with_capacity(count as usize);
for _ in 0..count {
let (duration, delay) = measure_delay(sleep_duration);
data.push((duration, delay));
#[cfg(debug_assertions)]
print_delay(duration, delay);
}
data
}
fn print_delay(duration: Duration, delay: Duration) {
println!("value: {} s {} ns\tdelay: {} s {} ns\trelativ delay = {:.2}%\traw_data: {:?}",
duration.as_secs(),
duration.subsec_nanos(),
delay.as_secs(),
delay.subsec_nanos(),
(duration_to_ns(delay) * 100) as f64 / duration_to_ns(duration) as f64,
delay);
}
fn main() {
let mut min: u64 = 1_000_000;
let mut max: u64 = 100_000_000;
let mut step: u64 = 1_000_000;
let mut count: u64 = 100;
let mut output: String = "".to_string();
let mut file: Option<File> = None;
#[cfg(target_os = "linux")]
let mut realtime: bool = false;
#[cfg(target_os = "macos")]
let realtime: bool = false;
{
let mut ap = ArgumentParser::new();
ap.set_description(env!("CARGO_PKG_DESCRIPTION"));
ap.refer(&mut min).add_option(&["--min"], Store, "Sleep period start");
ap.refer(&mut max).add_option(&["--max"], Store, "Sleep period end");
ap.refer(&mut step).add_option(&["--step"], Store, "Sleep period step size");
ap.refer(&mut count).add_option(&["--loop"], Store, "Count of measurements per period");
#[cfg(target_os = "linux")]
ap.refer(&mut realtime).add_option(&["--rt"], StoreTrue, "Set realtime priority");
ap.refer(&mut output).add_option(&["-o", "--out"], Store, "Output file");
ap.add_option(&["-V", "--version"],
Print(env!("CARGO_PKG_VERSION").to_string()),
"Show version");
ap.parse_args_or_exit();
}
if realtime {
#[cfg(target_os = "linux")]
let ret = set_priority(99);
#[cfg(target_os = "macos")]
let ret = 0;
if ret != 0 {
panic!("Set realtime priority failed.");
}
}
if output != "" {
file = Some(File::create(Path::new(output.as_str())).expect(format!("Open file '{}' failed",
output)
.as_str()));
}
for duration in (min..max + 1).step_by(step) {
let data = measure_delay_loop(duration_from_ns(duration), count);
let max_delay = data.iter().max().expect("Max delay not found");
#[cfg(debug_assertions)]
println!("max_delay = {:?}", max_delay);
print_delay(max_delay.0, max_delay.1);
match file.as_ref() {
Some(mut f) => {
let value = format!("{: >9} {}\n", duration, duration_to_ns(max_delay.1));
f.write_all(value.as_bytes()).expect(format!("Write value '{}' to '{}' file failed",
value,
output)
.as_str());
}
None => {}
}
}
}

View File

@@ -3,10 +3,8 @@
ERROR=0
while IFS= read -r -d '' f; do
dir="$(dirname "${f}")"
echo "run 'cargo test' in ${dir}"
cd "${dir}" && cargo test
echo "run 'cargo test' with ${f}"
cargo test --manifest-path="${f}"
if [[ $? -ne 0 ]]; then
ERROR=1

156
project/building.sh Executable file
View File

@@ -0,0 +1,156 @@
#!/usr/bin/env bash
# DEBUG
if [ ! -z "$DEBUG" ]; then
echo "DEBUG is set"
set -o xtrace
fi
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
# shellcheck source=HW5/config.sh
source "${SCRIPT_DIR}/config.sh"
function download() {
local -r url="${1}"
local -r sha256="${2}"
if which nix-prefetch-url >/dev/null 2>&1; then
nix-prefetch-url --print-path --type sha256 "${url}" "${sha256}" | tail -n 1
else
local -r tmpdir="$(mktemp -d)"
cd "${tmpdir}" && local -r filename="$(curl "${url}" --remote-name -w "%{filename_effective}")"
echo "${tmpdir}/${filename}"
fi
}
function download_extract() {
local -r url="${1}"
local -r sha256="${2}"
local -r path="${3}"
echo "Downloading '${url}'..."
local -r archive="$(download "${url}" "${sha256}")"
if [ -z "$sha256" ]; then
echo "Verify checksum of '${archive}'..."
if [ "$(sha256sum "${archive}" | cut -d' ' -f1)" != "${sha256}" ]; then
echo 'Error: Invalid checksum!'
return 1
fi
fi
echo "Extracting '${archive}'..."
tar -xf "${archive}" -C "${path}" || return $?
}
function download_extract_all() {
download_extract "${KERNEL_URL}" "${KERNEL_SHA256}" "${KERNEL_PATH}" || return $?
}
function cpu_count() {
if [ -f /proc/cpuinfo ]; then
grep -c ^processor /proc/cpuinfo
else
if which sysctl >/dev/null 2>&1; then
sysctl hw.ncpu | cut -d ' ' -f 2
else
echo '4'
fi
fi
}
# compile kernel
function compile_kernel() {
ln -sf "${KERNEL_CONFIG_PATH}" "${KERNEL_SOURCE_PATH}/.config"
echo "Compile kernel..."
time ARCH="$KERNEL_ARCH" make -C "${KERNEL_SOURCE_PATH}" -j "$(cpu_count)" || return $?
echo "Copy kernel..."
cp -pf "${KERNEL_IMAGE}" "${ARTIFACTS_PATH}/"
}
function find_modules() {
find "$MODULES_DIR" -mindepth 1 -maxdepth 1 -type d -not -name '_*' -print0
}
function compile_module() {
local -r module_dir="$1"
local -r module="$(basename "$module_dir")"
local -r module_test_src="${module_dir}/${module}.test.c"
echo "Compile kernel module '$module'..."
time KVER="$KERNEL_VERSION" make -C "${module_dir}" -j "$(cpu_count)" || return $?
if [ -f "${module_test_src}" ]; then
time make -C "${module_dir}" -j "$(cpu_count)" test || return $?
fi
echo "Copy kernel module '$module'..."
cp -pf "${module_dir}/${module}.ko" "$MODULES_DST_DIR/"
cp -pf "${module_dir}/${module}.ko.test" "$MODULES_DST_DIR/"
if [ -f "${module_test_src}" ]; then
build_binary "${module_dir}/${module}.ko.test" "$(basename "$MODULES_DST_DIR")/" || return $?
fi
}
function modules_compile() {
mkdir -p "$MODULES_DST_DIR"
while IFS= read -r -d '' module_dir; do
compile_module "$module_dir" || return $?
done < <(find_modules)
}
function compile() {
modules_compile || return $?
}
function get_binary_linker() {
local -r binary="$1"
file "$binary" | grep -o -E ', interpreter (.*\.so(\.[0-9]+)?)' | cut -d' ' -f3
}
# clean untracked git files
function clean() {
echo "Clean non git files..."
cd "${SCRIPT_DIR}" && git clean -dfx || return $?
}
function main() {
local -r cmd="${1:-all}"
shift 1
case "$cmd" in
all )
download_extract_all &&
compile ;;
download )
download_extract_all ;;
compile )
compile ;;
modules )
modules_compile ;;
modules_build )
modules_compile ;;
modules_copy )
modules_copy ;;
clean )
clean ;;
* )
echo "Error: unkown command" &&
false ;;
esac
return $?
}
main "$@"

66
project/config.sh Executable file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# DEBUG
if [ ! -z "$DEBUG" ]; then
echo "DEBUG is set"
set -o xtrace
fi
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
# compile options
export ARCH=aarch64
export KERNEL_ARCH=arm64
export CROSS_COMPILE=${ARCH}-linux-gnu-
# artifacts
export ARTIFACTS_PATH="${SCRIPT_DIR}/artifacts"
export SSH_KEY="${ARTIFACTS_PATH}/id_openssh"
# qemu options
export SSH_HOST=localhost
export SSH_PORT=$((22222 + $(id -u)))
# kernel modules
export MODULES_DIR="${SCRIPT_DIR}/modules"
export MODULES_DST_DIR="${ARTIFACTS_PATH}/modules"
# kernel
export KERNEL_VERSION='4.11'
export KERNEL_URL="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${KERNEL_VERSION}.tar.xz"
export KERNEL_SHA256='b67ecafd0a42b3383bf4d82f0850cbff92a7e72a215a6d02f42ddbafcf42a7d6'
export KERNEL_PATH="${SCRIPT_DIR}/kernel"
export KERNEL_CONFIG_PATH="${KERNEL_PATH}/config"
export KERNEL_SOURCE_PATH="${KERNEL_PATH}/linux-${KERNEL_VERSION}"
export KERNEL_IMAGE="${KERNEL_SOURCE_PATH}/arch/arm64/boot/Image"
# busybox
export BUSYBOX_VERSION='1.26.2'
export BUSYBOX_URL="https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2"
export BUSYBOX_SHA256='da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16'
export BUSYBOX_PATH="${SCRIPT_DIR}/busybox"
export BUSYBOX_CONFIG_PATH="${BUSYBOX_PATH}/config"
export BUSYBOX_SOURCE_PATH="${BUSYBOX_PATH}/busybox-${BUSYBOX_VERSION}"
export BUSYBOX_BIN="${BUSYBOX_SOURCE_PATH}/busybox"
# sysinfo
export SYSINFO_PATH="${SCRIPT_DIR}/sysinfo"
export SYSINFO_SOURCE_PATH="${SYSINFO_PATH}/src"
export SYSINFO_BIN="${SYSINFO_SOURCE_PATH}/sysinfo"
# dropbear
export DROPBEAR_VERSION='2016.74'
export DROPBEAR_URL="https://matt.ucc.asn.au/dropbear/releases/dropbear-${DROPBEAR_VERSION}.tar.bz2"
export DROPBEAR_SHA256='2720ea54ed009af812701bcc290a2a601d5c107d12993e5d92c0f5f81f718891'
export DROPBEAR_PATH="${SCRIPT_DIR}/dropbear"
export DROPBEAR_CONFIG_PATH="${DROPBEAR_PATH}/options.h"
export DROPBEAR_SOURCE_PATH="${DROPBEAR_PATH}/dropbear-${DROPBEAR_VERSION}"
export DROPBEAR_BIN="${DROPBEAR_SOURCE_PATH}/dropbearmulti"
# gesftpserver
export GESFTPSERVER_VERSION='0.2.2'
export GESFTPSERVER_URL="https://www.greenend.org.uk/rjk/sftpserver/sftpserver-${GESFTPSERVER_VERSION}.tar.gz"
export GESFTPSERVER_SHA256='8ac1938d0f62a05799b2aeab489d6ce098c3fe53280a9b66c0957b1fdcbcbab9'
export GESFTPSERVER_PATH="${SCRIPT_DIR}/gesftpserver"
export GESFTPSERVER_SOURCE_PATH="${GESFTPSERVER_PATH}/sftpserver-${GESFTPSERVER_VERSION}"
export GESFTPSERVER_BIN="${GESFTPSERVER_SOURCE_PATH}/gesftpserver"

3
project/modules/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.tmp_versions
*.ko.mod
*.o.cmd

43
project/modules/Makefile Normal file
View File

@@ -0,0 +1,43 @@
PWD = $(realpath $(shell pwd))
MODULE_NAME ?= $(shell basename "$(PWD)")
ifneq ($(KERNELRELEASE),)
# call from kernel build system
obj-m := $(MODULE_NAME).o
else
ARCH ?= aarch64
KERNEL_ARCH ?= arm64
CROSS_COMPILE ?= $(ARCH)-linux-gnu-
KVER ?= $(shell ls "$(PWD)/../../kernel" | grep 'linux-' | sed 's/linux-//')
KERNELDIR ?= $(PWD)/../../kernel/linux-$(KVER)
MODDESTDIR ?= /lib/modules/$(KVER)/kernel/drivers/syso
default:
ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSS_COMPILE) MODULE_NAME=$(MODULE_NAME) $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
test: $(MODULE_NAME).ko.test
$(MODULE_NAME).ko.test: $(MODULE_NAME).test.o
$(CROSS_COMPILE)$(CC) $(LDFLAGS) -pthread $^ -o $@
%.o: %.c
$(CROSS_COMPILE)$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
clean:
rm -rf *.ko *.o *.mod.c *~ core .depend .*.cmd .tmp_versions *.symvers *.order
depend .depend dep:
$(CROSS_COMPILE)$(CC) $(CFLAGS) -M *.c > .depend
install:
install -p -m 644 $(MODULE_NAME).ko $(MODDESTDIR)
/sbin/depmod -a ${KVER}
uninstall:
rm -f $(MODDESTDIR)/$(MODULE_NAME).ko
/sbin/depmod -a ${KVER}
ifeq (.depend,$(wildcard .depend))
include .depend
endif

View File

@@ -0,0 +1,4 @@
static dev_t devno;
static struct cdev chardev;
static struct class *chardev_class;
static struct device *chardev_device[NUMBER_OF_MINOR_DEVICE];

View File

@@ -0,0 +1,82 @@
MODULE_AUTHOR("Manuel Vögele, Siegfried Kienzle, Simon Wörner");
MODULE_DESCRIPTION(DEVICE_NAME "driver");
MODULE_LICENSE("GPL");
static int __init ModInit(void)
{
unsigned int i = 0;
printk(KERN_DEBUG DEVICE_NAME ": init");
if (alloc_chrdev_region(&devno, 0, NUMBER_OF_MINOR_DEVICE, DEVICE_NAME) < 0)
return -EIO;
cdev_init(&chardev, &fops);
chardev.owner = THIS_MODULE;
chardev.ops = &fops;
if (cdev_add(&chardev, devno, NUMBER_OF_MINOR_DEVICE)) {
pr_err(DEVICE_NAME ": cdev_add failed.");
goto free_device_number;
}
chardev_class = class_create(THIS_MODULE, DEVICE_NAME);
if (IS_ERR(chardev_class)) {
pr_err(DEVICE_NAME ": no udev support\n");
goto free_cdev;
}
for (i = 0; i < NUMBER_OF_MINOR_DEVICE; ++i)
{
#if NUMBER_OF_MINOR_DEVICE == 1
chardev_device[i] = device_create(chardev_class, NULL, devno + i, NULL, DEVICE_NAME);
#else
chardev_device[i] = device_create(chardev_class, NULL, devno + i, NULL, DEVICE_NAME "%d", i);
#endif
if (IS_ERR(chardev_device[i])) {
pr_err(DEVICE_NAME ": device create failed\n");
goto free_device;
}
}
#ifdef CUSTOM_INIT
CUSTOM_INIT
#endif
return 0;
free_device:
for (; i > 0; --i) {
device_destroy(chardev_class, devno + i - 1);
}
class_destroy(chardev_class);
free_cdev:
cdev_del(&chardev);
free_device_number:
unregister_chrdev_region(devno, NUMBER_OF_MINOR_DEVICE);
return -EIO;
}
static void __exit ModExit(void)
{
unsigned int i = 0;
printk(KERN_DEBUG DEVICE_NAME ": exit");
#ifdef CUSTOM_EXIT
CUSTOM_EXIT
#endif
for (i = NUMBER_OF_MINOR_DEVICE; i > 0; --i) {
device_destroy(chardev_class, devno + i - 1);
}
class_destroy(chardev_class);
cdev_del(&chardev);
unregister_chrdev_region(devno, NUMBER_OF_MINOR_DEVICE);
}
module_init( ModInit );
module_exit( ModExit );

View File

@@ -0,0 +1 @@
cmd_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.ko := aarch64-linux-gnu-ld -EL -r -T ./scripts/module-common.lds --build-id -o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.ko /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o ; true

View File

@@ -0,0 +1,464 @@
cmd_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o := aarch64-linux-gnu-gcc -Wp,-MD,/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/.infrared_sensor_in_1.mod.o.d -nostdinc -isystem /nix/store/p6af8rfcdv8sfl8nqwgcz9c4lxr2n5n1-gcc-5.4.0-aarch64-linux-gnu-stage-final/lib/gcc/aarch64-linux-gnu/5.4.0/include -I./arch/arm64/include -I./arch/arm64/include/generated/uapi -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1 -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DKBUILD_BASENAME='"infrared_sensor_in_1.mod"' -DKBUILD_MODNAME='"infrared_sensor_in_1"' -DMODULE -mcmodel=large -c -o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.c
source_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o := /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.c
deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o := \
$(wildcard include/config/module/unload.h) \
include/linux/module.h \
$(wildcard include/config/modules.h) \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules/tree/lookup.h) \
$(wildcard include/config/livepatch.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/module/sig.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/constructors.h) \
$(wildcard include/config/strict/module/rwx.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/types.h \
$(wildcard include/config/have/uid16.h) \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
$(wildcard include/config/64bit.h) \
include/uapi/linux/types.h \
arch/arm64/include/generated/asm/types.h \
include/uapi/asm-generic/types.h \
include/asm-generic/int-ll64.h \
include/uapi/asm-generic/int-ll64.h \
arch/arm64/include/uapi/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/uapi/asm-generic/bitsperlong.h \
include/uapi/linux/posix_types.h \
include/linux/stddef.h \
include/uapi/linux/stddef.h \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/kasan.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
$(wildcard include/config/gcov/kernel.h) \
$(wildcard include/config/stack/validation.h) \
$(wildcard include/config/arch/use/builtin/bswap.h) \
arch/arm64/include/uapi/asm/posix_types.h \
include/uapi/asm-generic/posix_types.h \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
$(wildcard include/config/page/poisoning/zero.h) \
include/uapi/linux/const.h \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/panic/timeout.h) \
/nix/store/p6af8rfcdv8sfl8nqwgcz9c4lxr2n5n1-gcc-5.4.0-aarch64-linux-gnu-stage-final/lib/gcc/aarch64-linux-gnu/5.4.0/include/stdarg.h \
include/linux/linkage.h \
include/linux/stringify.h \
include/linux/export.h \
$(wildcard include/config/have/underscore/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
$(wildcard include/config/module/rel/crcs.h) \
$(wildcard include/config/trim/unused/ksyms.h) \
arch/arm64/include/asm/linkage.h \
include/linux/bitops.h \
arch/arm64/include/asm/bitops.h \
arch/arm64/include/asm/barrier.h \
include/asm-generic/barrier.h \
include/asm-generic/bitops/builtin-__ffs.h \
include/asm-generic/bitops/builtin-ffs.h \
include/asm-generic/bitops/builtin-__fls.h \
include/asm-generic/bitops/builtin-fls.h \
include/asm-generic/bitops/ffz.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/find.h \
$(wildcard include/config/generic/find/first/bit.h) \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/le.h \
arch/arm64/include/uapi/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/uapi/linux/byteorder/little_endian.h \
include/linux/swab.h \
include/uapi/linux/swab.h \
arch/arm64/include/generated/asm/swab.h \
include/uapi/asm-generic/swab.h \
include/linux/byteorder/generic.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/typecheck.h \
include/linux/printk.h \
$(wildcard include/config/message/loglevel/default.h) \
$(wildcard include/config/console/loglevel/default.h) \
$(wildcard include/config/early/printk.h) \
$(wildcard include/config/printk/nmi.h) \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/init.h \
$(wildcard include/config/strict/kernel/rwx.h) \
include/linux/kern_levels.h \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/uapi/linux/kernel.h \
include/uapi/linux/sysinfo.h \
arch/arm64/include/asm/cache.h \
arch/arm64/include/asm/cachetype.h \
arch/arm64/include/asm/cputype.h \
arch/arm64/include/asm/sysreg.h \
$(wildcard include/config/broken/gas/inst.h) \
$(wildcard include/config/cpu/big/endian.h) \
$(wildcard include/config/arm64/4k/pages.h) \
$(wildcard include/config/arm64/16k/pages.h) \
$(wildcard include/config/arm64/64k/pages.h) \
include/linux/stat.h \
arch/arm64/include/asm/stat.h \
$(wildcard include/config/compat.h) \
arch/arm64/include/uapi/asm/stat.h \
include/uapi/asm-generic/stat.h \
include/uapi/linux/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/seqlock.h \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
include/linux/preempt.h \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/preempt/notifiers.h) \
arch/arm64/include/generated/asm/preempt.h \
include/asm-generic/preempt.h \
include/linux/thread_info.h \
$(wildcard include/config/thread/info/in/task.h) \
$(wildcard include/config/debug/stack/usage.h) \
$(wildcard include/config/have/arch/within/stack/frames.h) \
$(wildcard include/config/hardened/usercopy.h) \
include/linux/bug.h \
$(wildcard include/config/bug/on/data/corruption.h) \
arch/arm64/include/asm/bug.h \
$(wildcard include/config/debug/bugverbose.h) \
arch/arm64/include/asm/brk-imm.h \
include/asm-generic/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/generic/bug/relative/pointers.h) \
include/linux/restart_block.h \
arch/arm64/include/asm/current.h \
arch/arm64/include/asm/thread_info.h \
$(wildcard include/config/arm64/sw/ttbr0/pan.h) \
arch/arm64/include/asm/stack_pointer.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
arch/arm64/include/asm/irqflags.h \
arch/arm64/include/asm/ptrace.h \
arch/arm64/include/uapi/asm/ptrace.h \
arch/arm64/include/asm/hwcap.h \
arch/arm64/include/uapi/asm/hwcap.h \
include/asm-generic/ptrace.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
arch/arm64/include/asm/spinlock_types.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
include/linux/rwlock_types.h \
arch/arm64/include/asm/spinlock.h \
arch/arm64/include/asm/lse.h \
$(wildcard include/config/as/lse.h) \
$(wildcard include/config/arm64/lse/atomics.h) \
arch/arm64/include/asm/processor.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
include/uapi/linux/string.h \
arch/arm64/include/asm/string.h \
arch/arm64/include/asm/alternative.h \
$(wildcard include/config/arm64/uao.h) \
$(wildcard include/config/foo.h) \
arch/arm64/include/asm/cpucaps.h \
arch/arm64/include/asm/insn.h \
arch/arm64/include/asm/fpsimd.h \
arch/arm64/include/asm/hw_breakpoint.h \
$(wildcard include/config/have/hw/breakpoint.h) \
arch/arm64/include/asm/cpufeature.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/atomic.h \
$(wildcard include/config/generic/atomic64.h) \
arch/arm64/include/asm/atomic.h \
arch/arm64/include/asm/atomic_ll_sc.h \
arch/arm64/include/asm/cmpxchg.h \
include/asm-generic/atomic-long.h \
arch/arm64/include/asm/virt.h \
$(wildcard include/config/arm64/vhe.h) \
arch/arm64/include/asm/sections.h \
include/asm-generic/sections.h \
arch/arm64/include/asm/pgtable-hwdef.h \
$(wildcard include/config/pgtable/levels.h) \
include/linux/rwlock.h \
include/linux/spinlock_api_smp.h \
$(wildcard include/config/inline/spin/lock.h) \
$(wildcard include/config/inline/spin/lock/bh.h) \
$(wildcard include/config/inline/spin/lock/irq.h) \
$(wildcard include/config/inline/spin/lock/irqsave.h) \
$(wildcard include/config/inline/spin/trylock.h) \
$(wildcard include/config/inline/spin/trylock/bh.h) \
$(wildcard include/config/uninline/spin/unlock.h) \
$(wildcard include/config/inline/spin/unlock/bh.h) \
$(wildcard include/config/inline/spin/unlock/irq.h) \
$(wildcard include/config/inline/spin/unlock/irqrestore.h) \
include/linux/rwlock_api_smp.h \
$(wildcard include/config/inline/read/lock.h) \
$(wildcard include/config/inline/write/lock.h) \
$(wildcard include/config/inline/read/lock/bh.h) \
$(wildcard include/config/inline/write/lock/bh.h) \
$(wildcard include/config/inline/read/lock/irq.h) \
$(wildcard include/config/inline/write/lock/irq.h) \
$(wildcard include/config/inline/read/lock/irqsave.h) \
$(wildcard include/config/inline/write/lock/irqsave.h) \
$(wildcard include/config/inline/read/trylock.h) \
$(wildcard include/config/inline/write/trylock.h) \
$(wildcard include/config/inline/read/unlock.h) \
$(wildcard include/config/inline/write/unlock.h) \
$(wildcard include/config/inline/read/unlock/bh.h) \
$(wildcard include/config/inline/write/unlock/bh.h) \
$(wildcard include/config/inline/read/unlock/irq.h) \
$(wildcard include/config/inline/write/unlock/irq.h) \
$(wildcard include/config/inline/read/unlock/irqrestore.h) \
$(wildcard include/config/inline/write/unlock/irqrestore.h) \
include/linux/math64.h \
$(wildcard include/config/arch/supports/int128.h) \
arch/arm64/include/generated/asm/div64.h \
include/asm-generic/div64.h \
include/linux/time64.h \
include/uapi/linux/time.h \
include/linux/uidgid.h \
$(wildcard include/config/multiuser.h) \
$(wildcard include/config/user/ns.h) \
include/linux/highuid.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/zone/device.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/pm/sleep.h) \
$(wildcard include/config/memory/isolation.h) \
$(wildcard include/config/compaction.h) \
$(wildcard include/config/cma.h) \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
$(wildcard include/config/debug/vm/pgflags.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/zsmalloc.h) \
$(wildcard include/config/memcg.h) \
$(wildcard include/config/sparsemem.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/page/extension.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/numa/balancing.h) \
$(wildcard include/config/deferred/struct/page/init.h) \
$(wildcard include/config/transparent/hugepage.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
include/uapi/linux/wait.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
$(wildcard include/config/movable/node.h) \
include/linux/bitmap.h \
$(wildcard include/config/s390.h) \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/linux/page-flags-layout.h \
$(wildcard include/config/sparsemem/vmemmap.h) \
include/generated/bounds.h \
arch/arm64/include/asm/sparsemem.h \
arch/arm64/include/asm/page.h \
$(wildcard include/config/arm64/page/shift.h) \
$(wildcard include/config/arm64/cont/shift.h) \
include/linux/personality.h \
include/uapi/linux/personality.h \
arch/arm64/include/asm/pgtable-types.h \
include/asm-generic/pgtable-nopud.h \
include/asm-generic/pgtable-nop4d-hack.h \
include/asm-generic/5level-fixup.h \
arch/arm64/include/asm/memory.h \
$(wildcard include/config/arm64/va/bits.h) \
$(wildcard include/config/blk/dev/initrd.h) \
arch/arm64/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
include/linux/sizes.h \
include/asm-generic/memory_model.h \
include/linux/pfn.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
$(wildcard include/config/have/bootmem/info/node.h) \
include/linux/notifier.h \
include/linux/errno.h \
include/uapi/linux/errno.h \
arch/arm64/include/generated/asm/errno.h \
include/uapi/asm-generic/errno.h \
include/uapi/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/mutex/spin/on/owner.h) \
$(wildcard include/config/debug/mutexes.h) \
include/linux/osq_lock.h \
include/linux/debug_locks.h \
$(wildcard include/config/debug/locking/api/selftests.h) \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/spin/on/owner.h) \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/err.h \
arch/arm64/include/generated/asm/rwsem.h \
include/asm-generic/rwsem.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/rcu/stall/common.h) \
$(wildcard include/config/no/hz/full.h) \
$(wildcard include/config/rcu/nocb/cpu.h) \
$(wildcard include/config/tasks/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/prove/rcu.h) \
$(wildcard include/config/rcu/boost.h) \
$(wildcard include/config/rcu/nocb/cpu/all.h) \
$(wildcard include/config/no/hz/full/sysidle.h) \
$(wildcard include/config/ppc.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/ktime.h \
include/linux/jiffies.h \
include/linux/timex.h \
include/uapi/linux/timex.h \
include/uapi/linux/param.h \
arch/arm64/include/uapi/asm/param.h \
include/asm-generic/param.h \
$(wildcard include/config/hz.h) \
include/uapi/asm-generic/param.h \
arch/arm64/include/asm/timex.h \
arch/arm64/include/asm/arch_timer.h \
$(wildcard include/config/arm/arch/timer/ool/workaround.h) \
include/clocksource/arm_arch_timer.h \
$(wildcard include/config/arm/arch/timer.h) \
include/linux/timecounter.h \
include/asm-generic/timex.h \
include/generated/timeconst.h \
include/linux/timekeeping.h \
include/linux/rcutree.h \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
$(wildcard include/config/wq/watchdog.h) \
include/linux/timer.h \
$(wildcard include/config/debug/objects/timers.h) \
$(wildcard include/config/no/hz/common.h) \
include/linux/topology.h \
$(wildcard include/config/use/percpu/numa/node/id.h) \
$(wildcard include/config/sched/smt.h) \
include/linux/smp.h \
$(wildcard include/config/up/late/init.h) \
include/linux/llist.h \
$(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
arch/arm64/include/asm/smp.h \
$(wildcard include/config/arm64/acpi/parking/protocol.h) \
arch/arm64/include/asm/percpu.h \
include/asm-generic/percpu.h \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
arch/arm64/include/asm/topology.h \
include/asm-generic/topology.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/uapi/linux/sysctl.h \
include/linux/elf.h \
arch/arm64/include/asm/elf.h \
arch/arm64/include/generated/asm/user.h \
include/asm-generic/user.h \
include/uapi/linux/elf.h \
include/uapi/linux/elf-em.h \
include/linux/kobject.h \
$(wildcard include/config/uevent/helper.h) \
$(wildcard include/config/debug/kobject/release.h) \
include/linux/sysfs.h \
include/linux/kernfs.h \
$(wildcard include/config/kernfs.h) \
include/linux/idr.h \
include/linux/radix-tree.h \
$(wildcard include/config/radix/tree/multiorder.h) \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/refcount.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/rbtree_latch.h \
arch/arm64/include/asm/module.h \
$(wildcard include/config/arm64/module/plts.h) \
$(wildcard include/config/randomize/base.h) \
include/asm-generic/module.h \
$(wildcard include/config/have/mod/arch/specific.h) \
$(wildcard include/config/modules/use/elf/rel.h) \
$(wildcard include/config/modules/use/elf/rela.h) \
include/linux/vermagic.h \
include/generated/utsrelease.h \
/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o: $(deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o)
$(deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.mod.o):

View File

@@ -0,0 +1,669 @@
cmd_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o := aarch64-linux-gnu-gcc -Wp,-MD,/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/.infrared_sensor_in_1.o.d -nostdinc -isystem /nix/store/p6af8rfcdv8sfl8nqwgcz9c4lxr2n5n1-gcc-5.4.0-aarch64-linux-gnu-stage-final/lib/gcc/aarch64-linux-gnu/5.4.0/include -I./arch/arm64/include -I./arch/arm64/include/generated/uapi -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1 -fno-asynchronous-unwind-tables -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -Werror=incompatible-pointer-types -DMODULE -mcmodel=large -DKBUILD_BASENAME='"infrared_sensor_in_1"' -DKBUILD_MODNAME='"infrared_sensor_in_1"' -c -o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.c
source_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o := /home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.c
deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o := \
include/linux/init.h \
$(wildcard include/config/strict/kernel/rwx.h) \
$(wildcard include/config/strict/module/rwx.h) \
include/linux/compiler.h \
$(wildcard include/config/sparse/rcu/pointer.h) \
$(wildcard include/config/trace/branch/profiling.h) \
$(wildcard include/config/profile/all/branches.h) \
$(wildcard include/config/kasan.h) \
$(wildcard include/config/enable/must/check.h) \
$(wildcard include/config/enable/warn/deprecated.h) \
include/linux/compiler-gcc.h \
$(wildcard include/config/arch/supports/optimized/inlining.h) \
$(wildcard include/config/optimize/inlining.h) \
$(wildcard include/config/gcov/kernel.h) \
$(wildcard include/config/stack/validation.h) \
$(wildcard include/config/arch/use/builtin/bswap.h) \
include/uapi/linux/types.h \
arch/arm64/include/generated/asm/types.h \
include/uapi/asm-generic/types.h \
include/asm-generic/int-ll64.h \
include/uapi/asm-generic/int-ll64.h \
arch/arm64/include/uapi/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
$(wildcard include/config/64bit.h) \
include/uapi/asm-generic/bitsperlong.h \
include/uapi/linux/posix_types.h \
include/linux/stddef.h \
include/uapi/linux/stddef.h \
arch/arm64/include/uapi/asm/posix_types.h \
include/uapi/asm-generic/posix_types.h \
include/linux/types.h \
$(wildcard include/config/have/uid16.h) \
$(wildcard include/config/uid16.h) \
$(wildcard include/config/lbdaf.h) \
$(wildcard include/config/arch/dma/addr/t/64bit.h) \
$(wildcard include/config/phys/addr/t/64bit.h) \
include/linux/module.h \
$(wildcard include/config/modules.h) \
$(wildcard include/config/sysfs.h) \
$(wildcard include/config/modules/tree/lookup.h) \
$(wildcard include/config/livepatch.h) \
$(wildcard include/config/unused/symbols.h) \
$(wildcard include/config/module/sig.h) \
$(wildcard include/config/generic/bug.h) \
$(wildcard include/config/kallsyms.h) \
$(wildcard include/config/smp.h) \
$(wildcard include/config/tracepoints.h) \
$(wildcard include/config/tracing.h) \
$(wildcard include/config/event/tracing.h) \
$(wildcard include/config/ftrace/mcount/record.h) \
$(wildcard include/config/module/unload.h) \
$(wildcard include/config/constructors.h) \
include/linux/list.h \
$(wildcard include/config/debug/list.h) \
include/linux/poison.h \
$(wildcard include/config/illegal/pointer/value.h) \
$(wildcard include/config/page/poisoning/zero.h) \
include/uapi/linux/const.h \
include/linux/kernel.h \
$(wildcard include/config/preempt/voluntary.h) \
$(wildcard include/config/debug/atomic/sleep.h) \
$(wildcard include/config/mmu.h) \
$(wildcard include/config/prove/locking.h) \
$(wildcard include/config/panic/timeout.h) \
/nix/store/p6af8rfcdv8sfl8nqwgcz9c4lxr2n5n1-gcc-5.4.0-aarch64-linux-gnu-stage-final/lib/gcc/aarch64-linux-gnu/5.4.0/include/stdarg.h \
include/linux/linkage.h \
include/linux/stringify.h \
include/linux/export.h \
$(wildcard include/config/have/underscore/symbol/prefix.h) \
$(wildcard include/config/modversions.h) \
$(wildcard include/config/module/rel/crcs.h) \
$(wildcard include/config/trim/unused/ksyms.h) \
arch/arm64/include/asm/linkage.h \
include/linux/bitops.h \
arch/arm64/include/asm/bitops.h \
arch/arm64/include/asm/barrier.h \
include/asm-generic/barrier.h \
include/asm-generic/bitops/builtin-__ffs.h \
include/asm-generic/bitops/builtin-ffs.h \
include/asm-generic/bitops/builtin-__fls.h \
include/asm-generic/bitops/builtin-fls.h \
include/asm-generic/bitops/ffz.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/find.h \
$(wildcard include/config/generic/find/first/bit.h) \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/le.h \
arch/arm64/include/uapi/asm/byteorder.h \
include/linux/byteorder/little_endian.h \
include/uapi/linux/byteorder/little_endian.h \
include/linux/swab.h \
include/uapi/linux/swab.h \
arch/arm64/include/generated/asm/swab.h \
include/uapi/asm-generic/swab.h \
include/linux/byteorder/generic.h \
include/linux/log2.h \
$(wildcard include/config/arch/has/ilog2/u32.h) \
$(wildcard include/config/arch/has/ilog2/u64.h) \
include/linux/typecheck.h \
include/linux/printk.h \
$(wildcard include/config/message/loglevel/default.h) \
$(wildcard include/config/console/loglevel/default.h) \
$(wildcard include/config/early/printk.h) \
$(wildcard include/config/printk/nmi.h) \
$(wildcard include/config/printk.h) \
$(wildcard include/config/dynamic/debug.h) \
include/linux/kern_levels.h \
include/linux/cache.h \
$(wildcard include/config/arch/has/cache/line/size.h) \
include/uapi/linux/kernel.h \
include/uapi/linux/sysinfo.h \
arch/arm64/include/asm/cache.h \
arch/arm64/include/asm/cachetype.h \
arch/arm64/include/asm/cputype.h \
arch/arm64/include/asm/sysreg.h \
$(wildcard include/config/broken/gas/inst.h) \
$(wildcard include/config/cpu/big/endian.h) \
$(wildcard include/config/arm64/4k/pages.h) \
$(wildcard include/config/arm64/16k/pages.h) \
$(wildcard include/config/arm64/64k/pages.h) \
include/linux/stat.h \
arch/arm64/include/asm/stat.h \
$(wildcard include/config/compat.h) \
arch/arm64/include/uapi/asm/stat.h \
include/uapi/asm-generic/stat.h \
include/uapi/linux/stat.h \
include/linux/time.h \
$(wildcard include/config/arch/uses/gettimeoffset.h) \
include/linux/seqlock.h \
$(wildcard include/config/debug/lock/alloc.h) \
include/linux/spinlock.h \
$(wildcard include/config/debug/spinlock.h) \
$(wildcard include/config/generic/lockbreak.h) \
$(wildcard include/config/preempt.h) \
include/linux/preempt.h \
$(wildcard include/config/preempt/count.h) \
$(wildcard include/config/debug/preempt.h) \
$(wildcard include/config/preempt/tracer.h) \
$(wildcard include/config/preempt/notifiers.h) \
arch/arm64/include/generated/asm/preempt.h \
include/asm-generic/preempt.h \
include/linux/thread_info.h \
$(wildcard include/config/thread/info/in/task.h) \
$(wildcard include/config/debug/stack/usage.h) \
$(wildcard include/config/have/arch/within/stack/frames.h) \
$(wildcard include/config/hardened/usercopy.h) \
include/linux/bug.h \
$(wildcard include/config/bug/on/data/corruption.h) \
arch/arm64/include/asm/bug.h \
$(wildcard include/config/debug/bugverbose.h) \
arch/arm64/include/asm/brk-imm.h \
include/asm-generic/bug.h \
$(wildcard include/config/bug.h) \
$(wildcard include/config/generic/bug/relative/pointers.h) \
include/linux/restart_block.h \
arch/arm64/include/asm/current.h \
arch/arm64/include/asm/thread_info.h \
$(wildcard include/config/arm64/sw/ttbr0/pan.h) \
arch/arm64/include/asm/stack_pointer.h \
include/linux/irqflags.h \
$(wildcard include/config/trace/irqflags.h) \
$(wildcard include/config/irqsoff/tracer.h) \
$(wildcard include/config/trace/irqflags/support.h) \
arch/arm64/include/asm/irqflags.h \
arch/arm64/include/asm/ptrace.h \
arch/arm64/include/uapi/asm/ptrace.h \
arch/arm64/include/asm/hwcap.h \
arch/arm64/include/uapi/asm/hwcap.h \
include/asm-generic/ptrace.h \
include/linux/bottom_half.h \
include/linux/spinlock_types.h \
arch/arm64/include/asm/spinlock_types.h \
include/linux/lockdep.h \
$(wildcard include/config/lockdep.h) \
$(wildcard include/config/lock/stat.h) \
include/linux/rwlock_types.h \
arch/arm64/include/asm/spinlock.h \
arch/arm64/include/asm/lse.h \
$(wildcard include/config/as/lse.h) \
$(wildcard include/config/arm64/lse/atomics.h) \
arch/arm64/include/asm/processor.h \
include/linux/string.h \
$(wildcard include/config/binary/printf.h) \
include/uapi/linux/string.h \
arch/arm64/include/asm/string.h \
arch/arm64/include/asm/alternative.h \
$(wildcard include/config/arm64/uao.h) \
$(wildcard include/config/foo.h) \
arch/arm64/include/asm/cpucaps.h \
arch/arm64/include/asm/insn.h \
arch/arm64/include/asm/fpsimd.h \
arch/arm64/include/asm/hw_breakpoint.h \
$(wildcard include/config/have/hw/breakpoint.h) \
arch/arm64/include/asm/cpufeature.h \
include/linux/jump_label.h \
$(wildcard include/config/jump/label.h) \
include/linux/atomic.h \
$(wildcard include/config/generic/atomic64.h) \
arch/arm64/include/asm/atomic.h \
arch/arm64/include/asm/atomic_ll_sc.h \
arch/arm64/include/asm/cmpxchg.h \
include/asm-generic/atomic-long.h \
arch/arm64/include/asm/virt.h \
$(wildcard include/config/arm64/vhe.h) \
arch/arm64/include/asm/sections.h \
include/asm-generic/sections.h \
arch/arm64/include/asm/pgtable-hwdef.h \
$(wildcard include/config/pgtable/levels.h) \
include/linux/rwlock.h \
include/linux/spinlock_api_smp.h \
$(wildcard include/config/inline/spin/lock.h) \
$(wildcard include/config/inline/spin/lock/bh.h) \
$(wildcard include/config/inline/spin/lock/irq.h) \
$(wildcard include/config/inline/spin/lock/irqsave.h) \
$(wildcard include/config/inline/spin/trylock.h) \
$(wildcard include/config/inline/spin/trylock/bh.h) \
$(wildcard include/config/uninline/spin/unlock.h) \
$(wildcard include/config/inline/spin/unlock/bh.h) \
$(wildcard include/config/inline/spin/unlock/irq.h) \
$(wildcard include/config/inline/spin/unlock/irqrestore.h) \
include/linux/rwlock_api_smp.h \
$(wildcard include/config/inline/read/lock.h) \
$(wildcard include/config/inline/write/lock.h) \
$(wildcard include/config/inline/read/lock/bh.h) \
$(wildcard include/config/inline/write/lock/bh.h) \
$(wildcard include/config/inline/read/lock/irq.h) \
$(wildcard include/config/inline/write/lock/irq.h) \
$(wildcard include/config/inline/read/lock/irqsave.h) \
$(wildcard include/config/inline/write/lock/irqsave.h) \
$(wildcard include/config/inline/read/trylock.h) \
$(wildcard include/config/inline/write/trylock.h) \
$(wildcard include/config/inline/read/unlock.h) \
$(wildcard include/config/inline/write/unlock.h) \
$(wildcard include/config/inline/read/unlock/bh.h) \
$(wildcard include/config/inline/write/unlock/bh.h) \
$(wildcard include/config/inline/read/unlock/irq.h) \
$(wildcard include/config/inline/write/unlock/irq.h) \
$(wildcard include/config/inline/read/unlock/irqrestore.h) \
$(wildcard include/config/inline/write/unlock/irqrestore.h) \
include/linux/math64.h \
$(wildcard include/config/arch/supports/int128.h) \
arch/arm64/include/generated/asm/div64.h \
include/asm-generic/div64.h \
include/linux/time64.h \
include/uapi/linux/time.h \
include/linux/uidgid.h \
$(wildcard include/config/multiuser.h) \
$(wildcard include/config/user/ns.h) \
include/linux/highuid.h \
include/linux/kmod.h \
include/linux/gfp.h \
$(wildcard include/config/highmem.h) \
$(wildcard include/config/zone/dma.h) \
$(wildcard include/config/zone/dma32.h) \
$(wildcard include/config/zone/device.h) \
$(wildcard include/config/numa.h) \
$(wildcard include/config/pm/sleep.h) \
$(wildcard include/config/memory/isolation.h) \
$(wildcard include/config/compaction.h) \
$(wildcard include/config/cma.h) \
include/linux/mmdebug.h \
$(wildcard include/config/debug/vm.h) \
$(wildcard include/config/debug/virtual.h) \
$(wildcard include/config/debug/vm/pgflags.h) \
include/linux/mmzone.h \
$(wildcard include/config/force/max/zoneorder.h) \
$(wildcard include/config/zsmalloc.h) \
$(wildcard include/config/memcg.h) \
$(wildcard include/config/sparsemem.h) \
$(wildcard include/config/memory/hotplug.h) \
$(wildcard include/config/discontigmem.h) \
$(wildcard include/config/flat/node/mem/map.h) \
$(wildcard include/config/page/extension.h) \
$(wildcard include/config/no/bootmem.h) \
$(wildcard include/config/numa/balancing.h) \
$(wildcard include/config/deferred/struct/page/init.h) \
$(wildcard include/config/transparent/hugepage.h) \
$(wildcard include/config/have/memory/present.h) \
$(wildcard include/config/have/memoryless/nodes.h) \
$(wildcard include/config/need/node/memmap/size.h) \
$(wildcard include/config/have/memblock/node/map.h) \
$(wildcard include/config/need/multiple/nodes.h) \
$(wildcard include/config/have/arch/early/pfn/to/nid.h) \
$(wildcard include/config/flatmem.h) \
$(wildcard include/config/sparsemem/extreme.h) \
$(wildcard include/config/have/arch/pfn/valid.h) \
$(wildcard include/config/holes/in/zone.h) \
$(wildcard include/config/arch/has/holes/memorymodel.h) \
include/linux/wait.h \
include/uapi/linux/wait.h \
include/linux/threads.h \
$(wildcard include/config/nr/cpus.h) \
$(wildcard include/config/base/small.h) \
include/linux/numa.h \
$(wildcard include/config/nodes/shift.h) \
include/linux/nodemask.h \
$(wildcard include/config/movable/node.h) \
include/linux/bitmap.h \
$(wildcard include/config/s390.h) \
include/linux/pageblock-flags.h \
$(wildcard include/config/hugetlb/page.h) \
$(wildcard include/config/hugetlb/page/size/variable.h) \
include/linux/page-flags-layout.h \
$(wildcard include/config/sparsemem/vmemmap.h) \
include/generated/bounds.h \
arch/arm64/include/asm/sparsemem.h \
arch/arm64/include/asm/page.h \
$(wildcard include/config/arm64/page/shift.h) \
$(wildcard include/config/arm64/cont/shift.h) \
include/linux/personality.h \
include/uapi/linux/personality.h \
arch/arm64/include/asm/pgtable-types.h \
include/asm-generic/pgtable-nopud.h \
include/asm-generic/pgtable-nop4d-hack.h \
include/asm-generic/5level-fixup.h \
arch/arm64/include/asm/memory.h \
$(wildcard include/config/arm64/va/bits.h) \
$(wildcard include/config/blk/dev/initrd.h) \
arch/arm64/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
include/linux/sizes.h \
include/asm-generic/memory_model.h \
include/linux/pfn.h \
include/asm-generic/getorder.h \
include/linux/memory_hotplug.h \
$(wildcard include/config/memory/hotremove.h) \
$(wildcard include/config/have/arch/nodedata/extension.h) \
$(wildcard include/config/have/bootmem/info/node.h) \
include/linux/notifier.h \
include/linux/errno.h \
include/uapi/linux/errno.h \
arch/arm64/include/generated/asm/errno.h \
include/uapi/asm-generic/errno.h \
include/uapi/asm-generic/errno-base.h \
include/linux/mutex.h \
$(wildcard include/config/mutex/spin/on/owner.h) \
$(wildcard include/config/debug/mutexes.h) \
include/linux/osq_lock.h \
include/linux/debug_locks.h \
$(wildcard include/config/debug/locking/api/selftests.h) \
include/linux/rwsem.h \
$(wildcard include/config/rwsem/spin/on/owner.h) \
$(wildcard include/config/rwsem/generic/spinlock.h) \
include/linux/err.h \
arch/arm64/include/generated/asm/rwsem.h \
include/asm-generic/rwsem.h \
include/linux/srcu.h \
include/linux/rcupdate.h \
$(wildcard include/config/tiny/rcu.h) \
$(wildcard include/config/tree/rcu.h) \
$(wildcard include/config/preempt/rcu.h) \
$(wildcard include/config/rcu/trace.h) \
$(wildcard include/config/rcu/stall/common.h) \
$(wildcard include/config/no/hz/full.h) \
$(wildcard include/config/rcu/nocb/cpu.h) \
$(wildcard include/config/tasks/rcu.h) \
$(wildcard include/config/debug/objects/rcu/head.h) \
$(wildcard include/config/hotplug/cpu.h) \
$(wildcard include/config/prove/rcu.h) \
$(wildcard include/config/rcu/boost.h) \
$(wildcard include/config/rcu/nocb/cpu/all.h) \
$(wildcard include/config/no/hz/full/sysidle.h) \
$(wildcard include/config/ppc.h) \
include/linux/cpumask.h \
$(wildcard include/config/cpumask/offstack.h) \
$(wildcard include/config/debug/per/cpu/maps.h) \
include/linux/debugobjects.h \
$(wildcard include/config/debug/objects.h) \
$(wildcard include/config/debug/objects/free.h) \
include/linux/ktime.h \
include/linux/jiffies.h \
include/linux/timex.h \
include/uapi/linux/timex.h \
include/uapi/linux/param.h \
arch/arm64/include/uapi/asm/param.h \
include/asm-generic/param.h \
$(wildcard include/config/hz.h) \
include/uapi/asm-generic/param.h \
arch/arm64/include/asm/timex.h \
arch/arm64/include/asm/arch_timer.h \
$(wildcard include/config/arm/arch/timer/ool/workaround.h) \
include/clocksource/arm_arch_timer.h \
$(wildcard include/config/arm/arch/timer.h) \
include/linux/timecounter.h \
include/asm-generic/timex.h \
include/generated/timeconst.h \
include/linux/timekeeping.h \
include/linux/rcutree.h \
include/linux/workqueue.h \
$(wildcard include/config/debug/objects/work.h) \
$(wildcard include/config/freezer.h) \
$(wildcard include/config/wq/watchdog.h) \
include/linux/timer.h \
$(wildcard include/config/debug/objects/timers.h) \
$(wildcard include/config/no/hz/common.h) \
include/linux/topology.h \
$(wildcard include/config/use/percpu/numa/node/id.h) \
$(wildcard include/config/sched/smt.h) \
include/linux/smp.h \
$(wildcard include/config/up/late/init.h) \
include/linux/llist.h \
$(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
arch/arm64/include/asm/smp.h \
$(wildcard include/config/arm64/acpi/parking/protocol.h) \
arch/arm64/include/asm/percpu.h \
include/asm-generic/percpu.h \
$(wildcard include/config/have/setup/per/cpu/area.h) \
include/linux/percpu-defs.h \
$(wildcard include/config/debug/force/weak/per/cpu.h) \
include/linux/percpu.h \
$(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
$(wildcard include/config/need/per/cpu/page/first/chunk.h) \
arch/arm64/include/asm/topology.h \
include/asm-generic/topology.h \
include/linux/sysctl.h \
$(wildcard include/config/sysctl.h) \
include/linux/rbtree.h \
include/uapi/linux/sysctl.h \
include/linux/elf.h \
arch/arm64/include/asm/elf.h \
arch/arm64/include/generated/asm/user.h \
include/asm-generic/user.h \
include/uapi/linux/elf.h \
include/uapi/linux/elf-em.h \
include/linux/kobject.h \
$(wildcard include/config/uevent/helper.h) \
$(wildcard include/config/debug/kobject/release.h) \
include/linux/sysfs.h \
include/linux/kernfs.h \
$(wildcard include/config/kernfs.h) \
include/linux/idr.h \
include/linux/radix-tree.h \
$(wildcard include/config/radix/tree/multiorder.h) \
include/linux/kobject_ns.h \
include/linux/kref.h \
include/linux/refcount.h \
include/linux/moduleparam.h \
$(wildcard include/config/alpha.h) \
$(wildcard include/config/ia64.h) \
$(wildcard include/config/ppc64.h) \
include/linux/rbtree_latch.h \
arch/arm64/include/asm/module.h \
$(wildcard include/config/arm64/module/plts.h) \
$(wildcard include/config/randomize/base.h) \
include/asm-generic/module.h \
$(wildcard include/config/have/mod/arch/specific.h) \
$(wildcard include/config/modules/use/elf/rel.h) \
$(wildcard include/config/modules/use/elf/rela.h) \
include/linux/fs.h \
$(wildcard include/config/fs/posix/acl.h) \
$(wildcard include/config/security.h) \
$(wildcard include/config/cgroup/writeback.h) \
$(wildcard include/config/ima.h) \
$(wildcard include/config/fsnotify.h) \
$(wildcard include/config/fs/encryption.h) \
$(wildcard include/config/epoll.h) \
$(wildcard include/config/file/locking.h) \
$(wildcard include/config/quota.h) \
$(wildcard include/config/fs/dax.h) \
$(wildcard include/config/mandatory/file/locking.h) \
$(wildcard include/config/block.h) \
$(wildcard include/config/migration.h) \
include/linux/kdev_t.h \
include/uapi/linux/kdev_t.h \
include/linux/dcache.h \
include/linux/rculist.h \
include/linux/rculist_bl.h \
include/linux/list_bl.h \
include/linux/bit_spinlock.h \
include/linux/lockref.h \
$(wildcard include/config/arch/use/cmpxchg/lockref.h) \
include/linux/stringhash.h \
$(wildcard include/config/dcache/word/access.h) \
include/linux/hash.h \
$(wildcard include/config/have/arch/hash.h) \
include/linux/path.h \
include/linux/list_lru.h \
$(wildcard include/config/slob.h) \
include/linux/shrinker.h \
include/linux/pid.h \
include/linux/capability.h \
include/uapi/linux/capability.h \
include/linux/semaphore.h \
include/uapi/linux/fiemap.h \
include/linux/migrate_mode.h \
include/linux/percpu-rwsem.h \
include/linux/rcuwait.h \
include/linux/rcu_sync.h \
include/linux/delayed_call.h \
include/uapi/linux/fs.h \
include/uapi/linux/limits.h \
include/uapi/linux/ioctl.h \
arch/arm64/include/generated/asm/ioctl.h \
include/asm-generic/ioctl.h \
include/uapi/asm-generic/ioctl.h \
include/linux/quota.h \
$(wildcard include/config/quota/netlink/interface.h) \
include/linux/percpu_counter.h \
include/uapi/linux/dqblk_xfs.h \
include/linux/dqblk_v1.h \
include/linux/dqblk_v2.h \
include/linux/dqblk_qtree.h \
include/linux/projid.h \
include/uapi/linux/quota.h \
include/linux/nfs_fs_i.h \
include/linux/fcntl.h \
include/uapi/linux/fcntl.h \
arch/arm64/include/uapi/asm/fcntl.h \
include/uapi/asm-generic/fcntl.h \
include/linux/cdev.h \
include/linux/gpio.h \
$(wildcard include/config/gpiolib.h) \
$(wildcard include/config/arch/have/custom/gpio/h.h) \
include/linux/pinctrl/pinctrl.h \
$(wildcard include/config/pinctrl.h) \
$(wildcard include/config/generic/pinconf.h) \
$(wildcard include/config/of.h) \
include/linux/device.h \
$(wildcard include/config/debug/devres.h) \
$(wildcard include/config/srcu.h) \
$(wildcard include/config/generic/msi/irq/domain.h) \
$(wildcard include/config/generic/msi/irq.h) \
$(wildcard include/config/dma/cma.h) \
$(wildcard include/config/devtmpfs.h) \
$(wildcard include/config/sysfs/deprecated.h) \
include/linux/ioport.h \
include/linux/klist.h \
include/linux/pinctrl/devinfo.h \
$(wildcard include/config/pm.h) \
include/linux/pm.h \
$(wildcard include/config/vt/console/sleep.h) \
$(wildcard include/config/pm/clk.h) \
$(wildcard include/config/pm/generic/domains.h) \
include/linux/completion.h \
include/linux/ratelimit.h \
include/linux/sched.h \
$(wildcard include/config/virt/cpu/accounting/native.h) \
$(wildcard include/config/sched/info.h) \
$(wildcard include/config/schedstats.h) \
$(wildcard include/config/fair/group/sched.h) \
$(wildcard include/config/rt/group/sched.h) \
$(wildcard include/config/cgroup/sched.h) \
$(wildcard include/config/blk/dev/io/trace.h) \
$(wildcard include/config/compat/brk.h) \
$(wildcard include/config/cgroups.h) \
$(wildcard include/config/cc/stackprotector.h) \
$(wildcard include/config/arch/has/scaled/cputime.h) \
$(wildcard include/config/virt/cpu/accounting/gen.h) \
$(wildcard include/config/posix/timers.h) \
$(wildcard include/config/sysvipc.h) \
$(wildcard include/config/detect/hung/task.h) \
$(wildcard include/config/auditsyscall.h) \
$(wildcard include/config/rt/mutexes.h) \
$(wildcard include/config/ubsan.h) \
$(wildcard include/config/task/xacct.h) \
$(wildcard include/config/cpusets.h) \
$(wildcard include/config/intel/rdt/a.h) \
$(wildcard include/config/futex.h) \
$(wildcard include/config/perf/events.h) \
$(wildcard include/config/task/delay/acct.h) \
$(wildcard include/config/fault/injection.h) \
$(wildcard include/config/latencytop.h) \
$(wildcard include/config/function/graph/tracer.h) \
$(wildcard include/config/kcov.h) \
$(wildcard include/config/uprobes.h) \
$(wildcard include/config/bcache.h) \
$(wildcard include/config/vmap/stack.h) \
include/uapi/linux/sched.h \
include/linux/sem.h \
include/uapi/linux/sem.h \
include/linux/ipc.h \
include/uapi/linux/ipc.h \
arch/arm64/include/generated/asm/ipcbuf.h \
include/uapi/asm-generic/ipcbuf.h \
arch/arm64/include/generated/asm/sembuf.h \
include/uapi/asm-generic/sembuf.h \
include/linux/shm.h \
include/uapi/linux/shm.h \
arch/arm64/include/generated/asm/shmbuf.h \
include/uapi/asm-generic/shmbuf.h \
arch/arm64/include/asm/shmparam.h \
include/uapi/asm-generic/shmparam.h \
include/linux/kcov.h \
include/uapi/linux/kcov.h \
include/linux/plist.h \
$(wildcard include/config/debug/pi/list.h) \
include/linux/hrtimer.h \
$(wildcard include/config/high/res/timers.h) \
$(wildcard include/config/time/low/res.h) \
$(wildcard include/config/timerfd.h) \
include/linux/timerqueue.h \
include/linux/seccomp.h \
$(wildcard include/config/seccomp.h) \
$(wildcard include/config/have/arch/seccomp/filter.h) \
$(wildcard include/config/seccomp/filter.h) \
$(wildcard include/config/checkpoint/restore.h) \
include/uapi/linux/seccomp.h \
include/linux/resource.h \
include/uapi/linux/resource.h \
arch/arm64/include/generated/asm/resource.h \
include/asm-generic/resource.h \
include/uapi/asm-generic/resource.h \
include/linux/latencytop.h \
include/linux/sched/prio.h \
include/linux/signal_types.h \
$(wildcard include/config/old/sigaction.h) \
include/uapi/linux/signal.h \
arch/arm64/include/uapi/asm/signal.h \
include/asm-generic/signal.h \
include/uapi/asm-generic/signal.h \
include/uapi/asm-generic/signal-defs.h \
arch/arm64/include/uapi/asm/sigcontext.h \
arch/arm64/include/uapi/asm/siginfo.h \
include/asm-generic/siginfo.h \
include/uapi/asm-generic/siginfo.h \
include/linux/mm_types_task.h \
$(wildcard include/config/split/ptlock/cpus.h) \
$(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
$(wildcard include/config/arch/want/batched/unmap/tlb/flush.h) \
include/linux/task_io_accounting.h \
$(wildcard include/config/task/io/accounting.h) \
arch/arm64/include/asm/device.h \
$(wildcard include/config/iommu/api.h) \
include/linux/pm_wakeup.h \
include/linux/uaccess.h \
arch/arm64/include/asm/uaccess.h \
$(wildcard include/config/arm64/pan.h) \
arch/arm64/include/asm/kernel-pgtable.h \
arch/arm64/include/asm/pgtable.h \
$(wildcard include/config/arm64/hw/afdbm.h) \
arch/arm64/include/asm/proc-fns.h \
arch/arm64/include/asm/pgtable-prot.h \
arch/arm64/include/asm/fixmap.h \
arch/arm64/include/asm/boot.h \
include/asm-generic/fixmap.h \
include/asm-generic/pgtable.h \
$(wildcard include/config/have/arch/transparent/hugepage/pud.h) \
$(wildcard include/config/have/arch/soft/dirty.h) \
$(wildcard include/config/have/arch/huge/vmap.h) \
include/linux/mm_types.h \
$(wildcard include/config/have/cmpxchg/double.h) \
$(wildcard include/config/have/aligned/struct/page.h) \
$(wildcard include/config/kmemcheck.h) \
$(wildcard include/config/userfaultfd.h) \
$(wildcard include/config/aio.h) \
$(wildcard include/config/mmu/notifier.h) \
include/linux/auxvec.h \
include/uapi/linux/auxvec.h \
arch/arm64/include/uapi/asm/auxvec.h \
include/linux/uprobes.h \
arch/arm64/include/asm/mmu.h \
include/linux/kasan-checks.h \
arch/arm64/include/asm/compiler.h \
/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/../_common/infrared_sensor.def.h \
/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/../_common/infrared_sensor.h \
/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o: $(deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o)
$(deps_/home/sikienzl/git/resy-ss17-grp1/project/modules/infrared_sensor_in_1/infrared_sensor_in_1.o):

View File

@@ -0,0 +1 @@
../Makefile

View File

@@ -0,0 +1,66 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/kobject.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#define DEVICE_NAME "infrared_sensor_in_1"
#define NUMBER_OF_MINOR_DEVICE (1)
#include "../_common/infrared_sensor.def.h"
static unsigned int infrared_sensor_in_1 = 2;
static int infrared_sensor_open(struct inode *devfile, struct file *instance)
{
int err;
err = gpio_request(infrared_sensor_in_1, "rpi-gpio-2");
if (err) {
printk("gpio_request for in_1 failed %d\n", err);
return -1;
}
err = gpio_direction_input(infrared_sensor_in_1);
if (err) {
printk("gpio_direction_input for in_1 failed %d\n", err);
gpio_free(infrared_sensor_in_1);
return -1;
}
printk("gpio 2 successfull configured\n");
return 0;
}
static ssize_t infrared_sensor_read( struct file *instance, char __user *user,
size_t max_bytes_to_read, loff_t *offset)
{
unsigned long not_copied, to_copy;
u32 value = gpio_get_value;
to_copy = min( max_bytes_to_read, sizeof(value) );
not_copied=copy_to_user( user, &value, to_copy);
return to_copy - not_copied;
}
static int infrared_sensor_close( struct inode *devfile, struct file *instance)
{
printk( "driver_close called\n" );
gpio_free( infrared_sensor_in_1 );
return 0;
}
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = infrared_sensor_open,
.release = infrared_sensor_close,
.read = infrared_sensor_read,
};
#include "../_common/infrared_sensor.h";

View File

@@ -0,0 +1 @@
../Makefile

View File

@@ -0,0 +1,67 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/kobject.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#define DEVICE_NAME "infrared_sensor_in_2"
#define NUMBER_OF_MINOR_DEVICE (1)
#include "../_common/infrared_sensor.def.h"
static unsigned int infrared_sensor_in_2 = 3;
static int infrared_sensor_open(struct inode *devfile, struct file *instance)
{
int err;
err = gpio_request(infrared_sensor_in_2, "rpi-gpio-2");
if (err) {
printk("gpio_request for in_2 failed %d\n", err);
return -1;
}
err = gpio_direction_input(infrared_sensor_in_2);
if (err) {
printk("gpio_direction_input for in_2 failed %d\n", err);
gpio_free(infrared_sensor_in_2);
return -1;
}
printk("gpio 3 successfull configured\n");
return 0;
}
static ssize_t infrared_sensor_read( struct file *instance, char __user *user,
size_t max_bytes_to_read, loff_t *offset)
{
unsigned long not_copied, to_copy;
u32 value = gpio_get_value;
to_copy = min( max_bytes_to_read, sizeof(value) );
not_copied=copy_to_user( user, &value, to_copy);
return to_copy - not_copied;
}
static int infrared_sensor_close( struct inode *devfile, struct file *instance)
{
printk( "driver_close called\n" );
gpio_free( infrared_sensor_in_2 );
return 0;
}
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = infrared_sensor_open,
.release = infrared_sensor_close,
.read = infrared_sensor_read,
};
#include "../_common/infrared_sensor.h";

View File

@@ -0,0 +1 @@
../Makefile

View File

@@ -0,0 +1,66 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/kobject.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#define DEVICE_NAME "infrared_sensor_in_3"
#define NUMBER_OF_MINOR_DEVICE (1)
#include "../_common/infrared_sensor.def.h"
static unsigned int infrared_sensor_in_3 = 4;
static int infrared_sensor_open(struct inode *devfile, struct file *instance)
{
int err;
err = gpio_request(infrared_sensor_in_3, "rpi-gpio-2");
if (err) {
printk("gpio_request for in_3 failed %d\n", err);
return -1;
}
err = gpio_direction_input(infrared_sensor_in_3);
if (err) {
printk("gpio_direction_input for in_3 failed %d\n", err);
gpio_free(infrared_sensor_in_3);
return -1;
}
printk("gpio 4 successfull configured\n");
return 0;
}
static ssize_t infrared_sensor_read( struct file *instance, char __user *user,
size_t max_bytes_to_read, loff_t *offset)
{
unsigned long not_copied, to_copy;
u32 value = gpio_get_value;
to_copy = min( max_bytes_to_read, sizeof(value) );
not_copied=copy_to_user( user, &value, to_copy);
return to_copy - not_copied;
}
static int infrared_sensor_close( struct inode *devfile, struct file *instance)
{
printk( "driver_close called\n" );
gpio_free( infrared_sensor_in_3 );
return 0;
}
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = infrared_sensor_open,
.release = infrared_sensor_close,
.read = infrared_sensor_read,
};
#include "../_common/infrared_sensor.h";

View File

@@ -0,0 +1 @@
../Makefile

View File

@@ -0,0 +1,66 @@
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/kobject.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#define DEVICE_NAME "infrared_sensor_in_4"
#define NUMBER_OF_MINOR_DEVICE (1)
#include "../_common/infrared_sensor.def.h"
static unsigned int infrared_sensor_in_4 = 17;
static int infrared_sensor_open(struct inode *devfile, struct file *instance)
{
int err;
err = gpio_request(infrared_sensor_in_4, "rpi-gpio-17");
if (err) {
printk("gpio_request for in_4 failed %d\n", err);
return -1;
}
err = gpio_direction_input(infrared_sensor_in_4);
if (err) {
printk("gpio_direction_input for in_4 failed %d\n", err);
gpio_free(infrared_sensor_in_4);
return -1;
}
printk("gpio 17 successfull configured\n");
return 0;
}
static ssize_t infrared_sensor_read( struct file *instance, char __user *user,
size_t max_bytes_to_read, loff_t *offset)
{
unsigned long not_copied, to_copy;
u32 value = gpio_get_value;
to_copy = min( max_bytes_to_read, sizeof(value) );
not_copied=copy_to_user( user, &value, to_copy);
return to_copy - not_copied;
}
static int infrared_sensor_close( struct inode *devfile, struct file *instance)
{
printk( "driver_close called\n" );
gpio_free( infrared_sensor_in_4 );
return 0;
}
static struct file_operations fops = {
.owner = THIS_MODULE,
.open = infrared_sensor_open,
.release = infrared_sensor_close,
.read = infrared_sensor_read,
};
#include "../_common/infrared_sensor.h";