# HG changeset patch # User Florian Pose # Date 1181304200 0 # Node ID 825ead3e05597d7a8d6b6f849a945468faedbb2f # Parent a9794f927d781f8030deaa995b79d2000aaa63da Improved dummy module. diff -r a9794f927d78 -r 825ead3e0559 dummy/domain.c --- a/dummy/domain.c Wed Jun 06 17:02:38 2007 +0000 +++ b/dummy/domain.c Fri Jun 08 12:03:20 2007 +0000 @@ -42,9 +42,7 @@ #include "../master/domain.h" #include "../master/master.h" -/*****************************************************************************/ - -uint8_t dummy_data[PAGE_SIZE]; +uint8_t *get_dummy_data(void); /*****************************************************************************/ @@ -58,7 +56,7 @@ void **data_ptr /**< address of the process data pointer */ ) { - *data_ptr = dummy_data; + *data_ptr = get_dummy_data(); return 0; } @@ -79,7 +77,7 @@ const ec_pdo_reg_t *reg; for (reg = pdo_regs; reg->slave_address; reg++) { - *(reg->data_ptr) = dummy_data; + *(reg->data_ptr) = get_dummy_data(); } return 0; @@ -102,7 +100,7 @@ void **data_ptr /**< address of the process data pointer */ ) { - *data_ptr = dummy_data; + *data_ptr = get_dummy_data(); return 0; } diff -r a9794f927d78 -r 825ead3e0559 dummy/master.c --- a/dummy/master.c Wed Jun 06 17:02:38 2007 +0000 +++ b/dummy/master.c Fri Jun 08 12:03:20 2007 +0000 @@ -49,7 +49,8 @@ ec_domain_t *ecrt_master_create_domain(ec_master_t *master) { - return (ec_domain_t *) 1; + static unsigned int domain = 1; + return (ec_domain_t *) domain++; } /*****************************************************************************/ @@ -80,7 +81,8 @@ uint32_t p ) { - return (ec_slave_t *) 1; + static unsigned int slave = 1; + return (ec_slave_t *) slave++; } /*****************************************************************************/ diff -r a9794f927d78 -r 825ead3e0559 dummy/module.c --- a/dummy/module.c Wed Jun 06 17:02:38 2007 +0000 +++ b/dummy/module.c Fri Jun 08 12:03:20 2007 +0000 @@ -65,6 +65,23 @@ /*****************************************************************************/ +#define DUMMY_SIZE (PAGE_SIZE * 8) + +uint8_t dummy_data[DUMMY_SIZE]; +off_t dummy_off = 0; + +uint8_t *get_dummy_data(void) +{ + off_t cur = dummy_off; + + dummy_off += 64; + dummy_off %= DUMMY_SIZE; + + return dummy_data + cur; +} + +/*****************************************************************************/ + /** * Module initialization. * Initializes \a ec_master_count masters. @@ -74,6 +91,9 @@ int __init ec_init_module(void) { EC_INFO("Master DUMMY driver %s\n", EC_MASTER_VERSION); + + memset(dummy_data, 0x00, DUMMY_SIZE); + return 0; }