Go to the source code of this file.
◆ newstruct_desc_size()
int newstruct_desc_size |
( |
| ) |
|
◆ newstruct_set_proc()
Definition at line 857 of file newstruct.cc.
858{
859 int id=0;
862 {
863 Werror(
">>%s<< is not a newstruct type",bbname);
865 }
867 newstruct_desc desc=(newstruct_desc)bb->data;
868 newstruct_proc
p=(newstruct_proc)
omAlloc(
sizeof(*
p));
869 p->next=desc->procs; desc->procs=
p;
870
873
874 int tt;
875 if(!(tt=
IsCmd(func,
p->t)))
876 {
877 int t;
879 {
884 ||(t=='='))
886 else if (t=='(')
888 else if (t=='-')
890 }
891 else
892 {
895 Werror(
">>%s<< is not a kernel command",func);
898 }
899 }
900 switch(tt)
901 {
902
909
911 if(args!=1) {
Warn(
"args must be 1 for %s in %s",func,
my_yylinebuf);args=1;}
912 break;
915 break;
918 break;
921 break;
924 break;
927 break;
930 break;
934 break;
935 default:
937 break;
938 }
941 {
945 }
948 pr->is_static=0;
950}
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
VAR char my_yylinebuf[80]
int IsCmd(const char *n, int &tok)
int iiOpsTwoChar(const char *s)
#define omFreeSize(addr, size)
void Werror(const char *fmt,...)
◆ newstruct_setup()
void newstruct_setup |
( |
const char * | name, |
|
|
newstruct_desc | d ) |
Definition at line 699 of file newstruct.cc.
700{
701 blackbox *
b=(blackbox*)
omAlloc0(
sizeof(blackbox));
702
703
704
713
721 d->id=rt;
722
723}
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
BOOLEAN newstruct_Op2(int op, leftv res, leftv a1, leftv a2)
BOOLEAN newstruct_deserialize(blackbox **, void **d, si_link f)
void newstruct_destroy(blackbox *, void *d)
char * newstruct_String(blackbox *b, void *d)
BOOLEAN newstruct_Op1(int op, leftv res, leftv arg)
BOOLEAN newstruct_Assign(leftv l, leftv r)
BOOLEAN newstruct_serialize(blackbox *b, void *d, si_link f)
void * newstruct_Copy(blackbox *, void *d)
void * newstruct_Init(blackbox *b)
BOOLEAN newstruct_OpM(int op, leftv res, leftv args)
BOOLEAN newstruct_CheckAssign(blackbox *, leftv L, leftv R)
void newstruct_Print(blackbox *b, void *d)
◆ newstructChildFromString()
newstruct_desc newstructChildFromString |
( |
const char * | p, |
|
|
const char * | s ) |
Definition at line 810 of file newstruct.cc.
811{
812
813 int parent_id=0;
816 {
817 Werror(
">>%s< not found",parent);
819 }
821
823 {
824 Werror(
">>%s< is not a user defined type",parent);
826 }
827
829 newstruct_desc parent_desc=(newstruct_desc)parent_bb->data;
830 res->size=parent_desc->size;
831 res->member=parent_desc->member;
832 res->parent=parent_desc;
833
835}
const CanonicalForm int s
static newstruct_desc scanNewstructFromString(const char *s, newstruct_desc res)
◆ newstructFromString()
newstruct_desc newstructFromString |
( |
const char * | s | ) |
|
◆ newstructShow()
void newstructShow |
( |
newstruct_desc | d | ) |
|
Definition at line 837 of file newstruct.cc.
838{
839 newstruct_member elem;
840 Print(
"id: %d\n",d->id);
841 elem=d->member;
843 {
844 Print(
">>%s<< at pos %d, type %d (%s)\n",elem->name,elem->pos,elem->typ,
Tok2Cmdname(elem->typ));
846 Print(
">>r_%s<< at pos %d, shadow ring\n",elem->name,elem->pos-1);
847 elem=elem->next;
848 }
849 newstruct_proc
p=d->procs;
851 {
852 Print(
"op:%d(%s) with %d args -> %s\n",
p->t,
iiTwoOps(
p->t),
p->args,
p->p->procname);
854 }
855}
const char * iiTwoOps(int t)
const char * Tok2Cmdname(int tok)
static int NeedShadowRing(int t)