SysVIPC 0.9 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|