Hallo,

I can describe the error better now. If I use a file "test" instead
of "/dev/rtf0", my try to write doesn't crash. It looks like a bug?
inside the device driver for me.

Is any help here?

Olaf

------------------------8<---------------------------
#define TASK1    0
#define TASK2    1
#define TASK3    2
#define TASK4    3

#define TASKS    3

#define TASK_ID(t) (1<<(t)) /*  for ID 1,2,4,8 .. */

#define CTRL_FIFO 6
#define CTRL_FIFO_SIZE 1024

typedef struct 
{
  unsigned int inuse;
  unsigned int task;
  unsigned int command;
  unsigned int command_number; /* testing of actuallity of command */
  int arg1;
  int arg2;
} MY_COMMAND;

#define COMMAND_TASK_START   (1<<0) /* 1 */
#define COMMAND_TASK_ON      (1<<1) /* 2*/
#define COMMAND_TASK_OFF     (1<<2) /* 3 */
#define COMMAND_TASK_PERIOD  (1<<3) /* 8 */

int main(int argc, char **argv)
{
  char fifo_dev[10];
  /* Ctrl-Pipe */
  MY_COMMAND msg;
  int ret=0;
  int ctrlfd;                     /* File Descriptor Ctrl-FIFO */
  char *progname = argv[0];

  /* initialize pipe: CTRL_FIFO */
  sprintf(fifo_dev, "hallo%d", CTRL_FIFO);
  if ((ctrlfd = open(fifo_dev, O_WRONLY)) < 0) {
    fprintf(stderr, "%s: Error opening Control FIFO %s (%s)\n", 
            progname, fifo_dev, strerror(errno));
    exit(errno);
  }

  msg.command = COMMAND_TASK_START;
  msg.task = (TASK_ID(TASK1) | TASK_ID(TASK2) | TASK_ID(TASK3));

  if(write(ctrlfd, &msg, sizeof(msg)) < 0) {
    fprintf(stderr, "set: Can't send a command to Control-FIFO (%s)", 
            strerror(errno));
    ret=errno;
  }

  return(ret);
}
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to