diff -r 000000000000 -r 6474c204b198 toolkit/components/workerlz4/lz4_internal.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/workerlz4/lz4_internal.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,57 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +if (typeof Components != "undefined") { + throw new Error("This file is meant to be loaded in a worker"); +} +if (!module || !exports) { + throw new Error("Please load this module with require()"); +} + +let SharedAll = require("resource://gre/modules/osfile/osfile_shared_allthreads.jsm"); +let libxul = new SharedAll.Library("libxul", SharedAll.Constants.Path.libxul); +let Type = SharedAll.Type; + +let Primitives = {}; + +libxul.declareLazyFFI(Primitives, "compress", + "workerlz4_compress", + null, + /*return*/ Type.size_t, + /*const source*/ Type.void_t.in_ptr, + /*inputSize*/ Type.size_t, + /*dest*/ Type.void_t.out_ptr +); + +libxul.declareLazyFFI(Primitives, "decompress", + "workerlz4_decompress", + null, + /*return*/ Type.int, + /*const source*/ Type.void_t.in_ptr, + /*inputSize*/ Type.size_t, + /*dest*/ Type.void_t.out_ptr, + /*maxOutputSize*/ Type.size_t, + /*actualOutputSize*/ Type.size_t.out_ptr +); + +libxul.declareLazyFFI(Primitives, "maxCompressedSize", + "workerlz4_maxCompressedSize", + null, + /*return*/ Type.size_t, + /*inputSize*/ Type.size_t +); + +module.exports = { + get compress() { + return Primitives.compress; + }, + get decompress() { + return Primitives.decompress; + }, + get maxCompressedSize() { + return Primitives.maxCompressedSize; + } +};