AppNearMe µNFC stack for the NXP PN532 chip License: You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Dependents:   IOT_sensor_nfc AppNearMe_MuNFC_PN532_Test p2p_nfc_test NFCMoodLamp ... more

License

You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Committer:
AppNearMe
Date:
Wed Nov 07 18:19:09 2012 +0000
Revision:
11:5be631376e5b
Parent:
0:480387549d89
Child:
3:0b949b2d3b55
Updated library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AppNearMe 0:480387549d89 1 /*
AppNearMe 0:480387549d89 2 buffer.h
AppNearMe 0:480387549d89 3 Copyright (c) Donatien Garnier 2012
AppNearMe 0:480387549d89 4 donatien.garnier@appnearme.com
AppNearMe 0:480387549d89 5 http://www.appnearme.com/
AppNearMe 0:480387549d89 6 */
AppNearMe 0:480387549d89 7
AppNearMe 0:480387549d89 8 #ifndef BUFFER_H_
AppNearMe 0:480387549d89 9 #define BUFFER_H_
AppNearMe 0:480387549d89 10
AppNearMe 0:480387549d89 11 #ifdef __cplusplus
AppNearMe 0:480387549d89 12 extern "C" {
AppNearMe 0:480387549d89 13 #endif
AppNearMe 0:480387549d89 14
AppNearMe 0:480387549d89 15 #include "core/fwk.h"
AppNearMe 0:480387549d89 16
AppNearMe 0:480387549d89 17 typedef struct __buffer
AppNearMe 0:480387549d89 18 {
AppNearMe 0:480387549d89 19 uint8_t* bufdata;
AppNearMe 0:480387549d89 20 size_t size;
AppNearMe 0:480387549d89 21
AppNearMe 0:480387549d89 22 uint8_t* start;
AppNearMe 0:480387549d89 23 size_t first_byte_length; //In bits
AppNearMe 0:480387549d89 24
AppNearMe 0:480387549d89 25 uint8_t* end;
AppNearMe 0:480387549d89 26 size_t last_byte_length; //In bits
AppNearMe 0:480387549d89 27
AppNearMe 0:480387549d89 28 struct __buffer* next;
AppNearMe 0:480387549d89 29
AppNearMe 0:480387549d89 30 } buffer;
AppNearMe 0:480387549d89 31
AppNearMe 0:480387549d89 32 void buffer_init(buffer* pBuf, uint8_t* bufdata, size_t size);
AppNearMe 0:480387549d89 33
AppNearMe 0:480387549d89 34 void buffer_byref(buffer* pBuf, uint8_t* bufdata, size_t length); //New buffer by ref on a size_t array, no malloc (useful on PIC for instance)
AppNearMe 0:480387549d89 35
AppNearMe 0:480387549d89 36 buffer* buffer_new(size_t size); //malloc
AppNearMe 0:480387549d89 37
AppNearMe 0:480387549d89 38 uint8_t* buffer_data(buffer* pBuf);
AppNearMe 0:480387549d89 39
AppNearMe 0:480387549d89 40 void buffer_reset(buffer* pBuf);
AppNearMe 0:480387549d89 41
AppNearMe 0:480387549d89 42 size_t buffer_size(buffer* pBuf);
AppNearMe 0:480387549d89 43
AppNearMe 0:480387549d89 44 size_t buffer_length(buffer* pBuf);
AppNearMe 0:480387549d89 45
AppNearMe 0:480387549d89 46 bool buffer_empty(buffer* pBuf);
AppNearMe 0:480387549d89 47
AppNearMe 0:480387549d89 48 void buffer_set_length(buffer* pBuf, size_t length);
AppNearMe 0:480387549d89 49
AppNearMe 0:480387549d89 50 size_t buffer_last_byte_length(buffer* pBuf);
AppNearMe 0:480387549d89 51
AppNearMe 0:480387549d89 52 void buffer_set_last_byte_length(buffer* pBuf, size_t length);
AppNearMe 0:480387549d89 53
AppNearMe 0:480387549d89 54 size_t buffer_bits_count(buffer* pBuf);
AppNearMe 0:480387549d89 55
AppNearMe 0:480387549d89 56 void buffer_write_byte(buffer* pBuf, uint8_t b);
AppNearMe 0:480387549d89 57
AppNearMe 0:480387549d89 58 void buffer_write_bit(buffer* pBuf, uint8_t b);
AppNearMe 0:480387549d89 59
AppNearMe 0:480387549d89 60 #if 0
AppNearMe 0:480387549d89 61 size_t buffer_read_byte(buffer* pBuf, uint8_t b);
AppNearMe 0:480387549d89 62
AppNearMe 0:480387549d89 63 size_t buffer_read_bit(buffer* pBuf, uint8_t b);
AppNearMe 0:480387549d89 64 #endif
AppNearMe 0:480387549d89 65
AppNearMe 0:480387549d89 66 buffer* buffer_next(buffer* pBuf);
AppNearMe 0:480387549d89 67
AppNearMe 0:480387549d89 68 void buffer_set_next(buffer* pBuf, buffer* pNextBuf);
AppNearMe 0:480387549d89 69
AppNearMe 0:480387549d89 70 void buffer_append(buffer* pBuf, buffer* pAppBuf);
AppNearMe 0:480387549d89 71
AppNearMe 0:480387549d89 72 void buffer_unlink(buffer* pBuf, buffer* pLinkedBuf);
AppNearMe 0:480387549d89 73
AppNearMe 0:480387549d89 74 size_t buffer_total_size(buffer* pBuf);
AppNearMe 0:480387549d89 75
AppNearMe 0:480387549d89 76 size_t buffer_total_length(buffer* pBuf);
AppNearMe 0:480387549d89 77
AppNearMe 0:480387549d89 78 void buffer_set_total_length(buffer* pBuf, size_t length);
AppNearMe 0:480387549d89 79
AppNearMe 0:480387549d89 80 void buffer_free(buffer* pBuf);
AppNearMe 0:480387549d89 81
AppNearMe 0:480387549d89 82 #ifdef __cplusplus
AppNearMe 0:480387549d89 83 }
AppNearMe 0:480387549d89 84 #endif
AppNearMe 0:480387549d89 85
AppNearMe 0:480387549d89 86 #endif /* BUFFER_H_ */