#ifndef SIM_ARGCL_HEADER
#define SIM_ARGCL_HEADER
+// prj
#include "pobjcl.h"
+#include "stypes.h"
/*
cl_arg(char *lv);
cl_arg(double fv);
cl_arg(void *pv);
- ~cl_arg(void);
+ virtual ~cl_arg(void);
virtual bool get_ivalue(long *value);
virtual char *get_svalue(void);
virtual double get_fvalue(void);
virtual void *get_pvalue(void);
virtual bool get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask) { return(DD_FALSE); }
};
class cl_cmd_arg: public cl_arg
{
public:
- class cl_uc *uc;
-
+ //class cl_uc *uc;
bool interpreted_as_string;
union {
long number;
t_addr address;
t_mem data;
- class cl_mem *memory;
+ struct {
+ class cl_memory *memory;
+ class cl_address_space *address_space;
+ class cl_memory_chip *memchip;
+ } memory;
class cl_hw *hw;
struct {
int len;
int len;
} data_list;
struct {
- class cl_mem *mem;
+ class cl_address_space *mem;
t_addr mem_address;
t_mem mask;
} bit;
} value;
public:
- cl_cmd_arg(class cl_uc *iuc, long i): cl_arg(i)
- { uc= iuc; interpreted_as_string= DD_FALSE; }
- cl_cmd_arg(class cl_uc *iuc, char *s): cl_arg(s)
- { uc= iuc; interpreted_as_string= DD_FALSE; }
- ~cl_cmd_arg(void);
+ cl_cmd_arg(/*class cl_uc *iuc,*/ long i): cl_arg(i)
+ { /*uc= iuc;*/ interpreted_as_string= DD_FALSE; }
+ cl_cmd_arg(/*class cl_uc *iuc,*/ char *s): cl_arg(s)
+ { /*uc= iuc;*/ interpreted_as_string= DD_FALSE; }
+ virtual ~cl_cmd_arg(void);
virtual int is_string(void) { return(DD_FALSE); }
- virtual bool get_address(t_addr *addr) { return(DD_FALSE); }
- virtual bool as_address(void);
+ virtual bool get_address(class cl_uc *uc, t_addr *addr) { return(DD_FALSE); }
+ virtual bool as_address(class cl_uc *uc);
virtual bool as_number(void);
virtual bool as_data(void);
virtual bool as_string(void);
- virtual bool as_memory(void);
+ virtual bool as_memory(class cl_uc *uc);
virtual bool as_hw(class cl_uc *uc);
virtual bool as_bit(class cl_uc *uc);
};
class cl_cmd_int_arg: public cl_cmd_arg
{
public:
- cl_cmd_int_arg(class cl_uc *iuc, long addr);
+ cl_cmd_int_arg(/*class cl_uc *iuc,*/ long addr);
- virtual bool get_address(t_addr *addr);
+ virtual bool get_address(class cl_uc *uc, t_addr *addr);
virtual bool get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask);
virtual bool as_string(void);
class cl_cmd_sym_arg: public cl_cmd_arg
{
public:
- cl_cmd_sym_arg(class cl_uc *iuc, char *sym);
+ cl_cmd_sym_arg(/*class cl_uc *iuc,*/ char *sym);
- virtual bool get_address(t_addr *addr);
+ virtual bool get_address(class cl_uc *uc, t_addr *addr);
virtual bool get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask);
- virtual bool as_address(void);
+ virtual bool as_address(class cl_uc *uc);
+ virtual bool as_number(void) { return(DD_FALSE); }
virtual bool as_string(void);
virtual bool as_hw(class cl_uc *uc);
};
class cl_cmd_str_arg: public cl_cmd_arg
{
public:
- cl_cmd_str_arg(class cl_uc *iuc, char *str);
+ cl_cmd_str_arg(/*class cl_uc *iuc,*/ char *str);
virtual int is_string(void) { return(1); }
+ virtual bool as_number(void) { return(DD_FALSE); }
};
class cl_cmd_bit_arg: public cl_cmd_arg
class cl_cmd_arg *sfr, *bit;
public:
- cl_cmd_bit_arg(class cl_uc *iuc,
+ cl_cmd_bit_arg(/*class cl_uc *iuc,*/
class cl_cmd_arg *asfr, class cl_cmd_arg *abit);
- ~cl_cmd_bit_arg(void);
+ virtual ~cl_cmd_bit_arg(void);
- virtual bool get_address(t_addr *addr);
+ virtual bool get_address(class cl_uc *uc, t_addr *addr);
virtual bool get_bit_address(class cl_uc *uc, // input
- class cl_mem **mem, // outputs
+ class cl_address_space **mem, // outputs
t_addr *mem_addr,
t_mem *bit_mask);
};
class cl_cmd_array_arg: public cl_cmd_arg
{
public:
- class cl_cmd_arg *name, *index;
+ class cl_cmd_arg *name_arg, *index;
public:
- cl_cmd_array_arg(class cl_uc *iuc,
+ cl_cmd_array_arg(/*class cl_uc *iuc,*/
class cl_cmd_arg *aname, class cl_cmd_arg *aindex);
- ~cl_cmd_array_arg(void);
+ virtual ~cl_cmd_array_arg(void);
virtual bool as_hw(class cl_uc *uc);
};
* Program arguments
*/
-class cl_prg_arg: public cl_arg
+/*class cl_prg_arg: public cl_arg
{
public:
char short_name;
cl_prg_arg(char sn, char *ln, char *lv);
cl_prg_arg(char sn, char *ln, double fv);
cl_prg_arg(char sn, char *ln, void *pv);
- ~cl_prg_arg(void);
-};
+ virtual ~cl_prg_arg(void);
+};*/
+
+
+/*
+ * List of arguments
+ */
+
+/*class cl_arguments: public cl_list
+{
+public:
+ cl_arguments(void): cl_list(5, 5) {}
+
+ int arg_avail(char nam);
+ int arg_avail(char *nam);
+ virtual long get_iarg(char sname, char *lname);
+ virtual char *get_sarg(char sname, char *lname);
+ virtual double get_farg(char sname, char *lname);
+ virtual void *get_parg(char sname, char *lname);
+};*/
#endif