diff options
author | Sjoerd Mullender <sjoerd@acm.org> | 1993-12-03 16:54:45 (GMT) |
---|---|---|
committer | Sjoerd Mullender <sjoerd@acm.org> | 1993-12-03 16:54:45 (GMT) |
commit | 66bca326cb727dbf42ac6ac613f0d76dd52ef905 (patch) | |
tree | 24b652ae1ded6b91c45a0ac25564d6a78cacf326 /Modules | |
parent | 57531fea90ca0afe9efdc70d3dce1a3eb153f03e (diff) | |
download | cpython-66bca326cb727dbf42ac6ac613f0d76dd52ef905.zip cpython-66bca326cb727dbf42ac6ac613f0d76dd52ef905.tar.gz cpython-66bca326cb727dbf42ac6ac613f0d76dd52ef905.tar.bz2 |
Port to Solaris 2.3.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/md5module.c | 4 | ||||
-rw-r--r-- | Modules/sunaudiodev.c | 39 | ||||
-rw-r--r-- | Modules/threadmodule.c | 2 |
3 files changed, 39 insertions, 6 deletions
diff --git a/Modules/md5module.c b/Modules/md5module.c index 8bfbafb..6230cee 100644 --- a/Modules/md5module.c +++ b/Modules/md5module.c @@ -41,8 +41,6 @@ extern typeobject MD5type; /* Really static, forward */ #define is_md5object(v) ((v)->ob_type == &MD5type) -static const char initialiser_name[] = "md5"; - /* #define MD5_DEBUG */ static md5object * @@ -207,7 +205,7 @@ typeobject MD5type = { /* List of functions exported by this module */ static struct methodlist md5_functions[] = { - {initialiser_name, MD5_md5}, + {"md5", MD5_md5}, {NULL, NULL} /* Sentinel */ }; diff --git a/Modules/sunaudiodev.c b/Modules/sunaudiodev.c index 4e63123..5bd7249 100644 --- a/Modules/sunaudiodev.c +++ b/Modules/sunaudiodev.c @@ -30,7 +30,11 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <stropts.h> #include <sys/ioctl.h> +#ifdef SOLARIS +#include <multimedia/libaudio.h> +#else #include <sun/audioio.h> +#endif /* #define offsetof(str,mem) ((int)(((str *)0)->mem)) */ @@ -50,7 +54,7 @@ typedef struct { extern typeobject Sadtype; /* Really static, forward */ extern typeobject Sadstatustype; /* Really static, forward */ -extern sadstatusobject *sads_alloc(); /* Forward */ +static sadstatusobject *sads_alloc(); /* Forward */ static object *SunAudioError; @@ -256,6 +260,24 @@ sad_drain(self, args) return None; } +#ifdef SOLARIS +static object * +sad_getdev(self, args) + sadobject *self; + object *args; +{ + struct audio_device ad; + + if ( !getargs(args, "") ) + return 0; + if ( ioctl(self->x_fd, AUDIO_GETDEV, &ad) < 0 ) { + err_errno(SunAudioError); + return NULL; + } + return mkvalue("(sss)", ad.name, ad.version, ad.config); +} +#endif + static object * sad_flush(self, args) sadobject *self; @@ -298,6 +320,9 @@ static struct methodlist sad_methods[] = { { "setinfo", sad_setinfo }, { "drain", sad_drain }, { "flush", sad_flush }, +#ifdef SOLARIS + { "getdev", sad_getdev }, +#endif { "close", sad_close }, {NULL, NULL} /* sentinel */ }; @@ -345,6 +370,11 @@ static struct memberlist sads_ml[] = { { "i_waiting", T_UBYTE, OFF(record.waiting) }, { "i_open", T_UBYTE, OFF(record.open) , RO}, { "i_active", T_UBYTE, OFF(record.active) , RO}, +#ifdef SOLARIS + { "i_buffer_size", T_UINT, OFF(record.buffer_size) }, + { "i_balance", T_UBYTE, OFF(record.balance) }, + { "i_avail_ports", T_UINT, OFF(record.avail_ports) }, +#endif { "o_sample_rate", T_UINT, OFF(play.sample_rate) }, { "o_channels", T_UINT, OFF(play.channels) }, @@ -359,6 +389,11 @@ static struct memberlist sads_ml[] = { { "o_waiting", T_UBYTE, OFF(play.waiting) }, { "o_open", T_UBYTE, OFF(play.open) , RO}, { "o_active", T_UBYTE, OFF(play.active) , RO}, +#ifdef SOLARIS + { "o_buffer_size", T_UINT, OFF(play.buffer_size) }, + { "o_balance", T_UBYTE, OFF(play.balance) }, + { "o_avail_ports", T_UINT, OFF(play.avail_ports) }, +#endif { "monitor_gain", T_UINT, OFF(monitor_gain) }, { NULL, 0, 0}, @@ -382,7 +417,7 @@ sads_setattr(xp, name, v) if (v == NULL) { err_setstr(TypeError, "can't delete sun audio status attributes"); - return NULL; + return 0; } return setmember((char *)&xp->ai, sads_ml, name, v); } diff --git a/Modules/threadmodule.c b/Modules/threadmodule.c index f22aa8c..40169a3 100644 --- a/Modules/threadmodule.c +++ b/Modules/threadmodule.c @@ -195,7 +195,7 @@ t_bootstrap(args_raw) func = gettupleitem(args, 0); arg = gettupleitem(args, 1); res = call_object(func, arg); - DECREF(arg); /* Matches the INCREF(arg) in thread_start_new_thread */ + DECREF(args); /* Matches the INCREF(args) in thread_start_new_thread */ if (res == NULL) { fprintf(stderr, "Unhandled exception in thread:\n"); print_error(); /* From pythonmain.c */ |