/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to protocols/default.c

  • Committer: Suren A. Chilingaryan
  • Date: 2015-04-20 20:01:04 UTC
  • Revision ID: csa@suren.me-20150420200104-b5xny65io8lvoz3w
Big redign of model structures

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
#include <assert.h>
4
4
 
5
5
#include "tools.h"
6
 
#include "default.h"
 
6
#include "model.h"
7
7
#include "error.h"
8
8
 
9
9
#define default_datacpy(dst, src, access, bank)   pcilib_datacpy(dst, src, access, 1, bank->raw_endianess)
10
10
 
11
 
int pcilib_default_read(pcilib_t *ctx, pcilib_register_bank_description_t *bank, pcilib_register_addr_t addr, pcilib_register_value_t *value) {
 
11
int pcilib_default_read(pcilib_t *ctx, pcilib_register_bank_context_t *bank_ctx, pcilib_register_addr_t addr, pcilib_register_value_t *value) {
12
12
    char *ptr;
13
13
    pcilib_register_value_t val = 0;
14
 
    int access = bank->access / 8;
15
 
 
16
 
    ptr =  pcilib_resolve_register_address(ctx, bank->bar, bank->read_addr + addr);
17
 
    default_datacpy(&val, ptr, access, bank);
 
14
    
 
15
    const pcilib_register_bank_description_t *b = bank_ctx->bank;
 
16
 
 
17
    int access = b->access / 8;
 
18
 
 
19
    ptr =  pcilib_resolve_register_address(ctx, b->bar, b->read_addr + addr);
 
20
    default_datacpy(&val, ptr, access, b);
18
21
 
19
22
//    *value = val&BIT_MASK(bits);
20
23
    *value = val;
23
26
}
24
27
 
25
28
 
26
 
int pcilib_default_write(pcilib_t *ctx, pcilib_register_bank_description_t *bank, pcilib_register_addr_t addr, pcilib_register_value_t value) {
 
29
int pcilib_default_write(pcilib_t *ctx, pcilib_register_bank_context_t *bank_ctx, pcilib_register_addr_t addr, pcilib_register_value_t value) {
27
30
    char *ptr;
28
 
    int access = bank->access / 8;
29
 
 
30
 
    ptr =  pcilib_resolve_register_address(ctx, bank->bar, bank->write_addr + addr);
31
 
    default_datacpy(ptr, &value, access, bank);
 
31
 
 
32
    const pcilib_register_bank_description_t *b = bank_ctx->bank;
 
33
 
 
34
    int access = b->access / 8;
 
35
 
 
36
    ptr =  pcilib_resolve_register_address(ctx, b->bar, b->write_addr + addr);
 
37
    default_datacpy(ptr, &value, access, b);
32
38
 
33
39
    return 0;
34
40
}