1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Antoine ELIAS
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  */
14 
15 #ifndef __STACK_INT_API__
16 #define __STACK_INT_API__
17 
18 #if !defined(__INTERNAL_API_SCILAB__)
19 #error Do not include api_stack_int.h. Include api_scilab.h instead.
20 #endif
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /*
27  * These values are also used in:
28  * modules/core/includes/sci_types.h
29  */
30 
31 #define SCI_INT8	1
32 #define SCI_INT16	2
33 #define SCI_INT32	4
34 #define SCI_INT64	8
35 
36 #define SCI_UINT8	11
37 #define SCI_UINT16	12
38 #define SCI_UINT32	14
39 #define SCI_UINT64	18
40 
41 #include "version.h"
42 #if SCI_VERSION_MAJOR > 5
43 #define __SCILAB_INT64__
44 #endif
45 
46 /********************************/
47 /*   integer matrix functions   */
48 /********************************/
49 
50 /**
51  * Get integer precision ( SCI_xINTx )
52  * @param[in] _piAddress variable address
53  * @param[out] _piPrecison return integer precision ( SCI_xINTx )
54  */
55 SciErr getMatrixOfIntegerPrecision(void* _pvCtx, int* _piAddress, int* _piPrecision);
56 
57 /**
58  * Get 8-bit integer variable
59  * @param[in] _piAddress variable address
60  * @param[out] _piRows return number of rows
61  * @param[out] _piCols return number of columns
62  * @param[out] _pcData8 return pointer to 8-bit integer
63  * @return if the operation succeeded ( 0 ) or not ( !0 )
64  */
65 SciErr getMatrixOfInteger8(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, char** _pcData8);
66 
67 /**
68  * Get 8-bit unsigned integer variable
69  * @param[in] _piAddress variable address
70  * @param[out] _piRows return number of rows
71  * @param[out] _piCols return number of columns
72  * @param[out] _pucData8 return pointer to 8-bit unsigned integer
73  * @return if the operation succeeded ( 0 ) or not ( !0 )
74  */
75 SciErr getMatrixOfUnsignedInteger8(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, unsigned char** _pucData8);
76 
77 /**
78  * Get 16-bit integer variable
79  * @param[in] _piAddress variable address
80  * @param[out] _piRows return number of rows
81  * @param[out] _piCols return number of columns
82  * @param[out] _psData16 return pointer to 16-bit integer
83  * @return if the operation succeeded ( 0 ) or not ( !0 )
84  */
85 SciErr getMatrixOfInteger16(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, short** _psData16);
86 
87 /**
88  * Get 16-bit unsigned integer variable
89  * @param[in] _piAddress variable address
90  * @param[out] _piRows return number of rows
91  * @param[out] _piCols return number of columns
92  * @param[out] _pusData16 return pointer to 16-bit unsigned integer
93  * @return if the operation succeeded ( 0 ) or not ( !0 )
94  */
95 SciErr getMatrixOfUnsignedInteger16(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, unsigned short** _pusData16);
96 
97 /**
98  * Get 32-bit integer variable
99  * @param[in] _piAddress variable address
100  * @param[out] _piRows return number of rows
101  * @param[out] _piCols return number of columns
102  * @param[out] _piData32 return pointer to 32-bit integer
103  * @return if the operation succeeded ( 0 ) or not ( !0 )
104  */
105 SciErr getMatrixOfInteger32(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, int** _piData32);
106 
107 /**
108  * Get 32-bit unsigned integer variable
109  * @param[in] _piAddress variable address
110  * @param[out] _piRows return number of rows
111  * @param[out] _piCols return number of columns
112  * @param[out] _puiData32 return pointer to 32-bit unsigned integer
113  * @return if the operation succeeded ( 0 ) or not ( !0 )
114  */
115 SciErr getMatrixOfUnsignedInteger32(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, unsigned int** _puiData32);
116 
117 
118 #ifdef __SCILAB_INT64__
119 
120 /**
121  * Get 64-bit integer variable
122  * @param[in] _piAddress variable address
123  * @param[out] _piRows return number of rows
124  * @param[out] _piCols return number of columns
125  * @param[out] _pllData64 return pointer to 64-bit integer
126  * @return if the operation succeeded ( 0 ) or not ( !0 )
127  */
128 SciErr getMatrixOfInteger64(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, long long** _pllData64);
129 
130 /**
131  * Get 64-bit unsigned integer variable
132  * @param[in] _piAddress variable address
133  * @param[out] _piRows return number of rows
134  * @param[out] _piCols return number of columns
135  * @param[out] _pullData64 return pointer to 64-bit unsigned integer
136  * @return if the operation succeeded ( 0 ) or not ( !0 )
137  */
138 SciErr getMatrixOfUnsignedInteger64(void* _pvCtx, int* _piAddress, int* _piRows, int* _piCols, unsigned long long** _pullData64);
139 
140 #endif
141 
142 /**
143  * Create 8-bit integer variable
144  * @param[in] _iVar variable number
145  * @param[in] _iRows number of rows
146  * @param[in] _iCols number of columns
147  * @param[in] _pcData8 array of 8-bit integers
148  * @return if the operation succeeded ( 0 ) or not ( !0 )
149  */
150 SciErr createMatrixOfInteger8(void* _pvCtx, int _iVar, int _iRows, int _iCols, const char* _pcData8);
151 
152 /**
153  * Create 8-bit unsigned integer variable
154  * @param[in] _iVar variable number
155  * @param[in] _iRows number of rows
156  * @param[in] _iCols number of columns
157  * @param[in] _pucData8 array of 8-bit unsigned integers
158  * @return if the operation succeeded ( 0 ) or not ( !0 )
159  */
160 SciErr createMatrixOfUnsignedInteger8(void* _pvCtx, int _iVar, int _iRows, int _iCols, const unsigned char* _pucData8);
161 
162 /**
163  * Create 16-bit integer variable
164  * @param[in] _iVar variable number
165  * @param[in] _iRows number of rows
166  * @param[in] _iCols number of columns
167  * @param[in] _psData16 array of 16-bit integers
168  * @return if the operation succeeded ( 0 ) or not ( !0 )
169  */
170 SciErr createMatrixOfInteger16(void* _pvCtx, int _iVar, int _iRows, int _iCols, const short* _psData16);
171 
172 /**
173  * Create 16-bit unsigned integer variable
174  * @param[in] _iVar variable number
175  * @param[in] _iRows number of rows
176  * @param[in] _iCols number of columns
177  * @param[in] _pusData16 array of 16-bit unsigned integers
178  * @return if the operation succeeded ( 0 ) or not ( !0 )
179  */
180 SciErr createMatrixOfUnsignedInteger16(void* _pvCtx, int _iVar, int _iRows, int _iCols, const unsigned short* _pusData16);
181 
182 /**
183  * Create 32-bit integer variable
184  * @param[in] _iVar variable number
185  * @param[in] _iRows number of rows
186  * @param[in] _iCols number of columns
187  * @param[in] _piData32 array of 32-bit integers
188  * @return if the operation succeeded ( 0 ) or not ( !0 )
189  */
190 SciErr createMatrixOfInteger32(void* _pvCtx, int _iVar, int _iRows, int _iCols, const int* _piData32);
191 
192 /**
193  * Create 32-bit unsigned integer variable
194  * @param[in] _iVar variable number
195  * @param[in] _iRows number of rows
196  * @param[in] _iCols number of columns
197  * @param[in] _puiData32 array of 32-bit unsigned integers
198  * @return if the operation succeeded ( 0 ) or not ( !0 )
199  */
200 SciErr createMatrixOfUnsignedInteger32(void* _pvCtx, int _iVar, int _iRows, int _iCols, const unsigned int* _puiData32);
201 
202 #ifdef __SCILAB_INT64__
203 
204 /**
205  * Create 64-bit integer variable
206  * @param[in] _iVar variable number
207  * @param[in] _iRows number of rows
208  * @param[in] _iCols number of columns
209  * @param[in] _pllData64 array of 64-bit integers
210  * @return if the operation succeeded ( 0 ) or not ( !0 )
211  */
212 SciErr createMatrixOfInteger64(void* _pvCtx, int _iVar, int _iRows, int _iCols, const long long* _pllData64);
213 
214 /**
215  * Create 64-bit unsigned integer variable
216  * @param[in] _iVar variable number
217  * @param[in] _iRows number of rows
218  * @param[in] _iCols number of columns
219  * @param[in] _pullData64 array of 64-bit unsigned integers
220  * @return if the operation succeeded ( 0 ) or not ( !0 )
221  */
222 SciErr createMatrixOfUnsignedInteger64(void* _pvCtx, int _iVar, int _iRows, int _iCols, const unsigned long long* _pullData64);
223 
224 #endif
225 
226 /**
227  * Create named 8-bit integer variable
228  * @param[in] _pstName variable name
229  * @param[in] _iRows number of rows
230  * @param[in] _iCols number of columns
231  * @param[in] _pcData8 array of 8-bit integers
232  * @return if the operation succeeded ( 0 ) or not ( !0 )
233  */
234 SciErr createNamedMatrixOfInteger8(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const char* _pcData8);
235 
236 /**
237  * Create named 8-bit unsigned integer variable
238  * @param[in] _pstName variable name
239  * @param[in] _iRows number of rows
240  * @param[in] _iCols number of columns
241  * @param[in] _pucData8 array of 8-bit unsigned integers
242  * @return if the operation succeeded ( 0 ) or not ( !0 )
243  */
244 SciErr createNamedMatrixOfUnsignedInteger8(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const unsigned char* _pucData8);
245 
246 /**
247  * Create named 16-bit integer variable
248  * @param[in] _pstName variable name
249  * @param[in] _iRows number of rows
250  * @param[in] _iCols number of columns
251  * @param[in] _psData16 array of 16-bit integers
252  * @return if the operation succeeded ( 0 ) or not ( !0 )
253  */
254 SciErr createNamedMatrixOfInteger16(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const short* _psData16);
255 
256 /**
257  * Create named 16-bit unsigned integer variable
258  * @param[in] _pstName variable name
259  * @param[in] _iRows number of rows
260  * @param[in] _iCols number of columns
261  * @param[in] _pusData16 array of 16-bit unsigned integers
262  * @return if the operation succeeded ( 0 ) or not ( !0 )
263  */
264 SciErr createNamedMatrixOfUnsignedInteger16(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const unsigned short* _pusData16);
265 
266 /**
267  * Create named 32-bit integer variable
268  * @param[in] _pstName variable name
269  * @param[in] _iRows number of rows
270  * @param[in] _iCols number of columns
271  * @param[in] _piData32 array of 32-bit integers
272  * @return if the operation succeeded ( 0 ) or not ( !0 )
273  */
274 SciErr createNamedMatrixOfInteger32(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const int* _piData32);
275 
276 /**
277  * Create named 32-bit unsigned integer variable
278  * @param[in] _pstName variable name
279  * @param[in] _iRows number of rows
280  * @param[in] _iCols number of columns
281  * @param[in] _puiData32 array of 32-bit unsigned integers
282  * @return if the operation succeeded ( 0 ) or not ( !0 )
283  */
284 SciErr createNamedMatrixOfUnsignedInteger32(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const unsigned int* _puiData32);
285 
286 #ifdef __SCILAB_INT64__
287 
288 /**
289  * Create named 64-bit integer variable
290  * @param[in] _pstName variable name
291  * @param[in] _iRows number of rows
292  * @param[in] _iCols number of columns
293  * @param[in] _pllData64 array of 64-bit integers
294  * @return if the operation succeeded ( 0 ) or not ( !0 )
295  */
296 SciErr createNamedMatrixOfInteger64(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const long long* _pllData64);
297 
298 /**
299  * Create named 64-bit unsigned integer variable
300  * @param[in] _pstName variable name
301  * @param[in] _iRows number of rows
302  * @param[in] _iCols number of columns
303  * @param[in] _pullData64 array of 64-bit unsigned integers
304  * @return if the operation succeeded ( 0 ) or not ( !0 )
305  */
306 SciErr createNamedMatrixOfUnsignedInteger64(void* _pvCtx, const char* _pstName, int _iRows, int _iCols, const unsigned long long* _pullData64);
307 
308 #endif
309 
310 /**
311  * Allocate 8-bit integer variable
312  * @param[in] _iVar variable number
313  * @param[in] _iRows number of rows
314  * @param[in] _iCols number of columns
315  * @param[out] _pcData8 return array of 8-bit integers
316  * @return if the operation succeeded ( 0 ) or not ( !0 )
317  */
318 SciErr allocMatrixOfInteger8(void* _pvCtx, int _iVar, int _iRows, int _iCols, char** _pcData8);
319 
320 /**
321  * Allocate 8-bit unsigned integer variable
322  * @param[in] _iVar variable number
323  * @param[in] _iRows number of rows
324  * @param[in] _iCols number of columns
325  * @param[out] _pucData8 return array of 8-bit unsigned integers
326  * @return if the operation succeeded ( 0 ) or not ( !0 )
327  */
328 SciErr allocMatrixOfUnsignedInteger8(void* _pvCtx, int _iVar, int _iRows, int _iCols, unsigned char** _pucData8);
329 
330 /**
331  * Allocate 16-bit integer variable
332  * @param[in] _iVar variable number
333  * @param[in] _iRows number of rows
334  * @param[in] _iCols number of columns
335  * @param[out] _psData16 return array of 16-bit integers
336  * @return if the operation succeeded ( 0 ) or not ( !0 )
337  */
338 SciErr allocMatrixOfInteger16(void* _pvCtx, int _iVar, int _iRows, int _iCols, short** _psData16);
339 
340 /**
341  * Allocate 16-bit unsigned integer variable
342  * @param[in] _iVar variable number
343  * @param[in] _iRows number of rows
344  * @param[in] _iCols number of columns
345  * @param[out] _pusData16 return array of 16-bit integers
346  * @return if the operation succeeded ( 0 ) or not ( !0 )
347  */
348 SciErr allocMatrixOfUnsignedInteger16(void* _pvCtx, int _iVar, int _iRows, int _iCols, unsigned short** _pusData16);
349 
350 /**
351  * Allocate 32-bit integer variable
352  * @param[in] _iVar variable number
353  * @param[in] _iRows number of rows
354  * @param[in] _iCols number of columns
355  * @param[out] _piData32 return array of 32-bit integers
356  * @return if the operation succeeded ( 0 ) or not ( !0 )
357  */
358 SciErr allocMatrixOfInteger32(void* _pvCtx, int _iVar, int _iRows, int _iCols, int** _piData32);
359 
360 /**
361  * Allocate 32-bit unsigned integer variable
362  * @param[in] _iVar variable number
363  * @param[in] _iRows number of rows
364  * @param[in] _iCols number of columns
365  * @param[out] _puiData32 return array of 32-bit unsigned integers
366  * @return if the operation succeeded ( 0 ) or not ( !0 )
367  */
368 SciErr allocMatrixOfUnsignedInteger32(void* _pvCtx, int _iVar, int _iRows, int _iCols, unsigned int** _puiData32);
369 
370 #ifdef __SCILAB_INT64__
371 
372 /**
373  * Allocate 64-bit integer variable
374  * @param[in] _iVar variable number
375  * @param[in] _iRows number of rows
376  * @param[in] _iCols number of columns
377  * @param[out] _pllData64 return array of 64-bit integers
378  * @return if the operation succeeded ( 0 ) or not ( !0 )
379  */
380 SciErr allocMatrixOfInteger64(void* _pvCtx, int _iVar, int _iRows, int _iCols, long long** _pllData64);
381 
382 /**
383  * Allocate 64-bit unsigned integer variable
384  * @param[in] _iVar variable number
385  * @param[in] _iRows number of rows
386  * @param[in] _iCols number of columns
387  * @param[out] _pullData64 return array of 64-bit unsigned integers
388  * @return if the operation succeeded ( 0 ) or not ( !0 )
389  */
390 SciErr allocMatrixOfUnsignedInteger64(void* _pvCtx, int _iVar, int _iRows, int _iCols, unsigned long long** _pullData64);
391 
392 #endif
393 
394 /**
395  * Get integer precision of a named variable ( SCI_xINTx )
396  * @param[in] _pstName variable name
397  * @param[out] _piPrecison return integer precision ( SCI_xINTx )
398  */
399 SciErr getNamedMatrixOfIntegerPrecision(void* _pvCtx, const char* _pstName, int* _piPrecision);
400 
401 /**
402  * Read named 8-bit integer variable data
403  * @param[in] _pstName variable name
404  * @param[out] _piRows return number of rows
405  * @param[out] _piCols return number of columns
406  * @param[out] _pcData8 return array of 8-bit integers
407  * @return if the operation succeeded ( 0 ) or not ( !0 )
408  */
409 SciErr readNamedMatrixOfInteger8(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, char* _pcData8);
410 
411 /**
412  * Read named 8-bit unsigned integer variable data
413  * @param[in] _pstName variable name
414  * @param[out] _piRows return number of rows
415  * @param[out] _piCols return number of columns
416  * @param[out] _pucData8 return array of 8-bit unsigned integer
417  * @return if the operation succeeded ( 0 ) or not ( !0 )
418  */
419 SciErr readNamedMatrixOfUnsignedInteger8(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, unsigned char* _pucData8);
420 
421 /**
422  * Read named 16-bit integer variable data
423  * @param[in] _pstName variable name
424  * @param[out] _piRows return number of rows
425  * @param[out] _piCols return number of columns
426  * @param[out] _psData16 return array of 16-bit integers
427  * @return if the operation succeeded ( 0 ) or not ( !0 )
428  */
429 SciErr readNamedMatrixOfInteger16(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, short* _psData16);
430 
431 /**
432  * Read named 16-bit unsigned integer variable data
433  * @param[in] _pstName variable name
434  * @param[out] _piRows return number of rows
435  * @param[out] _piCols return number of columns
436  * @param[out] _pusData16 return array of 16-bit unsigned integers
437  * @return if the operation succeeded ( 0 ) or not ( !0 )
438  */
439 SciErr readNamedMatrixOfUnsignedInteger16(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, unsigned short* _pusData16);
440 
441 /**
442  * Read named 32-bit integer variable data
443  * @param[in] _pstName variable name
444  * @param[out] _piRows return number of rows
445  * @param[out] _piCols return number of columns
446  * @param[out] _piData32 return array of 32-bit integers
447  * @return if the operation succeeded ( 0 ) or not ( !0 )
448  */
449 SciErr readNamedMatrixOfInteger32(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, int* _piData32);
450 
451 /**
452  * Read named 32-bit unsigned integer variable data
453  * @param[in] _pstName variable name
454  * @param[out] _piRows return number of rows
455  * @param[out] _piCols return number of columns
456  * @param[out] _puiData32 return array of 32-bit unsigned integers
457  * @return if the operation succeeded ( 0 ) or not ( !0 )
458  */
459 SciErr readNamedMatrixOfUnsignedInteger32(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, unsigned int* _puiData32);
460 
461 #ifdef __SCILAB_INT64__
462 
463 /**
464  * Read named 64-bit integer variable data
465  * @param[in] _pstName variable name
466  * @param[out] _piRows return number of rows
467  * @param[out] _piCols return number of columns
468  * @param[out] _pllData64 return array of 64-bit integers
469  * @return if the operation succeeded ( 0 ) or not ( !0 )
470  */
471 SciErr readNamedMatrixOfInteger64(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, long long* _pllData64);
472 
473 /**
474  * Read named 64-bit unsigned integer variable data
475  * @param[in] _pstName variable name
476  * @param[out] _piRows return number of rows
477  * @param[out] _piCols return number of columns
478  * @param[out] _pullData64 return array of 64-bit unsigned integers
479  * @return if the operation succeeded ( 0 ) or not ( !0 )
480  */
481 SciErr readNamedMatrixOfUnsignedInteger64(void* _pvCtx, const char* _pstName, int* _piRows, int* _piCols, unsigned long long* _pullData64);
482 
483 #endif
484 
485 /* shortcut functions */
486 
487 /**
488  * Check if the type of a variable is integer
489  * @param[in] _piAddress variable address
490  * @return 1 for true and 0 for false
491  */
492 int isIntegerType(void* _pvCtx, int* _piAddress);
493 
494 /**
495  * Check if the type of a named variable is integer
496  * @param[in] _pstName variable name
497  * @return 1 for true and 0 for false
498  */
499 int isNamedIntegerType(void* _pvCtx, const char* _pstName);
500 
501 /**
502  * Get scalar 8-bit integer value
503  * @param[in] _piAddress variable address
504  * @param[out] _pcData return integer value
505  * @return if the operation succeeded ( 0 ) or not ( !0 )
506  */
507 int getScalarInteger8(void* _pvCtx, int* _piAddress, char* _pcData);
508 
509 /**
510  * Get scalar 8-bit unsigned integer value
511  * @param[in] _piAddress variable address
512  * @param[out] _pucData return integer value
513  * @return if the operation succeeded ( 0 ) or not ( !0 )
514  */
515 int getScalarUnsignedInteger8(void* _pvCtx, int* _piAddress, unsigned char* _pucData);
516 
517 /**
518  * Get scalar 16-bit integer value
519  * @param[in] _piAddress variable address
520  * @param[out] _psData return integer value
521  * @return if the operation succeeded ( 0 ) or not ( !0 )
522  */
523 int getScalarInteger16(void* _pvCtx, int* _piAddress, short* _psData);
524 
525 /**
526  * Get scalar 16-bit unsigned integer value
527  * @param[in] _piAddress variable address
528  * @param[out] _pusData return integer value
529  * @return if the operation succeeded ( 0 ) or not ( !0 )
530  */
531 int getScalarUnsignedInteger16(void* _pvCtx, int* _piAddress, unsigned short* _pusData);
532 
533 /**
534  * Get scalar 32-bit integer value
535  * @param[in] _piAddress variable address
536  * @param[out] _piData return integer value
537  * @return if the operation succeeded ( 0 ) or not ( !0 )
538  */
539 int getScalarInteger32(void* _pvCtx, int* _piAddress, int* _piData);
540 
541 /**
542  * Get scalar 32-bit unsigned integer value
543  * @param[in] _piAddress variable address
544  * @param[out] _puiData return integer value
545  * @return if the operation succeeded ( 0 ) or not ( !0 )
546  */
547 int getScalarUnsignedInteger32(void* _pvCtx, int* _piAddress, unsigned int* _puiData);
548 
549 #ifdef __SCILAB_INT64__
550 
551 /**
552  * Get scalar 64-bit integer value
553  * @param[in] _piAddress variable address
554  * @param[out] _pllData return integer value
555  * @return if the operation succeeded ( 0 ) or not ( !0 )
556  */
557 int getScalarInteger64(void* _pvCtx, int* _piAddress, long long* _pllData);
558 
559 /**
560  * Get scalar 64-bit unsigned integer value
561  * @param[in] _piAddress variable address
562  * @param[out] _pullData return integer value
563  * @return if the operation succeeded ( 0 ) or not ( !0 )
564  */
565 int getScalarUnsignedInteger64(void* _pvCtx, int* _piAddress, unsigned long long* _pullData);
566 
567 #endif
568 
569 /**
570  * Get named scalar 8-bit integer value
571  * @param[in] _pstName variable name
572  * @param[out] _pcData return integer value
573  * @return if the operation succeeded ( 0 ) or not ( !0 )
574  */
575 int getNamedScalarInteger8(void* _pvCtx, const char* _pstName, char* _pcData);
576 
577 /**
578  * Get named scalar 8-bit unsigned integer value
579  * @param[in] _pstName variable name
580  * @param[out] _pucData return integer value
581  * @return if the operation succeeded ( 0 ) or not ( !0 )
582  */
583 int getNamedScalarUnsignedInteger8(void* _pvCtx, const char* _pstName, unsigned char* _pucData);
584 
585 /**
586  * Get named scalar 16-bit integer value
587  * @param[in] _pstName variable name
588  * @param[out] _psData return integer value
589  * @return if the operation succeeded ( 0 ) or not ( !0 )
590  */
591 int getNamedScalarInteger16(void* _pvCtx, const char* _pstName, short* _psData);
592 
593 /**
594  * Get named scalar 16-bit unsigned integer value
595  * @param[in] _pstName variable name
596  * @param[out] _pusData return integer value
597  * @return if the operation succeeded ( 0 ) or not ( !0 )
598  */
599 int getNamedScalarUnsignedInteger16(void* _pvCtx, const char* _pstName, unsigned short* _pusData);
600 
601 /**
602  * Get named scalar 32-bit integer value
603  * @param[in] _pstName variable name
604  * @param[out] _piData return integer value
605  * @return if the operation succeeded ( 0 ) or not ( !0 )
606  */
607 int getNamedScalarInteger32(void* _pvCtx, const char* _pstName, int* _piData);
608 
609 /**
610  * Get named scalar 32-bit unsigned integer value
611  * @param[in] _pstName variable name
612  * @param[out] _puiData return integer value
613  * @return if the operation succeeded ( 0 ) or not ( !0 )
614  */
615 int getNamedScalarUnsignedInteger32(void* _pvCtx, const char* _pstName, unsigned int* _puiData);
616 
617 #ifdef __SCILAB_INT64__
618 
619 /**
620  * Get named scalar 64-bit integer value
621  * @param[in] _pstName variable name
622  * @param[out] _pllData return integer value
623  * @return if the operation succeeded ( 0 ) or not ( !0 )
624  */
625 int getNamedScalarInteger64(void* _pvCtx, const char* _pstName, long long* _pllData);
626 
627 /**
628  * Get named scalar 64-bit unsigned integer value
629  * @param[in] _pstName variable name
630  * @param[out] _pullData return integer value
631  * @return if the operation succeeded ( 0 ) or not ( !0 )
632  */
633 int getNamedScalarUnsignedInteger64(void* _pvCtx, const char* _pstName, unsigned long long* _pullData);
634 
635 #endif
636 
637 /**
638  * Create scalar 8-bit integer variable
639  * @param[in] _iVar variable number
640  * @param[in] _cData 8-bit integer value
641  * @return if the operation succeeded ( 0 ) or not ( !0 )
642  */
643 int createScalarInteger8(void* _pvCtx, int _iVar, char _cData);
644 
645 /**
646  * Create scalar 8-bit unsigned integer variable
647  * @param[in] _iVar variable number
648  * @param[in] _ucData 8-bit unsigned integer value
649  * @return if the operation succeeded ( 0 ) or not ( !0 )
650  */
651 int createScalarUnsignedInteger8(void* _pvCtx, int _iVar, unsigned char _ucData);
652 
653 /**
654  * Create scalar 16-bit integer variable
655  * @param[in] _iVar variable number
656  * @param[in] _sData 16-bit integer value
657  * @return if the operation succeeded ( 0 ) or not ( !0 )
658  */
659 int createScalarInteger16(void* _pvCtx, int _iVar, short _sData);
660 
661 /**
662  * Create scalar 16-bit unsigned integer variable
663  * @param[in] _iVar variable number
664  * @param[in] _usData 16-bit unsigned integer value
665  * @return if the operation succeeded ( 0 ) or not ( !0 )
666  */
667 int createScalarUnsignedInteger16(void* _pvCtx, int _iVar, unsigned short _usData);
668 
669 /**
670  * Create scalar 32-bit integer variable
671  * @param[in] _iVar variable number
672  * @param[in] _iData 32-bit integer value
673  * @return if the operation succeeded ( 0 ) or not ( !0 )
674  */
675 int createScalarInteger32(void* _pvCtx, int _iVar, int _iData);
676 
677 /**
678  * Create scalar 32-bit unsigned integer variable
679  * @param[in] _iVar variable number
680  * @param[in] _uiData 32-bit unsigned integer value
681  * @return if the operation succeeded ( 0 ) or not ( !0 )
682  */
683 int createScalarUnsignedInteger32(void* _pvCtx, int _iVar, unsigned int _uiData);
684 
685 #ifdef __SCILAB_INT64__
686 
687 /**
688  * Create scalar 64-bit integer variable
689  * @param[in] _iVar variable number
690  * @param[in] _llData 64-bit integer value
691  * @return if the operation succeeded ( 0 ) or not ( !0 )
692  */
693 int createScalarInteger64(void* _pvCtx, int _iVar, long long _llData);
694 
695 /**
696  * Create scalar 64-bit unsigned integer variable
697  * @param[in] _iVar variable number
698  * @param[in] _ullData 64-bit unsigned integer value
699  * @return if the operation succeeded ( 0 ) or not ( !0 )
700  */
701 int createScalarUnsignedInteger64(void* _pvCtx, int _iVar, unsigned long long _ullData);
702 
703 #endif
704 
705 /**
706  * Create named scalar 8-bit integer variable
707  * @param[in] _pstName variable name
708  * @param[in] _cData 8-bit integer value
709  * @return if the operation succeeded ( 0 ) or not ( !0 )
710  */
711 int createNamedScalarInteger8(void* _pvCtx, const char* _pstName, char _cData);
712 
713 /**
714  * Create named scalar 8-bit unsigned integer variable
715  * @param[in] _pstName variable name
716  * @param[in] _ucData 8-bit unsigned integer value
717  * @return if the operation succeeded ( 0 ) or not ( !0 )
718  */
719 int createNamedScalarUnsignedInteger8(void* _pvCtx, const char* _pstName, unsigned char _ucData);
720 
721 /**
722  * Create named scalar 16-bit integer variable
723  * @param[in] _pstName variable name
724  * @param[in] _sData 16-bit integer value
725  * @return if the operation succeeded ( 0 ) or not ( !0 )
726  */
727 int createNamedScalarInteger16(void* _pvCtx, const char* _pstName, short _sData);
728 
729 /**
730  * Create named scalar 16-bit unsigned integer variable
731  * @param[in] _pstName variable name
732  * @param[in] _usData 16-bit unsigned integer value
733  * @return if the operation succeeded ( 0 ) or not ( !0 )
734  */
735 int createNamedScalarUnsignedInteger16(void* _pvCtx, const char* _pstName, unsigned short _usData);
736 
737 /**
738  * Create named scalar 32-bit integer variable
739  * @param[in] _pstName variable name
740  * @param[in] _iData 32-bit integer value
741  * @return if the operation succeeded ( 0 ) or not ( !0 )
742  */
743 int createNamedScalarInteger32(void* _pvCtx, const char* _pstName, int _iData);
744 
745 /**
746  * Create named scalar 32-bit unsigned integer variable
747  * @param[in] _pstName variable name
748  * @param[in] _uiData 32-bit unsigned integer value
749  * @return if the operation succeeded ( 0 ) or not ( !0 )
750  */
751 int createNamedScalarUnsignedInteger32(void* _pvCtx, const char* _pstName, unsigned int _uiData);
752 
753 #ifdef __SCILAB_INT64__
754 
755 /**
756  * Create named scalar 64-bit integer variable
757  * @param[in] _pstName variable name
758  * @param[in] _llData 64-bit integer value
759  * @return if the operation succeeded ( 0 ) or not ( !0 )
760  */
761 int createNamedScalarInteger64(void* _pvCtx, const char* _pstName, long long _llData);
762 
763 /**
764  * Create named scalar 64-bit unsigned integer variable
765  * @param[in] _pstName variable name
766  * @param[in] _ullData 64-bit unsigned integer value
767  * @return if the operation succeeded ( 0 ) or not ( !0 )
768  */
769 int createNamedScalarUnsignedInteger64(void* _pvCtx, const char* _pstName, unsigned long long _ullData);
770 
771 #endif
772 
773 #ifdef __cplusplus
774 }
775 #endif
776 #endif /* __STACK_INT_API__ */
777