diff --git a/src/components/drive.c b/src/components/drive.c index 755cbb5..787883c 100644 --- a/src/components/drive.c +++ b/src/components/drive.c @@ -210,7 +210,7 @@ void nn_drive_writeByte(nn_drive *drive, void *_, nn_component *component, nn_co nn_value offsetValue = nn_getArgument(computer, 0); nn_value writeValue = nn_getArgument(computer, 1); nn_size_t disk_offset = nn_toInt(offsetValue) - 1; - nn_intptr_t write = nn_toInt(writeValue); + nn_integer_t write = nn_toInt(writeValue); nn_size_t sector_size = drive->table.sectorSize; int sector = (disk_offset / sector_size) + 1; nn_size_t sector_offset = disk_offset % sector_size; diff --git a/src/components/modem.c b/src/components/modem.c index 7f43f3b..62d0205 100644 --- a/src/components/modem.c +++ b/src/components/modem.c @@ -103,7 +103,7 @@ static void nni_modem_setStrength(nn_modem *modem, void *_, nn_component *compon nn_return_number(computer, n); } -static nn_bool_t nni_modem_validSendPort(nn_intptr_t port) { +static nn_bool_t nni_modem_validSendPort(nn_integer_t port) { // 9 quintillion ports just died if(port < 0) return false; // the only valid range @@ -115,7 +115,7 @@ static nn_bool_t nni_modem_validSendPort(nn_intptr_t port) { } static void nni_modem_isOpen(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { - nn_intptr_t port = nn_toInt(nn_getArgument(computer, 0)); + nn_integer_t port = nn_toInt(nn_getArgument(computer, 0)); if(!nni_modem_validSendPort(port)) { nn_setCError(computer, "invalid port"); return; @@ -132,7 +132,7 @@ static void nni_modem_isOpen(nn_modem *modem, void *_, nn_component *component, } static void nni_modem_open(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { - nn_intptr_t port = nn_toInt(nn_getArgument(computer, 0)); + nn_integer_t port = nn_toInt(nn_getArgument(computer, 0)); if(!nni_modem_validSendPort(port)) { nn_setCError(computer, "invalid port"); return; @@ -150,7 +150,7 @@ static void nni_modem_open(nn_modem *modem, void *_, nn_component *component, nn static void nni_modem_close(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { nn_value portVal = nn_getArgument(computer, 0); - nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); + nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { nn_setCError(computer, "invalid port"); return; @@ -191,7 +191,7 @@ static void nni_modem_send(nn_modem *modem, void *_, nn_component *component, nn return; } nn_value portVal = nn_getArgument(computer, 1); - nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); + nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { nn_setCError(computer, "invalid port"); return; @@ -232,7 +232,7 @@ static void nni_modem_send(nn_modem *modem, void *_, nn_component *component, nn static void nni_modem_broadcast(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { nn_value portVal = nn_getArgument(computer, 0); - nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); + nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { nn_setCError(computer, "invalid port"); return; diff --git a/src/components/volatileFilesystem.c b/src/components/volatileFilesystem.c index f0073fe..cb8f06f 100644 --- a/src/components/volatileFilesystem.c +++ b/src/components/volatileFilesystem.c @@ -28,7 +28,7 @@ typedef enum nn_vfmode { typedef struct nn_vfhandle { nn_vfnode *node; - nn_intptr_t position; + nn_integer_t position; nn_vfmode mode; } nn_vfhandle; @@ -539,7 +539,7 @@ nn_size_t nn_vfs_seek(nn_vfilesystem *fs, nn_vfhandle *handle, const char *whenc nn_error_write(err, "Bad file descriptor"); return handle->node->len; } - nn_intptr_t ptr = handle->position; + nn_integer_t ptr = handle->position; if(nn_strcmp(whence, "set") == 0) { ptr = off; } diff --git a/src/computer.c b/src/computer.c index 7d84499..0770a57 100644 --- a/src/computer.c +++ b/src/computer.c @@ -497,7 +497,7 @@ void nn_return_nil(nn_computer *computer) { nn_return(computer, nn_values_nil()); } -void nn_return_integer(nn_computer *computer, nn_intptr_t integer) { +void nn_return_integer(nn_computer *computer, nn_integer_t integer) { nn_return(computer, nn_values_integer(integer)); } diff --git a/src/neonucleus.h b/src/neonucleus.h index 517feab..c32414f 100644 --- a/src/neonucleus.h +++ b/src/neonucleus.h @@ -54,6 +54,8 @@ typedef unsigned char nn_bool_t; #endif +typedef long long nn_integer_t; + // Based off https://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) //define something for Windows (32-bit and 64-bit, this part is common) @@ -274,7 +276,7 @@ typedef struct nn_object { typedef struct nn_value { nn_size_t tag; union { - nn_intptr_t integer; + nn_integer_t integer; double number; nn_bool_t boolean; const char *cstring; @@ -633,7 +635,7 @@ nn_size_t nn_getReturnCount(nn_computer *computer); // Value stuff nn_value nn_values_nil(void); -nn_value nn_values_integer(nn_intptr_t integer); +nn_value nn_values_integer(nn_integer_t integer); nn_value nn_values_number(double num); nn_value nn_values_boolean(nn_bool_t boolean); nn_value nn_values_cstring(const char *string); @@ -643,7 +645,7 @@ nn_value nn_values_table(nn_Alloc *alloc, nn_size_t pairCount); nn_value nn_values_resource(nn_size_t id); void nn_return_nil(nn_computer *computer); -void nn_return_integer(nn_computer *computer, nn_intptr_t integer); +void nn_return_integer(nn_computer *computer, nn_integer_t integer); void nn_return_number(nn_computer *computer, double number); void nn_return_boolean(nn_computer *computer, nn_bool_t boolean); void nn_return_cstring(nn_computer *computer, const char *cstr); @@ -663,13 +665,13 @@ nn_value nn_values_get(nn_value arr, nn_size_t idx); void nn_values_setPair(nn_value obj, nn_size_t idx, nn_value key, nn_value val); nn_pair nn_values_getPair(nn_value obj, nn_size_t idx); -nn_intptr_t nn_toInt(nn_value val); +nn_integer_t nn_toInt(nn_value val); double nn_toNumber(nn_value val); nn_bool_t nn_toBoolean(nn_value val); const char *nn_toCString(nn_value val); const char *nn_toString(nn_value val, nn_size_t *len); -nn_intptr_t nn_toIntOr(nn_value val, nn_intptr_t defaultVal); +nn_integer_t nn_toIntOr(nn_value val, nn_integer_t defaultVal); double nn_toNumberOr(nn_value val, double defaultVal); nn_bool_t nn_toBooleanOr(nn_value val, nn_bool_t defaultVal); diff --git a/src/value.c b/src/value.c index 6003101..7c3fdbd 100644 --- a/src/value.c +++ b/src/value.c @@ -4,7 +4,7 @@ nn_value nn_values_nil(void) { return (nn_value) {.tag = NN_VALUE_NIL}; } -nn_value nn_values_integer(nn_intptr_t integer) { +nn_value nn_values_integer(nn_integer_t integer) { return (nn_value) {.tag = NN_VALUE_INT, .integer = integer}; } @@ -171,7 +171,7 @@ nn_pair nn_values_getPair(nn_value obj, nn_size_t idx) { return obj.table->pairs[idx]; } -nn_intptr_t nn_toInt(nn_value val) { +nn_integer_t nn_toInt(nn_value val) { if(val.tag == NN_VALUE_INT) return val.integer; if(val.tag == NN_VALUE_NUMBER) return val.number; return 0; @@ -212,7 +212,7 @@ const char *nn_toString(nn_value val, nn_size_t *len) { return c; } -nn_intptr_t nn_toIntOr(nn_value val, nn_intptr_t defaultVal) { +nn_integer_t nn_toIntOr(nn_value val, nn_integer_t defaultVal) { if(val.tag == NN_VALUE_INT) return val.integer; if(val.tag == NN_VALUE_NUMBER) return val.number; return defaultVal;