107 printf (
"Error: rval %d\n", rval);
121 for (offset = 0; offset < object_count; offset ++)
124 memset(&mqe, 0, 256);
151 (uint8_t*)&desc,
sizeof(desc));
155 printf (
"Error: rval %d\n", rval);
164 snprintf(fullPath,
sizeof(fullPath),
"%s%s%s", directory,
165 directory[strlen(directory)-1] ==
'/' ?
"" :
"/",
195 for (tail = obj; tail->
next; tail = tail->
next)
247 printf (
"Error: rval %d\n", rval);
305 printf (
"Error: rval %d\n", rval);
336 uint32_t objectLength;
359 objectLength = (uint32_t) rval;
360 if (bufferLength > objectLength)
362 bufferLength = objectLength;
365 while (bufferLength > 0)
368 #define MAX_OBJECT_READ 3840
394 printf (
"Error: rval %d\n", rval);
407 buffer = (((uint8_t*)buffer) + n);
432 uint32_t offset = buffer_offset;
446 while (bufferLength > 0)
449 #define MAX_OBJECT_WRITE 3840
474 printf (
"."); fflush (stdout);
478 printf (
"Error: rval %d\n", rval);
494 buffer = (((uint8_t*)buffer) + n);
539 new->name = strdup (name);
541 new->length = length;
574 for (; head; head = next)
sli4_object_t * sli4_object_new(const char *name, uint32_t type, uint32_t length)
Instantiate a new sli4_object_t.
uint32_t object_name[OBJECT_NAME_LENGTH]
uint32_t actual_descriptor_count
uint32_t object_name[OBJECT_NAME_LENGTH]
#define OFT_NORMAL_OBJECT
void sli4_object_free(sli4_object_t *obj)
Free and sli4_object_t.
int sli4_object_read(elxu_device_t *device, const char *objectName, void *buffer, uint32_t bufferLength)
Read data from an object.
#define OPCODE_COMMON_DELETE_OBJECT
uint32_t descriptor_count
int sli4_object_write(elxu_device_t *device, const char *objectName, int buffer_offset, void *buffer, uint32_t bufferLength, int eofl)
Write data into an object.
int mbox_common(elxu_device_t *device, mbox_command_t *mboxcmd, uint32_t mboxcmdLength, void *inbuf, uint32_t inbufLength, void *outbuf, uint32_t outbufLength)
Send a mailbox command.
uint32_t device_buffer_descriptor_count
const char * oft2string(uint32_t oft)
Return a string associated with an object type.
uint32_t descriptor_offset
void * zmalloc(uint32_t len)
Allocates and zeroes memory to be used.
#define OFT_DIRECTORY_OBJECT
uint32_t actual_write_length
void zfree(void *p)
Frees memory that has been allocated.
static sli4_object_t * sli4_object_scan_directory(elxu_device_t *device, const char *directory)
Scan an SLI4 object directory returning a list of all objects.
uint32_t desired_read_length
#define OFT_LINKED_OBJECT
uint32_t actual_read_length
#define MBOX_ENTRY_LENGTH
int sli4_object_delete(elxu_device_t *device, const char *objectName)
Deletes an SLI4 object.
mbox_hbd_t device_buffer_descriptor[1]
int sli4_object_length(elxu_device_t *device, const char *objectName)
Return an SLI4 object's length in bytes.
#define MBOX_SUBSYSTEM_COMMON
mbox_hbd_t device_buffer_descriptor[0]
#define OPCODE_COMMON_READ_OBJECT
#define OPCODE_COMMON_WRITE_OBJECT
uint32_t device_buffer_descriptor_count
mbox_hbd_t device_buffer_descriptor[0]
uint32_t object_directory_name[OBJECT_NAME_LENGTH]
uint32_t device_buffer_descriptor_count
sli4_object_t * sli4_object_enumerate(elxu_device_t *device)
Create a list of all SLI4 objects.
uint32_t actual_response_length
uint32_t object_base_name[OBJECT_BASE_NAME_LENGTH]
uint32_t object_name[OBJECT_NAME_LENGTH]
uint32_t desired_write_length
#define OPCODE_COMMON_READ_OBJECT_LIST
struct sli4_object_s * next
uint32_t additional_status
void sli4_object_free_list(sli4_object_t *head)
Free a list of sli4_object_t's.