Skip to content

Commit c93d6bd

Browse files
committed
libsysbase: use null for unused devices
1 parent 18a1e5b commit c93d6bd

1 file changed

Lines changed: 8 additions & 14 deletions

File tree

libgloss/libsysbase/iosupport.c

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ const devoptab_t dotab_stdnull = {
5555
//---------------------------------------------------------------------------------
5656
const devoptab_t *devoptab_list[STD_MAX] = {
5757
//---------------------------------------------------------------------------------
58-
&dotab_stdnull, &dotab_stdnull, &dotab_stdnull, &dotab_stdnull,
59-
&dotab_stdnull, &dotab_stdnull, &dotab_stdnull, &dotab_stdnull,
60-
&dotab_stdnull, &dotab_stdnull, &dotab_stdnull, &dotab_stdnull,
61-
&dotab_stdnull, &dotab_stdnull, &dotab_stdnull, &dotab_stdnull
58+
&dotab_stdnull, &dotab_stdnull, &dotab_stdnull
6259
};
6360

6461
//---------------------------------------------------------------------------------
@@ -77,10 +74,8 @@ int FindDevice(const char* name) {
7774
if(devoptab_list[i]) {
7875
namelen = strlen(devoptab_list[i]->name);
7976
if(dev_namelen == namelen && strncmp(devoptab_list[i]->name,name,namelen)==0 ) {
80-
if ( name[namelen] == ':' || (isdigit(name[namelen]) && name[namelen+1] ==':' )) {
81-
dev = i;
82-
break;
83-
}
77+
dev = i;
78+
break;
8479
}
8580
}
8681
i++;
@@ -95,7 +90,7 @@ int RemoveDevice( const char* name) {
9590
int dev = FindDevice(name);
9691

9792
if ( -1 != dev ) {
98-
devoptab_list[dev] = &dotab_stdnull;
93+
devoptab_list[dev] = NULL;
9994
return 0;
10095
}
10196

@@ -110,12 +105,11 @@ int AddDevice( const devoptab_t* device) {
110105
int devnum;
111106

112107
for ( devnum = 3;devnum <STD_MAX; devnum++ ) {
108+
// null pointer is available
109+
if ( devoptab_list[devnum] == NULL ) break;
113110

114-
if ( (!strcmp(devoptab_list[devnum]->name, device->name) &&
115-
strlen(devoptab_list[devnum]->name) == strlen(device->name) ) ||
116-
!strcmp(devoptab_list[devnum]->name, "stdnull")
117-
)
118-
break;
111+
if ( !strcmp(devoptab_list[devnum]->name, device->name) && strlen(devoptab_list[devnum]->name) == strlen(device->name) )
112+
break;
119113
}
120114

121115
if ( devnum == STD_MAX ) {

0 commit comments

Comments
 (0)