- 04 Dec, 2014 18 commits
-
-
Alessandro Rubini authored
This fixes an oops when programs access ethtool methods, especially wrn_get_drvinfo. It can be reproduced by a simple run of "irqbalance", which I never did in my development machine. Reported-by: Grzegorz Daniluk <grzegorz.daniluk@gmail.com> Signed-off-by: Alessandro Rubini <rubini@gnudd.com> EOF
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Adam Wujek authored
-
Adam Wujek authored
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This branch adds WRS shared memory, and makes the HAL use it. Clients (both locally with libwr and ppsi without libwr) now access port status with shared memory. We also have a shmem-dumping tool, that helped auditing the data structure (but changes to them are not applied yet). As a side effect libwr and the hal are passed throught Lindent, but before any change, so you can still blame these changes.
-
Adam Wujek authored
merge load-fpga.c and load-virtex.c Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
- 28 Nov, 2014 22 commits
-
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This moves the query_ports() and get_port_state() to be shared memory lookups. The hal_client.c file now accesses shared memory at init time, and performes the two functions above by looking in shared memory. The thing is sill suboptimal, because the "exported" hexp_port_state_t structure is only slightly different from struct hal_port_state. And most fields being looked up are never filled. Last but not least, halexp_get_timing_state() is not ready to be converted to shared memory at this point in time (timing data is not stored to shmem yet). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This has no effect on the code functionality. Even if it affects libwr, this is a hal-only change. The functions in libwr that the hal itself uses, now receive a pointer to ports[], which is thus back a static pointer within wrsw_hal/hal_ports.c. This change allows moving the RPC queries to be shared memory lookups, by using the ports[] pointer in the client; so both the client and the server can access the same shared mamory using libwr functions. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
They are the usual 0 and -1: some functions returned the names, but no caller was checking the names. Also, PORT_BUSY (which was 1) was never used specially, so it is turned into a normal -1 error. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Even though the idea of using a single helper process for all web queries is sound, this is not it. No more comments from me. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Adam Wujek authored
Also fix makefiles and documentation Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This allows other process to access port information without making several RPC calls. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
The stdout and stderr of the basic WR tools are piled to the "logger" process, to get actual logs saved, if so configured for. Thus, we should not reopen the output channels to /dev/null Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
This is the first step to move the "get_port_state" query to shared memory. The internal structures of hal_ports.c will be allocated in shared memory, so the calls to halexp_* will just convert the data, without context-switching to the hal process. I couldn't add the functions to libwr/hal_client.c where they belong, because the choice of using the same "halexp" names for local and remote calls would lead to duplicate symbol definitions when linking the hal (the hal process links libwr, but can't link hal_client.o). Thus, libwr/hal_shmem.c is created, to host the parts of hal/hal_ports.c that are needed to convert data. Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Acked-by: Maciej Lipinski <maciej.lipinski@cern.ch>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
LOCK_STATE_* macros were defined locally and not used (only LOCK_STATE_NONE was used, but 0 is better since the relevant function says "returns 0 or 1"). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
HAL_PORT_MODE_* were defined locally and never used. The code uses HEXP_PORT_MODE_* instead (defined in <hal/hal_exports.h> and used in several places). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
After this commit, all symbols in hal_ports are of the form hal_port_* (all but one, that is not used and I'll remove it in another commit). I'm not smart enough to track the origin of the various names, so I need this. I need this especially in this file because I'm going to export stuff using shmem, to avoid a lot of context switches. Thus, the "private" structure hal_port_state is not a typedef any more, as a first step in becoming public. It doesn't make sense to have two almost-identical structures, where one is copied to the other one item at a time to deal with the minor differences. (It happened for some reason: I'm not complaining hard, but it's time to get rid of this). Unfortunately, two functions were called "halexp", and relied on a prototype shared by the RPC server (this file) and the RPC client. While the convention made sense at first, it now shows its limits, so the exported one is called hal_port_* like everything in the file, but for this I need to add structure names (but I left the typedef at this point, to avoid massive name changes around). If I didn't introduce bugs, the code is the same as it was. I did it one symbol at a time while build-checking each steps (and I even have the commits to track any error). Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
-