Skip to content

Commit c5d72f5

Browse files
author
Dominic Eschweiler
committed
- migrated BSD licensed version to git repository
1 parent c135182 commit c5d72f5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+15106
-0
lines changed

LIBTOOL

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
If the library source code has changed at all since the last
2+
update, then increment revision (`c:r:a' becomes `c:r+1:a').
3+
4+
If any interfaces have been added, removed, or changed since
5+
the last update, increment current, and set revision to 0.
6+
7+
If any interfaces have been added since the last public
8+
release, then increment age.
9+
10+
If any interfaces have been removed since the last public
11+
release, then set age to 0.

Makefile

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
DEBUG=true
2+
IPATH=/opt/pda
3+
4+
all:
5+
find . -iname 'build_*' -exec make -C {} \;
6+
7+
install:
8+
ifdef DESTDIR
9+
find . -iname 'build_*' -exec make -C {} install DESTDIR=$(DESTDIR) \;
10+
else
11+
find . -iname 'build_*' -exec make -C {} install \;
12+
endif
13+
14+
check: opt
15+
$(MAKE) PATH=$(PWD)/opt/bin/:$(PATH) -C ./test/
16+
$(MAKE) PATH=$(PWD)/opt/bin/:$(PATH) -C ./test/ clean
17+
$(MAKE) mrproper
18+
19+
check_build: opt
20+
$(MAKE) PATH=$(PWD)/opt/bin/:$(PATH) -C ./test/ build
21+
22+
nice: mrproper
23+
find . -name "patches" -prune -o -iname '*.c' -exec uncrustify -c uncrust.cfg --no-backup -l C {} \;
24+
find . -name "patches" -prune -o -iname '*.h' -exec uncrustify -c uncrust.cfg --no-backup -l C {} \;
25+
find . -name "patches" -prune -o -iname '*.inc' -exec uncrustify -c uncrust.cfg --no-backup -l C {} \;
26+
27+
opt:
28+
mkdir $(PWD)/opt/
29+
./configure --debug=$(DEBUG) --prefix=$(PWD)/opt/
30+
$(MAKE) install
31+
32+
dist: rpm
33+
34+
rpm: tarball
35+
./package/rpm/configure --version --prefix=$(IPATH)
36+
cp pda-`cat VERSION`.tar.gz package/rpm/
37+
make -C package/rpm/
38+
cp ${HOME}/rpmbuild/RPMS/x86_64/pda-*.rpm .
39+
40+
tarball: mrproper
41+
rm -rf pda-`cat VERSION`.tar.gz
42+
tar -cf pda-`cat VERSION`.tar *
43+
mkdir dist
44+
tar -xf pda-`cat VERSION`.tar -C dist/
45+
rm -rf dist/pda.cbp dist/pda.layout
46+
-find ./dist -name '.svn' -exec rm -rf {} \; >> /dev/null
47+
rm -rf pda-`cat VERSION`.tar
48+
mv dist pda-`cat VERSION`
49+
tar -cf pda-`cat VERSION`.tar pda-`cat VERSION`
50+
gzip pda-`cat VERSION`.tar
51+
rm -rf pda-`cat VERSION`
52+
53+
mrproper: clean
54+
$(MAKE) PATH=$(PWD)/opt/bin/:$(PATH) -C ./test/ clean
55+
-rm -rf ./package/rpm/pda.spec
56+
-rm -rf build_*
57+
-rm -rf opt
58+
-rm -rf dist
59+
-rm -rf doxygen
60+
-rm -rf *.tar
61+
-find . -iname 'a.out' -exec rm {} \;
62+
$(MAKE) -C package/rpm/ mrproper
63+
64+
clean:
65+
find . -iname 'build_*' -exec make -C {} clean \;
66+
rm -rf pda*.tar.gz pda*.rpm
67+
68+
count: mrproper
69+
wc -l `find . -iname '*.c' && find . -iname '*.h' && find . -iname '*.inc'`
70+
71+
doc:
72+
doxygen doxyfile.in

README

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
1__Downloading
2+
3+
https://compeng.uni-frankfurt.de/index.php?id=173
4+
5+
6+
2__Installation
7+
8+
Requirements for Linux:
9+
10+
- Installed GCC
11+
- Installed libtool
12+
- libpci and related headers (comes with pciutils)
13+
- libkmod and related headers
14+
- libnuma and related headers (comes with numactl)
15+
- Doxygen (if the documentation is needed)
16+
17+
Type:
18+
./configure --help
19+
./configure <options>
20+
make
21+
make install
22+
23+
cd patches/<operating system>/
24+
make install
25+
26+
27+
3__Documentation
28+
The PDA is documented with doxygen. Therefore Doxygen must be installed to get
29+
a full reference manual (tested with version 1.8.4).
30+
31+
Type:
32+
make doc
33+
34+
Look into the subfolder doxygen/
35+
36+
37+
4__Compatibility
38+
39+
- Linux between 2.6.29 and 3.19
40+
41+
42+
5__Known Issues
43+
44+
- Older versions of libpci leak memory. It is therefore recommended to update
45+
libpci to version 3.3.1 or newer. Otherwise the device description string might
46+
not be available.
47+
48+
49+
6__Version_Log:
50+
51+
Current Version
52+
53+
xx.x.x * SVN rev xxxx
54+
55+
_______________________________________________________________________________
56+
57+
11.0.7 * SVN rev 1611
58+
* Added feature for disabling device enumeration
59+
* Added feature for using DMA buffer as Posix-SHM replacement with low
60+
overhead
61+
* Added feature for listing allocated DMA buffers
62+
* Removed aborts
63+
* Changed license to three clause BSD
64+
65+
10.2.6 * SVN rev 1506
66+
* Maintenance release
67+
* Bugfixes and optimizations
68+
* Added locking for buffer allocation, freeing, and mapping
69+
* Added on-demand paging for DMA buffers
70+
71+
10.1.6 * SVN rev 1429
72+
* Maintenance release
73+
* Fixed wrap mapping bug(s)
74+
* Fixed a couple of bugs in error handling
75+
* Enhanced valgrind compatibility
76+
* Tested support for Linux +3.19
77+
78+
10.0.6 * SVN rev 1396
79+
* Added userspace buffer allocation
80+
* Removed obsolete DMA buffer direction specifier
81+
* Optimized udev scripts
82+
83+
9.1.5 * SVN rev 1310
84+
* Fixed race conditions during buffer allocation
85+
* Tested support for Linux +3.18
86+
87+
9.0.5 * SVN rev 1292
88+
* Added NUMA control support
89+
* Completed doxygen documentation
90+
* Fixed RPM libtool bug in build flow
91+
* Added automatic RPM config
92+
* Added --help option to configure script
93+
* Tested support for Linux +3.16
94+
* Tested support for Linux +3.17
95+
96+
8.1.4 * SVN rev 1214
97+
* Added support for MSI interrupting
98+
* Added initial support for hotplug (virtual bars)
99+
100+
8.0.4 * SVN rev 1164
101+
* Disabled auto vectorization
102+
* Added non SSE based memcpy routines
103+
* Added non vectorizable getter and setter functions
104+
* Fixed interrupting bug which appeared in conjunction with pthreads
105+
* Started Doxygen documentation
106+
107+
8.0.3 * SVN rev 1122
108+
* Fixed bug with buffer list handling
109+
* Fixed buffer size bug (return actually allocated instead of requested
110+
size)
111+
112+
8.0.2 * SVN rev 1071
113+
* Added support for max payload size and max read request size
114+
* Added PDA debug version ignore for the CMake include
115+
* Fixed bug which caused crashing if user permissions were not
116+
granted
117+
* Tested support for Linux +3.15
118+
119+
7.4.1 * SVN rev 917
120+
* Fixed udev "google chrome" bug (udev rule was going wild)
121+
* Fixed buffer reallocation bug
122+
* Code cleanup of the linux kernel module
123+
124+
7.3.1 * SVN rev 884
125+
* Fixed rpmbuild support for kernel module
126+
* Fixed support for 64Bit BARs
127+
* Added support for executing as non-privileged user
128+
* Tested support for Linux +3.14
129+
130+
7.2.1 * SVN rev 865
131+
* Rpmbuild support (make rpm) for the uio_pci_dma kernel module
132+
133+
7.1.1 * SVN rev 841
134+
* Fixed sysfs path bug
135+
* Added rpmbuild capabilities (make rpm) to make dist
136+
* Cleaned kernel adapter code
137+
* Tested support for Linux +3.13
138+
139+
7.0.1 * SVN rev 678
140+
* Fixed page sorting bug
141+
* Fixed buffer indexing bug
142+
* Fixed support for Linux +3.12
143+
144+
6.1.1 * SVN rev 656
145+
* KMOD checking is only activated if libkmod is really installed. Issues
146+
a big fat warning if used without KMOD.
147+
148+
6.0.1 * SVN rev 631
149+
* DMA buffer mapping without caching
150+
* Checks adapter version
151+
* PDA config can return PDA version now
152+
* Added separate PDAinit function
153+
* Added separate PDAfinalize function
154+
* Added function to check that the uses PDA has the right version (even
155+
if it compiles)
156+
* PDA-Debug now usable from outside
157+
* Bug fixing
158+
* Works against Linux +3.9 +3.10
159+
160+
5.0.0 * SVN rev 529
161+
* Fixed buffer rediscover
162+
* Stabilized wrap mapping
163+
* Moved some set and get functions into macros
164+
* Revised buffer lookup
165+
166+
4.3.4 * SVN rev 442
167+
* Added license header
168+
169+
4.2.4 * SVN rev 433
170+
* Enhanced compatibility to Linux 2.6.29 - 3.8
171+
172+
4.1.4 * SVN rev 387
173+
* Added strict return code checking
174+
* Fixed test cases
175+
* Fixed warnings
176+
177+
4.0.4 * SVN rev 365
178+
* Added support for buffer wrap mapping ("overmapping"->
179+
Linux only)
180+
181+
4.0.3 * SVN rev 340
182+
* Added support for DMA (Linux only)
183+
* Buffer allocation
184+
* Scatter gather lists (with automatic merging)
185+
186+
3.0.2 * SVN rev 117
187+
* First tested version with support for:
188+
* Basic Address Registers
189+
* Interrupts
190+
191+
2.0.0 * SVN rev 106
192+
* Bug fixing (version 0.0.0 was broken).
193+
* BAR detection used the wrong bits (both libpci
194+
and config space)
195+
* Error handling prevented correct working in a
196+
couple of cases
197+
* All macros with arguments where broken (extra
198+
bracing was needed)
199+
* Added support for 64Bit BARs
200+
* Added code beautifier
201+
* Added get methods for device query
202+
* Added configure checks
203+
* Removed UIO device deletion (UIO is persistent
204+
now)
205+
206+
0.0.0 * Initial version.
207+
* Added basic support for Linux and UIO
208+
* Added BAR and IRQ handling
209+

VERSION

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
99.99.99

0 commit comments

Comments
 (0)