summaryrefslogtreecommitdiff
path: root/librpc/ABI
Commit message (Collapse)AuthorAgeFilesLines
* ndr: Use resizing array instead of linked lists (breaking ABI)Douglas Bagnall2017-03-021-0/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ndr token code keeps a temporary store of tokens which are referred to a small number of times (often once) before being discarded. The access patterns are somewhat stack-like, with recently placed tokens being accessed most often. The old code kept these tokens in a linked list, which we replace with a self-resizing array. This keeps everything roughly the same in big-O terms, but makes it all faster in practice by vastly reducing the amount of tallocing and pointer-chasing. The peak memory use is strictly reduced. On a 64 bit machine each core token struct fits in 16 bytes (after padding) while the two pointers used by the DLIST add another 16 bytes, so the overall list allocation is the same as the peak 2n array allocation -- except in the list case it is dwarfed by the talloc and malloc metadata overhead. Before settling on the resized arrays, we tried red-black trees, which are bound to be better for large ndr structures. As it happens, we don't deal with large structures (the size of replication clumps is limited to 400 objects) and the asymptotic benefits of the trees are not realised in practice. With luck you should find graphs comparing the performance of these various techniques at: https://www.samba.org/~dbagnall/perf-tests/ndr-token/ This necessarily breaks the ABI because the linked list implementation was publicly exposed. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Thu Mar 2 08:38:22 CET 2017 on sn-devel-144
* librpc/ndr: add ndr_push_charset_to_null and increase library version (abi ↵Günther Deschner2017-01-241-0/+259
| | | | | | | | | | | | | | change) We were crashing earlier when calculating the length of NULL strings in fixed size arrays (noticed while replying with an empty spoolss_CorePrinterDriver struct within the spoolss_GetCorePrinterDrivers call). Guenther Signed-off-by: Guenther Deschner <gd@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* librpc: Add ndr_push_struct_into_fixed_blob() and use it in GUID_to_ndr_blob()Andrew Bartlett2016-07-281-0/+258
| | | | | | | | This allows us to allocate only the correct size, not a default of 1024 bytes per push. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
* libndr: Add ndr_pull_struct_blob_all_noallocAndrew Bartlett2016-05-031-0/+257
| | | | | | | | | This allows us to remove talloc() calls from GUID_from_ndr_blob(). To do this the struct ndr_pull is placed on the stack, and filled in there. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
* librpc ndr: add ndr_pull_steal_switch_value()Douglas Bagnall2016-03-221-0/+256
| | | | | | | | | | Switch values currently only have a peek variant, instead of a retrieve variant for getting their values. This can create performance issues with complex structures as the token list simply grows longer. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz>
* librpc/ndr: add ndr_{pull|push|print}_HRESULT and release new 0.0.5 ABI.Günther Deschner2015-03-131-0/+255
| | | | | | | Guenther Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
* Create talloc-less functions for formating GUIDMatthieu Patou2014-10-021-0/+252
| | | | | | Signed-off-by: Matthieu Patou <mat@matws.net> Reviewed-by: Volker Lendecke <vl@samba.org> Change-Id: I84adc45d2476dd225315bfc7dbb313f1b36b31e7
* librpc/ndr: add ndr_syntax_id_[from|to]_string()Stefan Metzmacher2014-02-111-0/+251
| | | | | Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Guenther Deschner <gd@samba.org>
* librpc: Add NDR_PRINT_DEBUGC to ndr print to a debug classKai Blin2013-05-181-0/+247
| | | | | Signed-off-by: Kai Blin <kai@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
* ndr: Update ABI.Jelmer Vernooij2012-03-261-0/+245
| | | | | Autobuild-User: Jelmer Vernooij <jelmer@samba.org> Autobuild-Date: Mon Mar 26 19:58:25 CEST 2012 on sn-devel-104
* wafsamba: Cope with slight differences in gdb output regarding incomplete ↵Jelmer Vernooij2012-03-261-245/+0
| | | | | | sequences. Bug: https://bugzilla.samba.org/show_bug.cgi?id=8820
* Add ABI file for libndr.Jelmer Vernooij2012-03-261-0/+245