summaryrefslogtreecommitdiff
path: root/src/lib/shm_rdrbuff.c
Commit message (Collapse)AuthorAgeFilesLines
* build: Comply with -Wextra compiler flagdimitri staessens2016-10-211-1/+1
| | | | | This reduces the risk for some bugs, for instance due to signed/unsigned mismatches and unused variables.
* lib: Demultiplex the fast pathdimitri staessens2016-10-211-19/+10
| | | | | | | | The fast path will now use an incoming ring buffer per flow per process. This necessitated the development of a new method for the asynchronous io call, which is now based on an event queue system for scalability (fqueue). The ipcpd's and tools have been updated to this API.
* lib: Track SDUs in the fast pathdimitri staessens2016-10-111-35/+29
| | | | | | This will allow to finalize deallocating flows until all SDUs have been processed. Read and write calls will now block when a flow was deallocated. Replaces NULL checks in the fast path with asserts.
* lib, ipcp: Revise fast path and flow interfacesdimitri staessens2016-10-041-7/+39
| | | | | | | | | | | | IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
* lib: Fix shm for evil devicesdimitri staessens2016-09-081-2/+2
| | | | | | Cupertino's finest don't seem to support a write call with a filedescriptor that points to a shared memory file. ENOTSUP is not mentioned in their manpage either. Classic.
* Merged in sandervrijders/ouroboros/be-shm-pci (pull request #247)dimitri staessens2016-09-071-88/+29
|\ | | | | | | ipcpd: normal: Add operations to get and set the PCI
| * ipcpd: normal: Add operations to get and set the PCISander Vrijders2016-09-071-88/+29
| | | | | | | | | | | | | | | | | | This adds the operations needed in the normal IPCP to get and set the Protocol Control Information. It allows to allocate or release space in the current DU. The struct pci can be serialized into newly allocate space. Vice versa, a struct pci can be deserialized given a DU. It allows for decreasing the TTL in the DU and for calculating the CRC32. The TTL and CRC32 can now be selected when creating a new DIF.
* | lib: Set umask for file creation permissionsdimitri staessens2016-09-071-6/+4
| | | | | | | | | | Permissions are now set correctly upon creation, removing the need to call fchmod.
* | src: Fix grammar (SDU's -> SDUs)dimitri staessens2016-09-021-2/+2
| |
* | lib: Add northbound ringbuffersdimitri staessens2016-09-021-2/+2
|/ | | | Fast path is split in north and southbound paths.
* lib: Change rdrbuff API to use correct typesSander Vrijders2016-09-011-8/+8
| | | | | | The head and tail alloc and release operations were taking an int to identify the idx instead of a ssize_t. The size was a ssize_t instead of a size_t.
* lib, rdrbuff: Fix fast path lockupdimitri staessens2016-09-011-2/+5
| | | | Adds missing condition signals.
* lib, shm_rdrbuff: Fix preprocessor definedimitri staessens2016-08-311-15/+15
|
* lib, ipcp: Compile on Apple junkdimitri staessens2016-08-301-13/+44
| | | | | | Disables robust mutexes and clock attributes for condition variables for compatibility with OSX (SUSv2). Implements clock_gettime and adds some defines for OSX compatibility in time_utils.
* lib: Refactor shm_du_map to shm_rdrbuffdimitri staessens2016-08-291-0/+804
The shm_du_map is renamed to shm_rdrbuff to reflect the Random Deletion Ringbuffer used in the implementation. The close_on_exit call is removed and SDUs are cleaned up by the application in the ap_fini() call. This required a non-blocking peek() operation in the shm_ap_rbuff. Some initial implementation for future support of qos cubes has been added to the shm_rdrbuff.