Sponsored Content
Operating Systems Solaris Memory Alignment Problem on Sun Sparcs Post 84100 by nj302 on Wednesday 21st of September 2005 06:08:37 PM
Old 09-21-2005
Memory Alignment Problem on Sun Sparcs

Hi, I try to marshal a unsigned int and a char * into a buffer, and then unmarshal them later to get them out. I need to put the char * in the front and unsigned int at the end of the buffer. However, my system always give me "BUS ERROR". I am using Sun Sparcs Sloris 2.10.

My code to marshal the data:

unsigned dev = 111;
unsigned inode = 222;

int s_docname = strlen(docname) + 1;
int s_key = s_docname + sizeof(unsigned) * 2;

keybuf = malloc(s_key);
memset(keybuf, 0, s_key);
memcpy(keybuf, docname, s_docname);
memcpy(keybuf + s_docname, &(dev), sizeof(unsigned));
memcpy(keybuf + s_docname + sizeof(unsigned), &(inode),
sizeof(unsigned));

My code to unmarshal the data:
char * docname = (char *)key.data;
int s_docname = strlen(docname) + 1;
dev =*((unsigned *)((char *)key.data + s_docname));
inode = *((unsigned *)((char *)key.data + s_docname +
sizeof(unsigned)));

I can print the dev and inode out in dbx debugger by typing the same
code, but running the program always have the BUS error.

I realize this is a problems of memory alignement. s_docname has byte granularity, somehow I need to "round up" my s_docname by some suitable calculation. But I really don't know how to? Help is appreciated.
 

10 More Discussions You Might Find Interesting

1. Solaris

SUN station memory problem

The problem is that I use this station as a remote computer for an AOI Orbotech machine and in the root of the station there is no memory available and on the refmgr folder on the same station there are 5GB free memory. So if anyone knows how can I free some space and not damaging the root files,... (0 Replies)
Discussion started by: Dac
0 Replies

2. UNIX for Dummies Questions & Answers

ls command alignment problem

With older Linux servers, the command: ls -al would output text that would have the filenames all lined up in the same column (the owner and group names were truncated to produce a uniform right column). In newer distros (i.e. RHEL 3), the command will push the right column out when owners... (0 Replies)
Discussion started by: robf
0 Replies

3. Programming

how to round up a memory address(memory alignment problem)

Hi, I try to marshal a unsigned int and a char * into a buffer, and then unmarshal them later to get them out. I need to put the char * in the front and unsigned int at the end of the buffer. However, my system always give me "BUS ERROR". I am using Sun Sparcs Sloris 2.10. My code to marshal... (6 Replies)
Discussion started by: nj302
6 Replies

4. Solaris

Memory Check in SUN Solaris

Hi I am facing a problem with memory in SunOS 5.9. I just want to check the memory usage. Can anybody suggest me a command that will help me in this regard. (4 Replies)
Discussion started by: rajarsi.ghosh
4 Replies

5. Shell Programming and Scripting

Text Alignment Problem

Dear Friends, I've one file "sample.log" with the below comma separated lines: BOND_FORWARD,0 succeeded,0 failed. EQUITY_FORWARD,0 succeeded,0 failed. FRA,12 succeeded,0 failed. OPTION_BAR,16 succeeded,0 failed. OPTION_VAN,76 succeeded,0 failed. RENTOPT_CAP_FLOOR,4775 succeeded,0 failed.... (2 Replies)
Discussion started by: ganapati
2 Replies

6. Solaris

how to get cpu and memory configuration on sun

Hi folks, can you please help to print cpu and memory configuration on sun host. (4 Replies)
Discussion started by: ggolub
4 Replies

7. Shell Programming and Scripting

Output alignment problem

Hi Gurus, This is my raw data. How would I able to format this output into a better alignment? /dev/vg00/lvol5 /home 0.12 GB 0.02 GB 0.10 GB 19% /dev/vg00/misc /misc 28.43 GB 4.92 GB 23.51 GB 17% /dev/vg00/lvol6 /opt 8.25 GB 5.43 GB 2.82 GB 65% /dev/vgsap/ora10264 ... (10 Replies)
Discussion started by: superHonda123
10 Replies

8. What is on Your Mind?

Sun Sparcs

I used to have a Sparcstation20 some years ago with one of the HUGE HEAVY Sun monitors. I regret having gotten rid of it. Does anyone know where I can find a working sparcstation, monitor, keyboard, mouse these days?? (1 Reply)
Discussion started by: bsdforme
1 Replies

9. Shell Programming and Scripting

Text qualifier issue causing data alignment problem

Hello Everyone, I have a csv file with text qualifier as "" and data similar to below: "1","abc","address1","US" "2","def","address1 "characters in double-quote" address2","IND" "3","ghi","address1","UK" In above example, for record 2, we have an issue as in column3 contains double... (2 Replies)
Discussion started by: AnkitSenghani
2 Replies

10. Solaris

Fsck: alignment error Solaris 8, SUN Netra AX11505

Hello all, I recently powered on my Netra AX1105 server only to be greeted with the following error message. I am not sure what to do here, I cant fun fsck on OK prompt.. did ok>boot -r and now it keeps booting from net, then I run ok>boot disk then outputs the following message... and keeps... (3 Replies)
Discussion started by: br1an
3 Replies
Getting Terminal information(3) 				      BrlAPI					   Getting Terminal information(3)

NAME
Getting Terminal information - How to get information about the connected Terminal. Macros #define BRLAPI_MAXNAMELENGTH 31 Functions int BRLAPI_STDCALL brlapi_getDriverName (char *buffer, size_t size) int BRLAPI_STDCALL brlapi__getDriverName (brlapi_handle_t *handle, char *buffer, size_t size) int BRLAPI_STDCALL brlapi_getDisplaySize (unsigned int *x, unsigned int *y) int BRLAPI_STDCALL brlapi__getDisplaySize (brlapi_handle_t *handle, unsigned int *x, unsigned int *y) Detailed Description Before using Raw mode or key codes, the application should always check the type of the connected terminal, to be sure it is really the one it expects. One should also check for display size, so as to adjust further displaying on it. Macro Definition Documentation #define BRLAPI_MAXNAMELENGTH 31 Maximum name length for names embeded in BrlAPI packets, not counting any termination character Function Documentation int BRLAPI_STDCALL brlapi__getDisplaySize (brlapi_handle_t *handle, unsigned int *x, unsigned int *y) int BRLAPI_STDCALL brlapi__getDriverName (brlapi_handle_t *handle, char *buffer, size_tsize) int BRLAPI_STDCALL brlapi_getDisplaySize (unsigned int *x, unsigned int *y) Return the size of the braille display int BRLAPI_STDCALL brlapi_getDriverName (char *buffer, size_tsize) Return the complete name of the driver used by brltty This function fills its argument with the whole name of the braille terminal if available, terminated with a ''. Parameters: buffer is the buffer given by the application; size is the maximum size for the name buffer. Returns: -1 on error, or a positive value giving the size of the needed buffer, if the supplied one is to small (same as snprintf()). Author Generated automatically by Doxygen for BrlAPI from the source code. Version 1.0 Mon Apr 1 2013 Getting Terminal information(3)
All times are GMT -4. The time now is 11:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy