master/datagram.c
changeset 1312 74853e018898
parent 1225 4d5b739edcb5
child 1313 ed15eef57d5c
equal deleted inserted replaced
1311:bf7c62bc533f 1312:74853e018898
   130  * If the allocated memory is already larger than requested, nothing ist done.
   130  * If the allocated memory is already larger than requested, nothing ist done.
   131  *
   131  *
   132  * \attention If external payload memory has been provided, no range checking
   132  * \attention If external payload memory has been provided, no range checking
   133  *            is done!
   133  *            is done!
   134  *
   134  *
   135  * \return 0 in case of success, else < 0
   135  * \return 0 in case of success, otherwise \a -ENOMEM.
   136  */
   136  */
   137 int ec_datagram_prealloc(
   137 int ec_datagram_prealloc(
   138         ec_datagram_t *datagram, /**< EtherCAT datagram. */
   138         ec_datagram_t *datagram, /**< EtherCAT datagram. */
   139         size_t size /**< New payload size in bytes. */
   139         size_t size /**< New payload size in bytes. */
   140         )
   140         )
   149         datagram->mem_size = 0;
   149         datagram->mem_size = 0;
   150     }
   150     }
   151 
   151 
   152     if (!(datagram->data = kmalloc(size, GFP_KERNEL))) {
   152     if (!(datagram->data = kmalloc(size, GFP_KERNEL))) {
   153         EC_ERR("Failed to allocate %u bytes of datagram memory!\n", size);
   153         EC_ERR("Failed to allocate %u bytes of datagram memory!\n", size);
   154         return -1;
   154         return -ENOMEM;
   155     }
   155     }
   156 
   156 
   157     datagram->mem_size = size;
   157     datagram->mem_size = size;
   158     return 0;
   158     return 0;
   159 }
   159 }