SysVIPC 0.9 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/ext/SysVIPC.c +198 -160
- data/ext/extconf.rb +3 -0
- data/lib/SysVIPC.rb +24 -8
- metadata +23 -10
data/ext/SysVIPC.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* ----------------------------------------------------------------------------
|
2
2
|
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
-
* Version
|
3
|
+
* Version 2.0.4
|
4
4
|
*
|
5
5
|
* This file is not intended to be easily readable and contains a number of
|
6
6
|
* coding conventions designed to improve portability and efficiency. Do not make
|
@@ -9,6 +9,7 @@
|
|
9
9
|
* ----------------------------------------------------------------------------- */
|
10
10
|
|
11
11
|
#define SWIGRUBY
|
12
|
+
|
12
13
|
/* -----------------------------------------------------------------------------
|
13
14
|
* This section contains generic SWIG labels for method/variable
|
14
15
|
* declarations/attributes, and other compiler dependent labels.
|
@@ -230,7 +231,7 @@
|
|
230
231
|
/* -----------------------------------------------------------------------------
|
231
232
|
* swigrun.swg
|
232
233
|
*
|
233
|
-
* This file contains generic
|
234
|
+
* This file contains generic C API SWIG runtime support for pointer
|
234
235
|
* type checking.
|
235
236
|
* ----------------------------------------------------------------------------- */
|
236
237
|
|
@@ -249,11 +250,11 @@
|
|
249
250
|
|
250
251
|
/*
|
251
252
|
You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
|
252
|
-
creating a static or dynamic library from the
|
253
|
-
In 99.9% of the cases,
|
253
|
+
creating a static or dynamic library from the SWIG runtime code.
|
254
|
+
In 99.9% of the cases, SWIG just needs to declare them as 'static'.
|
254
255
|
|
255
|
-
But only do this if
|
256
|
-
with your compiler or
|
256
|
+
But only do this if strictly necessary, ie, if you have problems
|
257
|
+
with your compiler or suchlike.
|
257
258
|
*/
|
258
259
|
|
259
260
|
#ifndef SWIGRUNTIME
|
@@ -280,14 +281,14 @@
|
|
280
281
|
/*
|
281
282
|
Flags/methods for returning states.
|
282
283
|
|
283
|
-
The
|
284
|
+
The SWIG conversion methods, as ConvertPtr, return an integer
|
284
285
|
that tells if the conversion was successful or not. And if not,
|
285
286
|
an error code can be returned (see swigerrors.swg for the codes).
|
286
287
|
|
287
288
|
Use the following macros/flags to set or process the returning
|
288
289
|
states.
|
289
290
|
|
290
|
-
In old
|
291
|
+
In old versions of SWIG, code such as the following was usually written:
|
291
292
|
|
292
293
|
if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
|
293
294
|
// success code
|
@@ -295,7 +296,7 @@
|
|
295
296
|
//fail code
|
296
297
|
}
|
297
298
|
|
298
|
-
Now you can be more explicit
|
299
|
+
Now you can be more explicit:
|
299
300
|
|
300
301
|
int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
|
301
302
|
if (SWIG_IsOK(res)) {
|
@@ -304,7 +305,7 @@
|
|
304
305
|
// fail code
|
305
306
|
}
|
306
307
|
|
307
|
-
|
308
|
+
which is the same really, but now you can also do
|
308
309
|
|
309
310
|
Type *ptr;
|
310
311
|
int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
|
@@ -322,7 +323,7 @@
|
|
322
323
|
|
323
324
|
I.e., now SWIG_ConvertPtr can return new objects and you can
|
324
325
|
identify the case and take care of the deallocation. Of course that
|
325
|
-
|
326
|
+
also requires SWIG_ConvertPtr to return new result values, such as
|
326
327
|
|
327
328
|
int SWIG_ConvertPtr(obj, ptr,...) {
|
328
329
|
if (<obj is ok>) {
|
@@ -340,7 +341,7 @@
|
|
340
341
|
|
341
342
|
Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
|
342
343
|
more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
|
343
|
-
|
344
|
+
SWIG errors code.
|
344
345
|
|
345
346
|
Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
|
346
347
|
allows to return the 'cast rank', for example, if you have this
|
@@ -354,9 +355,8 @@
|
|
354
355
|
fooi(1) // cast rank '0'
|
355
356
|
|
356
357
|
just use the SWIG_AddCast()/SWIG_CheckState()
|
358
|
+
*/
|
357
359
|
|
358
|
-
|
359
|
-
*/
|
360
360
|
#define SWIG_OK (0)
|
361
361
|
#define SWIG_ERROR (-1)
|
362
362
|
#define SWIG_IsOK(r) (r >= 0)
|
@@ -381,7 +381,6 @@
|
|
381
381
|
#define SWIG_DelTmpMask(r) (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
|
382
382
|
#define SWIG_IsTmpObj(r) (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
|
383
383
|
|
384
|
-
|
385
384
|
/* Cast-Rank Mode */
|
386
385
|
#if defined(SWIG_CASTRANK_MODE)
|
387
386
|
# ifndef SWIG_TypeRank
|
@@ -404,8 +403,6 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
|
|
404
403
|
#endif
|
405
404
|
|
406
405
|
|
407
|
-
|
408
|
-
|
409
406
|
#include <string.h>
|
410
407
|
|
411
408
|
#ifdef __cplusplus
|
@@ -502,40 +499,58 @@ SWIG_TypeCompare(const char *nb, const char *tb) {
|
|
502
499
|
}
|
503
500
|
|
504
501
|
|
505
|
-
/* think of this as a c++ template<> or a scheme macro */
|
506
|
-
#define SWIG_TypeCheck_Template(comparison, ty) \
|
507
|
-
if (ty) { \
|
508
|
-
swig_cast_info *iter = ty->cast; \
|
509
|
-
while (iter) { \
|
510
|
-
if (comparison) { \
|
511
|
-
if (iter == ty->cast) return iter; \
|
512
|
-
/* Move iter to the top of the linked list */ \
|
513
|
-
iter->prev->next = iter->next; \
|
514
|
-
if (iter->next) \
|
515
|
-
iter->next->prev = iter->prev; \
|
516
|
-
iter->next = ty->cast; \
|
517
|
-
iter->prev = 0; \
|
518
|
-
if (ty->cast) ty->cast->prev = iter; \
|
519
|
-
ty->cast = iter; \
|
520
|
-
return iter; \
|
521
|
-
} \
|
522
|
-
iter = iter->next; \
|
523
|
-
} \
|
524
|
-
} \
|
525
|
-
return 0
|
526
|
-
|
527
502
|
/*
|
528
503
|
Check the typename
|
529
504
|
*/
|
530
505
|
SWIGRUNTIME swig_cast_info *
|
531
506
|
SWIG_TypeCheck(const char *c, swig_type_info *ty) {
|
532
|
-
|
507
|
+
if (ty) {
|
508
|
+
swig_cast_info *iter = ty->cast;
|
509
|
+
while (iter) {
|
510
|
+
if (strcmp(iter->type->name, c) == 0) {
|
511
|
+
if (iter == ty->cast)
|
512
|
+
return iter;
|
513
|
+
/* Move iter to the top of the linked list */
|
514
|
+
iter->prev->next = iter->next;
|
515
|
+
if (iter->next)
|
516
|
+
iter->next->prev = iter->prev;
|
517
|
+
iter->next = ty->cast;
|
518
|
+
iter->prev = 0;
|
519
|
+
if (ty->cast) ty->cast->prev = iter;
|
520
|
+
ty->cast = iter;
|
521
|
+
return iter;
|
522
|
+
}
|
523
|
+
iter = iter->next;
|
524
|
+
}
|
525
|
+
}
|
526
|
+
return 0;
|
533
527
|
}
|
534
528
|
|
535
|
-
/*
|
529
|
+
/*
|
530
|
+
Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
|
531
|
+
*/
|
536
532
|
SWIGRUNTIME swig_cast_info *
|
537
|
-
SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *
|
538
|
-
|
533
|
+
SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
|
534
|
+
if (ty) {
|
535
|
+
swig_cast_info *iter = ty->cast;
|
536
|
+
while (iter) {
|
537
|
+
if (iter->type == from) {
|
538
|
+
if (iter == ty->cast)
|
539
|
+
return iter;
|
540
|
+
/* Move iter to the top of the linked list */
|
541
|
+
iter->prev->next = iter->next;
|
542
|
+
if (iter->next)
|
543
|
+
iter->next->prev = iter->prev;
|
544
|
+
iter->next = ty->cast;
|
545
|
+
iter->prev = 0;
|
546
|
+
if (ty->cast) ty->cast->prev = iter;
|
547
|
+
ty->cast = iter;
|
548
|
+
return iter;
|
549
|
+
}
|
550
|
+
iter = iter->next;
|
551
|
+
}
|
552
|
+
}
|
553
|
+
return 0;
|
539
554
|
}
|
540
555
|
|
541
556
|
/*
|
@@ -816,6 +831,15 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
|
|
816
831
|
|
817
832
|
#include <ruby.h>
|
818
833
|
|
834
|
+
/* Ruby 1.9.1 has a "memoisation optimisation" when compiling with GCC which
|
835
|
+
* breaks using rb_intern as an lvalue, as SWIG does. We work around this
|
836
|
+
* issue for now by disabling this.
|
837
|
+
* https://sourceforge.net/tracker/?func=detail&aid=2859614&group_id=1645&atid=101645
|
838
|
+
*/
|
839
|
+
#ifdef rb_intern
|
840
|
+
# undef rb_intern
|
841
|
+
#endif
|
842
|
+
|
819
843
|
/* Remove global macros defined in Ruby's win32.h */
|
820
844
|
#ifdef write
|
821
845
|
# undef write
|
@@ -823,6 +847,15 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
|
|
823
847
|
#ifdef read
|
824
848
|
# undef read
|
825
849
|
#endif
|
850
|
+
#ifdef bind
|
851
|
+
# undef bind
|
852
|
+
#endif
|
853
|
+
#ifdef close
|
854
|
+
# undef close
|
855
|
+
#endif
|
856
|
+
#ifdef connect
|
857
|
+
# undef connect
|
858
|
+
#endif
|
826
859
|
|
827
860
|
|
828
861
|
/* Ruby 1.7 defines NUM2LL(), LL2NUM() and ULL2NUM() macros */
|
@@ -965,7 +998,7 @@ static VALUE _mSWIG = Qnil;
|
|
965
998
|
|
966
999
|
/* Define custom exceptions for errors that do not map to existing Ruby
|
967
1000
|
exceptions. Note this only works for C++ since a global cannot be
|
968
|
-
initialized by a
|
1001
|
+
initialized by a function in C. For C, fallback to rb_eRuntimeError.*/
|
969
1002
|
|
970
1003
|
SWIGINTERN VALUE
|
971
1004
|
getNullReferenceError(void) {
|
@@ -1110,9 +1143,6 @@ void Ruby_Format_OverloadedError(
|
|
1110
1143
|
}
|
1111
1144
|
|
1112
1145
|
/* -----------------------------------------------------------------------------
|
1113
|
-
* See the LICENSE file for information on copyright, usage and redistribution
|
1114
|
-
* of SWIG, and the README file for authors - http://www.swig.org/release.html.
|
1115
|
-
*
|
1116
1146
|
* rubytracking.swg
|
1117
1147
|
*
|
1118
1148
|
* This file contains support for tracking mappings from
|
@@ -1308,9 +1338,6 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
|
|
1308
1338
|
|
1309
1339
|
|
1310
1340
|
/* -----------------------------------------------------------------------------
|
1311
|
-
* See the LICENSE file for information on copyright, usage and redistribution
|
1312
|
-
* of SWIG, and the README file for authors - http://www.swig.org/release.html.
|
1313
|
-
*
|
1314
1341
|
* rubyrun.swg
|
1315
1342
|
*
|
1316
1343
|
* This file contains the runtime support for Ruby modules
|
@@ -1354,7 +1381,7 @@ SWIG_Ruby_AppendOutput(VALUE target, VALUE o) {
|
|
1354
1381
|
/* Error manipulation */
|
1355
1382
|
|
1356
1383
|
#define SWIG_ErrorType(code) SWIG_Ruby_ErrorType(code)
|
1357
|
-
#define SWIG_Error(code, msg) rb_raise(SWIG_Ruby_ErrorType(code), msg)
|
1384
|
+
#define SWIG_Error(code, msg) rb_raise(SWIG_Ruby_ErrorType(code), "%s", msg)
|
1358
1385
|
#define SWIG_fail goto fail
|
1359
1386
|
|
1360
1387
|
|
@@ -1409,7 +1436,7 @@ static ID swig_call_id = 0;
|
|
1409
1436
|
++swig_virtual_calls;
|
1410
1437
|
# define SWIG_RELEASE_STACK --swig_virtual_calls;
|
1411
1438
|
# define Ruby_DirectorTypeMismatchException(x) \
|
1412
|
-
rb_raise( rb_eTypeError, x ); return c_result;
|
1439
|
+
rb_raise( rb_eTypeError, "%s", x ); return c_result;
|
1413
1440
|
|
1414
1441
|
static unsigned int swig_virtual_calls = 0;
|
1415
1442
|
|
@@ -1787,7 +1814,7 @@ static VALUE mSysVIPC;
|
|
1787
1814
|
#define SWIG_RUBY_THREAD_END_BLOCK
|
1788
1815
|
|
1789
1816
|
|
1790
|
-
#define SWIGVERSION
|
1817
|
+
#define SWIGVERSION 0x020004
|
1791
1818
|
#define SWIG_VERSION SWIGVERSION
|
1792
1819
|
|
1793
1820
|
|
@@ -1842,16 +1869,20 @@ SWIG_FromCharPtr(const char *cptr)
|
|
1842
1869
|
#define EWOULDBLOCK EAGAIN
|
1843
1870
|
#endif
|
1844
1871
|
|
1872
|
+
#ifndef HAVE_TYPE_STRUCT_MSGBUF
|
1845
1873
|
struct msgbuf {
|
1846
1874
|
long mtype;
|
1847
1875
|
char mtext[1];
|
1848
1876
|
};
|
1877
|
+
#endif
|
1849
1878
|
|
1879
|
+
#ifndef HAVE_TYPE_UNION_SEMUN
|
1850
1880
|
union semun {
|
1851
1881
|
int val;
|
1852
1882
|
struct semid_ds *buf;
|
1853
1883
|
unsigned short *array;
|
1854
1884
|
};
|
1885
|
+
#endif
|
1855
1886
|
|
1856
1887
|
struct shmaddr {
|
1857
1888
|
void *p;
|
@@ -1862,7 +1893,14 @@ struct shmaddr {
|
|
1862
1893
|
#ifdef __cplusplus
|
1863
1894
|
extern "C" {
|
1864
1895
|
#endif
|
1896
|
+
|
1897
|
+
// Ruby 1.9 changed the file name of this header
|
1898
|
+
#ifdef HAVE_RUBY_IO_H
|
1899
|
+
#include "ruby/io.h"
|
1900
|
+
#else
|
1865
1901
|
#include "rubyio.h"
|
1902
|
+
#endif
|
1903
|
+
|
1866
1904
|
#ifdef __cplusplus
|
1867
1905
|
}
|
1868
1906
|
#endif
|
@@ -1907,7 +1945,7 @@ SWIG_ruby_failed(void)
|
|
1907
1945
|
}
|
1908
1946
|
|
1909
1947
|
|
1910
|
-
/*@SWIG:/usr/share/
|
1948
|
+
/*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
1911
1949
|
SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
|
1912
1950
|
{
|
1913
1951
|
VALUE obj = args[0];
|
@@ -2007,7 +2045,7 @@ SWIG_AsCharPtrAndSize(VALUE obj, char** cptr, size_t* psize, int *alloc)
|
|
2007
2045
|
|
2008
2046
|
|
2009
2047
|
|
2010
|
-
/*@SWIG:/usr/share/
|
2048
|
+
/*@SWIG:/usr/share/swig2.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
|
2011
2049
|
SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
|
2012
2050
|
{
|
2013
2051
|
VALUE obj = args[0];
|
@@ -2352,7 +2390,7 @@ _wrap_errno_get(VALUE self) {
|
|
2352
2390
|
}
|
2353
2391
|
|
2354
2392
|
|
2355
|
-
swig_class
|
2393
|
+
swig_class SwigClassIpc_perm;
|
2356
2394
|
|
2357
2395
|
SWIGINTERN VALUE
|
2358
2396
|
_wrap_ipc_perm_uid_set(int argc, VALUE *argv, VALUE self) {
|
@@ -2691,7 +2729,7 @@ fail:
|
|
2691
2729
|
}
|
2692
2730
|
|
2693
2731
|
|
2694
|
-
swig_class
|
2732
|
+
swig_class SwigClassMsqid_ds;
|
2695
2733
|
|
2696
2734
|
SWIGINTERN VALUE
|
2697
2735
|
_wrap_msqid_ds_msg_perm_set(int argc, VALUE *argv, VALUE self) {
|
@@ -3324,7 +3362,7 @@ fail:
|
|
3324
3362
|
}
|
3325
3363
|
|
3326
3364
|
|
3327
|
-
swig_class
|
3365
|
+
swig_class SwigClassSemid_ds;
|
3328
3366
|
|
3329
3367
|
SWIGINTERN VALUE
|
3330
3368
|
_wrap_semid_ds_sem_perm_set(int argc, VALUE *argv, VALUE self) {
|
@@ -3577,7 +3615,7 @@ free_semid_ds(struct semid_ds *arg1) {
|
|
3577
3615
|
free((char *) arg1);
|
3578
3616
|
}
|
3579
3617
|
|
3580
|
-
swig_class
|
3618
|
+
swig_class SwigClassSembuf;
|
3581
3619
|
|
3582
3620
|
SWIGINTERN VALUE
|
3583
3621
|
_wrap_sembuf_sem_num_set(int argc, VALUE *argv, VALUE self) {
|
@@ -3907,7 +3945,7 @@ fail:
|
|
3907
3945
|
}
|
3908
3946
|
|
3909
3947
|
|
3910
|
-
swig_class
|
3948
|
+
swig_class SwigClassShmid_ds;
|
3911
3949
|
|
3912
3950
|
SWIGINTERN VALUE
|
3913
3951
|
_wrap_shmid_ds_shm_perm_set(int argc, VALUE *argv, VALUE self) {
|
@@ -4373,7 +4411,7 @@ free_shmid_ds(struct shmid_ds *arg1) {
|
|
4373
4411
|
free((char *) arg1);
|
4374
4412
|
}
|
4375
4413
|
|
4376
|
-
swig_class
|
4414
|
+
swig_class SwigClassShmaddr;
|
4377
4415
|
|
4378
4416
|
#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
|
4379
4417
|
SWIGINTERN VALUE
|
@@ -4947,7 +4985,7 @@ SWIGEXPORT void Init_SysVIPC(void) {
|
|
4947
4985
|
}
|
4948
4986
|
|
4949
4987
|
SWIG_RubyInitializeTrackings();
|
4950
|
-
rb_define_const(mSysVIPC, "RELEASE", SWIG_FromCharPtr("0.9"));
|
4988
|
+
rb_define_const(mSysVIPC, "RELEASE", SWIG_FromCharPtr("0.9.5"));
|
4951
4989
|
rb_define_singleton_method(mSysVIPC, "errno", _wrap_errno_get, 0);
|
4952
4990
|
rb_define_const(mSysVIPC, "IPC_CREAT", SWIG_From_int((int)(IPC_CREAT)));
|
4953
4991
|
rb_define_const(mSysVIPC, "IPC_EXCL", SWIG_From_int((int)(IPC_EXCL)));
|
@@ -4957,49 +4995,49 @@ SWIGEXPORT void Init_SysVIPC(void) {
|
|
4957
4995
|
rb_define_const(mSysVIPC, "IPC_SET", SWIG_From_int((int)(IPC_SET)));
|
4958
4996
|
rb_define_const(mSysVIPC, "IPC_STAT", SWIG_From_int((int)(IPC_STAT)));
|
4959
4997
|
|
4960
|
-
|
4961
|
-
SWIG_TypeClientData(SWIGTYPE_p_ipc_perm, (void *) &
|
4962
|
-
rb_define_alloc_func(
|
4963
|
-
rb_define_method(
|
4964
|
-
rb_define_method(
|
4965
|
-
rb_define_method(
|
4966
|
-
rb_define_method(
|
4967
|
-
rb_define_method(
|
4968
|
-
rb_define_method(
|
4969
|
-
rb_define_method(
|
4970
|
-
rb_define_method(
|
4971
|
-
rb_define_method(
|
4972
|
-
rb_define_method(
|
4973
|
-
rb_define_method(
|
4974
|
-
|
4975
|
-
|
4976
|
-
|
4998
|
+
SwigClassIpc_perm.klass = rb_define_class_under(mSysVIPC, "Ipc_perm", rb_cObject);
|
4999
|
+
SWIG_TypeClientData(SWIGTYPE_p_ipc_perm, (void *) &SwigClassIpc_perm);
|
5000
|
+
rb_define_alloc_func(SwigClassIpc_perm.klass, _wrap_ipc_perm_allocate);
|
5001
|
+
rb_define_method(SwigClassIpc_perm.klass, "initialize", _wrap_new_ipc_perm, -1);
|
5002
|
+
rb_define_method(SwigClassIpc_perm.klass, "uid=", _wrap_ipc_perm_uid_set, -1);
|
5003
|
+
rb_define_method(SwigClassIpc_perm.klass, "uid", _wrap_ipc_perm_uid_get, -1);
|
5004
|
+
rb_define_method(SwigClassIpc_perm.klass, "gid=", _wrap_ipc_perm_gid_set, -1);
|
5005
|
+
rb_define_method(SwigClassIpc_perm.klass, "gid", _wrap_ipc_perm_gid_get, -1);
|
5006
|
+
rb_define_method(SwigClassIpc_perm.klass, "cuid=", _wrap_ipc_perm_cuid_set, -1);
|
5007
|
+
rb_define_method(SwigClassIpc_perm.klass, "cuid", _wrap_ipc_perm_cuid_get, -1);
|
5008
|
+
rb_define_method(SwigClassIpc_perm.klass, "cgid=", _wrap_ipc_perm_cgid_set, -1);
|
5009
|
+
rb_define_method(SwigClassIpc_perm.klass, "cgid", _wrap_ipc_perm_cgid_get, -1);
|
5010
|
+
rb_define_method(SwigClassIpc_perm.klass, "mode=", _wrap_ipc_perm_mode_set, -1);
|
5011
|
+
rb_define_method(SwigClassIpc_perm.klass, "mode", _wrap_ipc_perm_mode_get, -1);
|
5012
|
+
SwigClassIpc_perm.mark = 0;
|
5013
|
+
SwigClassIpc_perm.destroy = (void (*)(void *)) free_ipc_perm;
|
5014
|
+
SwigClassIpc_perm.trackObjects = 0;
|
4977
5015
|
rb_define_module_function(mSysVIPC, "ftok", _wrap_ftok, -1);
|
4978
5016
|
rb_define_const(mSysVIPC, "MSG_NOERROR", SWIG_From_int((int)(MSG_NOERROR)));
|
4979
5017
|
|
4980
|
-
|
4981
|
-
SWIG_TypeClientData(SWIGTYPE_p_msqid_ds, (void *) &
|
4982
|
-
rb_define_alloc_func(
|
4983
|
-
rb_define_method(
|
4984
|
-
rb_define_method(
|
4985
|
-
rb_define_method(
|
4986
|
-
rb_define_method(
|
4987
|
-
rb_define_method(
|
4988
|
-
rb_define_method(
|
4989
|
-
rb_define_method(
|
4990
|
-
rb_define_method(
|
4991
|
-
rb_define_method(
|
4992
|
-
rb_define_method(
|
4993
|
-
rb_define_method(
|
4994
|
-
rb_define_method(
|
4995
|
-
rb_define_method(
|
4996
|
-
rb_define_method(
|
4997
|
-
rb_define_method(
|
4998
|
-
rb_define_method(
|
4999
|
-
rb_define_method(
|
5000
|
-
|
5001
|
-
|
5002
|
-
|
5018
|
+
SwigClassMsqid_ds.klass = rb_define_class_under(mSysVIPC, "Msqid_ds", rb_cObject);
|
5019
|
+
SWIG_TypeClientData(SWIGTYPE_p_msqid_ds, (void *) &SwigClassMsqid_ds);
|
5020
|
+
rb_define_alloc_func(SwigClassMsqid_ds.klass, _wrap_msqid_ds_allocate);
|
5021
|
+
rb_define_method(SwigClassMsqid_ds.klass, "initialize", _wrap_new_msqid_ds, -1);
|
5022
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_perm=", _wrap_msqid_ds_msg_perm_set, -1);
|
5023
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_perm", _wrap_msqid_ds_msg_perm_get, -1);
|
5024
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_qnum=", _wrap_msqid_ds_msg_qnum_set, -1);
|
5025
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_qnum", _wrap_msqid_ds_msg_qnum_get, -1);
|
5026
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_qbytes=", _wrap_msqid_ds_msg_qbytes_set, -1);
|
5027
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_qbytes", _wrap_msqid_ds_msg_qbytes_get, -1);
|
5028
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_lspid=", _wrap_msqid_ds_msg_lspid_set, -1);
|
5029
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_lspid", _wrap_msqid_ds_msg_lspid_get, -1);
|
5030
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_lrpid=", _wrap_msqid_ds_msg_lrpid_set, -1);
|
5031
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_lrpid", _wrap_msqid_ds_msg_lrpid_get, -1);
|
5032
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_stime=", _wrap_msqid_ds_msg_stime_set, -1);
|
5033
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_stime", _wrap_msqid_ds_msg_stime_get, -1);
|
5034
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_rtime=", _wrap_msqid_ds_msg_rtime_set, -1);
|
5035
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_rtime", _wrap_msqid_ds_msg_rtime_get, -1);
|
5036
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_ctime=", _wrap_msqid_ds_msg_ctime_set, -1);
|
5037
|
+
rb_define_method(SwigClassMsqid_ds.klass, "msg_ctime", _wrap_msqid_ds_msg_ctime_get, -1);
|
5038
|
+
SwigClassMsqid_ds.mark = 0;
|
5039
|
+
SwigClassMsqid_ds.destroy = (void (*)(void *)) free_msqid_ds;
|
5040
|
+
SwigClassMsqid_ds.trackObjects = 0;
|
5003
5041
|
rb_define_module_function(mSysVIPC, "msgctl", _wrap_msgctl, -1);
|
5004
5042
|
rb_define_module_function(mSysVIPC, "msgget", _wrap_msgget, -1);
|
5005
5043
|
rb_define_module_function(mSysVIPC, "msgrcv", _wrap_msgrcv, -1);
|
@@ -5013,35 +5051,35 @@ SWIGEXPORT void Init_SysVIPC(void) {
|
|
5013
5051
|
rb_define_const(mSysVIPC, "SETVAL", SWIG_From_int((int)(SETVAL)));
|
5014
5052
|
rb_define_const(mSysVIPC, "SETALL", SWIG_From_int((int)(SETALL)));
|
5015
5053
|
|
5016
|
-
|
5017
|
-
SWIG_TypeClientData(SWIGTYPE_p_semid_ds, (void *) &
|
5018
|
-
rb_define_alloc_func(
|
5019
|
-
rb_define_method(
|
5020
|
-
rb_define_method(
|
5021
|
-
rb_define_method(
|
5022
|
-
rb_define_method(
|
5023
|
-
rb_define_method(
|
5024
|
-
rb_define_method(
|
5025
|
-
rb_define_method(
|
5026
|
-
rb_define_method(
|
5027
|
-
rb_define_method(
|
5028
|
-
|
5029
|
-
|
5030
|
-
|
5054
|
+
SwigClassSemid_ds.klass = rb_define_class_under(mSysVIPC, "Semid_ds", rb_cObject);
|
5055
|
+
SWIG_TypeClientData(SWIGTYPE_p_semid_ds, (void *) &SwigClassSemid_ds);
|
5056
|
+
rb_define_alloc_func(SwigClassSemid_ds.klass, _wrap_semid_ds_allocate);
|
5057
|
+
rb_define_method(SwigClassSemid_ds.klass, "initialize", _wrap_new_semid_ds, -1);
|
5058
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_perm=", _wrap_semid_ds_sem_perm_set, -1);
|
5059
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_perm", _wrap_semid_ds_sem_perm_get, -1);
|
5060
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_nsems=", _wrap_semid_ds_sem_nsems_set, -1);
|
5061
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_nsems", _wrap_semid_ds_sem_nsems_get, -1);
|
5062
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_otime=", _wrap_semid_ds_sem_otime_set, -1);
|
5063
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_otime", _wrap_semid_ds_sem_otime_get, -1);
|
5064
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_ctime=", _wrap_semid_ds_sem_ctime_set, -1);
|
5065
|
+
rb_define_method(SwigClassSemid_ds.klass, "sem_ctime", _wrap_semid_ds_sem_ctime_get, -1);
|
5066
|
+
SwigClassSemid_ds.mark = 0;
|
5067
|
+
SwigClassSemid_ds.destroy = (void (*)(void *)) free_semid_ds;
|
5068
|
+
SwigClassSemid_ds.trackObjects = 0;
|
5031
5069
|
|
5032
|
-
|
5033
|
-
SWIG_TypeClientData(SWIGTYPE_p_sembuf, (void *) &
|
5034
|
-
rb_define_alloc_func(
|
5035
|
-
rb_define_method(
|
5036
|
-
rb_define_method(
|
5037
|
-
rb_define_method(
|
5038
|
-
rb_define_method(
|
5039
|
-
rb_define_method(
|
5040
|
-
rb_define_method(
|
5041
|
-
rb_define_method(
|
5042
|
-
|
5043
|
-
|
5044
|
-
|
5070
|
+
SwigClassSembuf.klass = rb_define_class_under(mSysVIPC, "Sembuf", rb_cObject);
|
5071
|
+
SWIG_TypeClientData(SWIGTYPE_p_sembuf, (void *) &SwigClassSembuf);
|
5072
|
+
rb_define_alloc_func(SwigClassSembuf.klass, _wrap_sembuf_allocate);
|
5073
|
+
rb_define_method(SwigClassSembuf.klass, "initialize", _wrap_new_sembuf, -1);
|
5074
|
+
rb_define_method(SwigClassSembuf.klass, "sem_num=", _wrap_sembuf_sem_num_set, -1);
|
5075
|
+
rb_define_method(SwigClassSembuf.klass, "sem_num", _wrap_sembuf_sem_num_get, -1);
|
5076
|
+
rb_define_method(SwigClassSembuf.klass, "sem_op=", _wrap_sembuf_sem_op_set, -1);
|
5077
|
+
rb_define_method(SwigClassSembuf.klass, "sem_op", _wrap_sembuf_sem_op_get, -1);
|
5078
|
+
rb_define_method(SwigClassSembuf.klass, "sem_flg=", _wrap_sembuf_sem_flg_set, -1);
|
5079
|
+
rb_define_method(SwigClassSembuf.klass, "sem_flg", _wrap_sembuf_sem_flg_get, -1);
|
5080
|
+
SwigClassSembuf.mark = 0;
|
5081
|
+
SwigClassSembuf.destroy = (void (*)(void *)) free_sembuf;
|
5082
|
+
SwigClassSembuf.trackObjects = 0;
|
5045
5083
|
rb_define_module_function(mSysVIPC, "semctl", _wrap_semctl, -1);
|
5046
5084
|
rb_define_module_function(mSysVIPC, "semget", _wrap_semget, -1);
|
5047
5085
|
rb_define_module_function(mSysVIPC, "semop", _wrap_semop, -1);
|
@@ -5049,37 +5087,37 @@ SWIGEXPORT void Init_SysVIPC(void) {
|
|
5049
5087
|
rb_define_const(mSysVIPC, "SHMLBA", SWIG_From_int((int)(SHMLBA)));
|
5050
5088
|
rb_define_const(mSysVIPC, "SHM_RND", SWIG_From_int((int)(SHM_RND)));
|
5051
5089
|
|
5052
|
-
|
5053
|
-
SWIG_TypeClientData(SWIGTYPE_p_shmid_ds, (void *) &
|
5054
|
-
rb_define_alloc_func(
|
5055
|
-
rb_define_method(
|
5056
|
-
rb_define_method(
|
5057
|
-
rb_define_method(
|
5058
|
-
rb_define_method(
|
5059
|
-
rb_define_method(
|
5060
|
-
rb_define_method(
|
5061
|
-
rb_define_method(
|
5062
|
-
rb_define_method(
|
5063
|
-
rb_define_method(
|
5064
|
-
rb_define_method(
|
5065
|
-
rb_define_method(
|
5066
|
-
rb_define_method(
|
5067
|
-
rb_define_method(
|
5068
|
-
rb_define_method(
|
5069
|
-
rb_define_method(
|
5070
|
-
rb_define_method(
|
5071
|
-
rb_define_method(
|
5072
|
-
|
5073
|
-
|
5074
|
-
|
5090
|
+
SwigClassShmid_ds.klass = rb_define_class_under(mSysVIPC, "Shmid_ds", rb_cObject);
|
5091
|
+
SWIG_TypeClientData(SWIGTYPE_p_shmid_ds, (void *) &SwigClassShmid_ds);
|
5092
|
+
rb_define_alloc_func(SwigClassShmid_ds.klass, _wrap_shmid_ds_allocate);
|
5093
|
+
rb_define_method(SwigClassShmid_ds.klass, "initialize", _wrap_new_shmid_ds, -1);
|
5094
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_perm=", _wrap_shmid_ds_shm_perm_set, -1);
|
5095
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_perm", _wrap_shmid_ds_shm_perm_get, -1);
|
5096
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_segsz=", _wrap_shmid_ds_shm_segsz_set, -1);
|
5097
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_segsz", _wrap_shmid_ds_shm_segsz_get, -1);
|
5098
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_lpid=", _wrap_shmid_ds_shm_lpid_set, -1);
|
5099
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_lpid", _wrap_shmid_ds_shm_lpid_get, -1);
|
5100
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_cpid=", _wrap_shmid_ds_shm_cpid_set, -1);
|
5101
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_cpid", _wrap_shmid_ds_shm_cpid_get, -1);
|
5102
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_nattch=", _wrap_shmid_ds_shm_nattch_set, -1);
|
5103
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_nattch", _wrap_shmid_ds_shm_nattch_get, -1);
|
5104
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_atime=", _wrap_shmid_ds_shm_atime_set, -1);
|
5105
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_atime", _wrap_shmid_ds_shm_atime_get, -1);
|
5106
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_dtime=", _wrap_shmid_ds_shm_dtime_set, -1);
|
5107
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_dtime", _wrap_shmid_ds_shm_dtime_get, -1);
|
5108
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_ctime=", _wrap_shmid_ds_shm_ctime_set, -1);
|
5109
|
+
rb_define_method(SwigClassShmid_ds.klass, "shm_ctime", _wrap_shmid_ds_shm_ctime_get, -1);
|
5110
|
+
SwigClassShmid_ds.mark = 0;
|
5111
|
+
SwigClassShmid_ds.destroy = (void (*)(void *)) free_shmid_ds;
|
5112
|
+
SwigClassShmid_ds.trackObjects = 0;
|
5075
5113
|
|
5076
|
-
|
5077
|
-
SWIG_TypeClientData(SWIGTYPE_p_shmaddr, (void *) &
|
5078
|
-
rb_define_alloc_func(
|
5079
|
-
rb_define_method(
|
5080
|
-
|
5081
|
-
|
5082
|
-
|
5114
|
+
SwigClassShmaddr.klass = rb_define_class_under(mSysVIPC, "Shmaddr", rb_cObject);
|
5115
|
+
SWIG_TypeClientData(SWIGTYPE_p_shmaddr, (void *) &SwigClassShmaddr);
|
5116
|
+
rb_define_alloc_func(SwigClassShmaddr.klass, _wrap_shmaddr_allocate);
|
5117
|
+
rb_define_method(SwigClassShmaddr.klass, "initialize", _wrap_new_shmaddr, -1);
|
5118
|
+
SwigClassShmaddr.mark = 0;
|
5119
|
+
SwigClassShmaddr.destroy = (void (*)(void *)) free_shmaddr;
|
5120
|
+
SwigClassShmaddr.trackObjects = 0;
|
5083
5121
|
rb_define_module_function(mSysVIPC, "shmat", _wrap_shmat, -1);
|
5084
5122
|
rb_define_module_function(mSysVIPC, "shmctl", _wrap_shmctl, -1);
|
5085
5123
|
rb_define_module_function(mSysVIPC, "shmdt", _wrap_shmdt, -1);
|
data/ext/extconf.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'mkmf'
|
2
2
|
|
3
|
+
have_type('struct msgbuf', 'sys/msg.h')
|
4
|
+
have_type('union semun', 'sys/sem.h')
|
5
|
+
|
3
6
|
if have_header('sys/types.h') and have_header('sys/ipc.h') and
|
4
7
|
have_header('sys/msg.h') and have_func('msgget') and
|
5
8
|
have_header('sys/sem.h') and have_func('semget') and
|
data/lib/SysVIPC.rb
CHANGED
@@ -66,7 +66,7 @@ require 'SysVIPC.so'
|
|
66
66
|
#
|
67
67
|
# Get (create if necessary) an 8192-byte shared memory region:
|
68
68
|
#
|
69
|
-
# sh = SharedMemory(key, 8192, IPC_CREAT | 0660)
|
69
|
+
# sh = SharedMemory.new(key, 8192, IPC_CREAT | 0660)
|
70
70
|
#
|
71
71
|
# Attach shared memory:
|
72
72
|
#
|
@@ -103,6 +103,8 @@ module SysVIPC
|
|
103
103
|
|
104
104
|
class MessageQueue
|
105
105
|
|
106
|
+
include SysVIPC
|
107
|
+
|
106
108
|
private
|
107
109
|
|
108
110
|
# Return a MessageQueue object encapsuating a message queue
|
@@ -115,6 +117,8 @@ module SysVIPC
|
|
115
117
|
|
116
118
|
public
|
117
119
|
|
120
|
+
attr_reader :msgid
|
121
|
+
|
118
122
|
# Return the Msqid_ds object. See msgctl(2).
|
119
123
|
|
120
124
|
def ipc_stat
|
@@ -163,6 +167,8 @@ module SysVIPC
|
|
163
167
|
|
164
168
|
class Sembuf
|
165
169
|
|
170
|
+
include SysVIPC
|
171
|
+
|
166
172
|
alias :orig_initialize :initialize
|
167
173
|
|
168
174
|
# Create a new Sembuf object for semaphore number +sem_num+,
|
@@ -179,6 +185,8 @@ module SysVIPC
|
|
179
185
|
|
180
186
|
class Semaphore
|
181
187
|
|
188
|
+
include SysVIPC
|
189
|
+
|
182
190
|
private
|
183
191
|
|
184
192
|
# Return a Sempahore object encapsulating a
|
@@ -192,13 +200,15 @@ module SysVIPC
|
|
192
200
|
|
193
201
|
public
|
194
202
|
|
203
|
+
attr_reader :semid
|
204
|
+
|
195
205
|
# Set each value in the semaphore set to the corresponding value
|
196
206
|
# in the Array +values+. See semctl(2).
|
197
207
|
|
198
208
|
def setall(values)
|
199
209
|
if values.length > @nsems
|
200
210
|
raise ArgumentError,
|
201
|
-
"too many values(#{values.length} for semaphore set (#{@nsems})"
|
211
|
+
"too many values (#{values.length}) for semaphore set (#{@nsems})"
|
202
212
|
end
|
203
213
|
check_result(semctl(@semid, 0, SETALL, values))
|
204
214
|
end
|
@@ -228,24 +238,24 @@ module SysVIPC
|
|
228
238
|
# Get the process ID of the last semaphore operation. See
|
229
239
|
# semctl(2).
|
230
240
|
|
231
|
-
def getpid
|
232
|
-
semctl(@semid,
|
241
|
+
def getpid(semnum)
|
242
|
+
semctl(@semid, semnum, GETPID)
|
233
243
|
end
|
234
244
|
alias :pid :getpid
|
235
245
|
|
236
246
|
# Get the number of processes waiting for a semaphore to become
|
237
247
|
# non-zero. See semctl(2).
|
238
248
|
|
239
|
-
def getncnt
|
240
|
-
semctl(@semid,
|
249
|
+
def getncnt(semnum)
|
250
|
+
semctl(@semid, semnum, GETNCNT)
|
241
251
|
end
|
242
252
|
alias :ncnt :getncnt
|
243
253
|
|
244
254
|
# Get the number of processes waiting for a semaphore to become
|
245
255
|
# zero. See semctl(2).
|
246
256
|
|
247
|
-
def getzcnt
|
248
|
-
semctl(@semid,
|
257
|
+
def getzcnt(semnum)
|
258
|
+
semctl(@semid, semnum, GETZCNT)
|
249
259
|
end
|
250
260
|
alias :zcnt :getzcnt
|
251
261
|
|
@@ -287,6 +297,8 @@ module SysVIPC
|
|
287
297
|
|
288
298
|
class SharedMemory
|
289
299
|
|
300
|
+
include SysVIPC
|
301
|
+
|
290
302
|
private
|
291
303
|
|
292
304
|
# Return a SharedMemory object encapsulating a
|
@@ -300,6 +312,8 @@ module SysVIPC
|
|
300
312
|
|
301
313
|
public
|
302
314
|
|
315
|
+
attr_reader :shmid
|
316
|
+
|
303
317
|
# Return the Shmid_ds object. See shmctl(2).
|
304
318
|
|
305
319
|
def ipc_stat
|
@@ -348,6 +362,8 @@ module SysVIPC
|
|
348
362
|
|
349
363
|
class Shmaddr
|
350
364
|
|
365
|
+
include SysVIPC
|
366
|
+
|
351
367
|
# Write the string +text+ to offset +offset+.
|
352
368
|
|
353
369
|
def write(text, offset = 0)
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: SysVIPC
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 49
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 9
|
9
|
+
- 5
|
10
|
+
version: 0.9.5
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Steven Jenkins
|
@@ -9,8 +15,7 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
18
|
+
date: 2013-02-22 00:00:00 Z
|
14
19
|
dependencies: []
|
15
20
|
|
16
21
|
description: "System V Inter-Process Communication: message queues, semaphores, and shared memory."
|
@@ -24,32 +29,40 @@ extra_rdoc_files: []
|
|
24
29
|
files:
|
25
30
|
- lib/SysVIPC.rb
|
26
31
|
- ext/SysVIPC.c
|
27
|
-
|
32
|
+
- ./ext/extconf.rb
|
28
33
|
homepage: http://rubyforge.org/projects/sysvipc/
|
34
|
+
licenses: []
|
35
|
+
|
29
36
|
post_install_message:
|
30
37
|
rdoc_options:
|
31
|
-
- --title
|
38
|
+
- "--title "
|
32
39
|
- SysVIPC
|
33
40
|
require_paths:
|
34
41
|
- lib
|
35
42
|
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
36
44
|
requirements:
|
37
45
|
- - ">="
|
38
46
|
- !ruby/object:Gem::Version
|
47
|
+
hash: 3
|
48
|
+
segments:
|
49
|
+
- 0
|
39
50
|
version: "0"
|
40
|
-
version:
|
41
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
42
53
|
requirements:
|
43
54
|
- - ">="
|
44
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
45
59
|
version: "0"
|
46
|
-
version:
|
47
60
|
requirements: []
|
48
61
|
|
49
62
|
rubyforge_project: sysvipc
|
50
|
-
rubygems_version: 1.
|
63
|
+
rubygems_version: 1.8.15
|
51
64
|
signing_key:
|
52
|
-
specification_version:
|
53
|
-
summary:
|
65
|
+
specification_version: 3
|
66
|
+
summary: System V Inter-Process Communication.
|
54
67
|
test_files: []
|
55
68
|
|